Daily Leveling API
Build agents that add quests, complete tasks, and track goals on behalf of Daily Leveling users. Eight endpoints. Bearer auth. OpenAPI 3.1.
Overview
The Daily Leveling API lets external tools and AI agents manage a user's quests and goals. A user mints a personal API key from inside the mobile app, pastes it into your agent, and the agent can now create / complete / list / delete tasks and goals on their behalf.
Base URL:
https://api.dailyleveling.app
OpenAPI spec:
https://api.dailyleveling.app/openapi.json
Authentication
All /v1/* endpoints require a Bearer token. Users mint their own keys:
- Open the Daily Leveling mobile app
- Go to Profile → API Access → Create API Key
- Name it (e.g. "My ChatGPT") and copy the key — it starts with
dolo_ - Paste the key into your agent's auth config
Send it as:
Authorization: Bearer dolo_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Categories & XP
Every task and goal belongs to one of seven stat categories. Pick the closest match — users level up each category independently.
| Category | Outcome |
|---|---|
fitness | Gym, lifts, cardio, running, sports training |
health | Sleep, nutrition, hydration, meditation, recovery |
business | Building a company, sales, marketing, ops |
finance | Saving, investing, budgeting, money goals |
education | Reading, courses, study, certifications |
personal | Relationships, hobbies, mental growth |
travel | Trips, exploration, world experience |
XP is auto-assigned by priority:
| Priority | Task XP | Goal XP |
|---|---|---|
low | 20 | 150 (flat) |
medium (default) | 30 | |
high | 50 |
Errors
All errors return JSON: {"error": "message"}.
| Code | Meaning |
|---|---|
400 | Bad request — invalid category, priority, or missing field |
401 | Missing or invalid Bearer token |
404 | Resource not found, or doesn't belong to this user |
500 | Server error |
Sign users up via your agent
Need to onboard a brand-new user from inside your agent? Daily Leveling supports magic-link onboarding. Your agent calls one endpoint with the user's email; we send them a confirmation link; they click it; they get an API key to paste back.
Your agent never sees a password. Email verification is the proof of identity.
Public — no Bearer token required. Rate-limited to 3/hour per IP and 1/hour per email.
Body
| Field | Type | Notes |
|---|---|---|
email required | string | The user's email — used as identity proof |
username | string | 3-40 chars, [a-zA-Z0-9_-]. Auto-generated if omitted. |
agent_name | string | Your agent's name (shown in the email) |
curl -X POST https://api.dailyleveling.app/v1/accounts/request-onboarding \
-H "Content-Type: application/json" \
-d '{
"email": "sam@example.com",
"agent_name": "ChatGPT"
}'
Response:
{
"success": true,
"message": "Magic link sent to sam@example.com. Tell the user to check their email..."
}
/onboard/{token} →
account is created → API key is shown on screen once. They copy it back to
your agent. Tokens expire in 15 minutes and are single-use.
Errors:
409— account already exists for this email (tell the user to sign in)429— rate limit hit (wait an hour)400— invalid email or username
List tasks
Returns every task (quest) belonging to the authenticated user.
curl https://api.dailyleveling.app/v1/tasks \
-H "Authorization: Bearer dolo_YOUR_KEY"
Create a task
Body
| Field | Type | Notes |
|---|---|---|
title required | string | 1–200 chars |
description | string | up to 2000 chars |
category | enum | see categories · default personal |
priority | enum | low · medium · high · default medium |
deadline | string | ISO date YYYY-MM-DD or null |
curl -X POST https://api.dailyleveling.app/v1/tasks \
-H "Authorization: Bearer dolo_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Leg day",
"category": "fitness",
"priority": "high"
}'
Complete a task
Marks the task complete, awards XP to its category, and may trigger a level-up event.
curl -X PATCH https://api.dailyleveling.app/v1/tasks/TASK_ID/complete \
-H "Authorization: Bearer dolo_YOUR_KEY"
Delete a task
curl -X DELETE https://api.dailyleveling.app/v1/tasks/TASK_ID \
-H "Authorization: Bearer dolo_YOUR_KEY"
List goals
curl https://api.dailyleveling.app/v1/goals \
-H "Authorization: Bearer dolo_YOUR_KEY"
Create a goal
Body
Same as task, but use targetDate instead of deadline. Goals award 150 XP on completion.
curl -X POST https://api.dailyleveling.app/v1/goals \
-H "Authorization: Bearer dolo_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Hit $10k MRR",
"category": "business",
"priority": "high",
"targetDate": "2026-09-01"
}'
Complete a goal
curl -X PATCH https://api.dailyleveling.app/v1/goals/GOAL_ID/complete \
-H "Authorization: Bearer dolo_YOUR_KEY"
Delete a goal
curl -X DELETE https://api.dailyleveling.app/v1/goals/GOAL_ID \
-H "Authorization: Bearer dolo_YOUR_KEY"
MCP — Claude Desktop, Cursor, Cline
Daily Leveling ships a Model Context Protocol server that turns the API
into 8 native tools your AI client can call directly: list_tasks,
create_task, complete_task, delete_task, and the
same for goals.
Add this to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"daily-leveling": {
"command": "npx",
"args": ["-y", "@dailyleveling/mcp"],
"env": {
"DAILY_LEVELING_API_KEY": "dolo_your_key_here"
}
}
}
}
Restart Claude Desktop and try: "Add 'leg day' to my Daily Leveling fitness quests."
Same config shape works for Cursor (~/.cursor/mcp.json), Cline, Continue, and Zed.
mcp-server/ in the repo.
Local install: git clone → cd mcp-server →
npm install && npm run build → point your client at
node /absolute/path/to/dist/index.js.
ChatGPT — Custom GPT
Build a custom GPT in 60 seconds:
- Go to ChatGPT GPT Editor
- Configure → Actions → Import from URL
- Paste:
https://api.dailyleveling.app/openapi.json - Authentication → API Key → Bearer, paste
dolo_... - Drop this into the GPT instructions:
You are a Daily Leveling assistant. The user is training
across 7 stat categories: business, health, fitness, education,
personal, finance, travel.
When the user asks you to add a task, pick the most accurate
category. Default priority is "medium". Use "high" only for
demanding quests (heavy lift sessions, deep work blocks, long
study sessions). Use "low" for trivial actions.
Use tasks for daily quests, goals for outcomes that span weeks
or months. Confirm what you added by name and category — never
echo the full JSON back at the user.
Claude — System prompt + tool use
Use the OpenAPI spec to auto-generate tools, or hand-write a system prompt that calls the endpoints directly:
You can manage the user's Daily Leveling tasks and goals via
the API at https://api.dailyleveling.app. Authenticate with the user's
key as `Authorization: Bearer dolo_...`.
Endpoints:
- POST /v1/tasks — create a task
- PATCH /v1/tasks/{id}/complete — mark done
- GET /v1/tasks — list all
- DELETE /v1/tasks/{id}
- (same shape for /v1/goals)
Categories: business, health, fitness, education, personal,
finance, travel. Priorities: low (20XP), medium (30XP), high (50XP).
Goals are flat 150XP. Pick the most accurate category every time.
Cursor, Raycast, n8n, etc.
Anything that speaks OpenAPI 3.1 + Bearer auth works out of the box. Point it at
https://api.dailyleveling.app/openapi.json and configure the API key.