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:

  1. Open the Daily Leveling mobile app
  2. Go to Profile → API Access → Create API Key
  3. Name it (e.g. "My ChatGPT") and copy the key — it starts with dolo_
  4. Paste the key into your agent's auth config

Send it as:

Authorization: Bearer dolo_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Scope: A key can do anything its owner can do — create, complete, and delete their own tasks and goals. Keys can be revoked at any time from the same screen.

Categories & XP

Every task and goal belongs to one of seven stat categories. Pick the closest match — users level up each category independently.

CategoryOutcome
fitnessGym, lifts, cardio, running, sports training
healthSleep, nutrition, hydration, meditation, recovery
businessBuilding a company, sales, marketing, ops
financeSaving, investing, budgeting, money goals
educationReading, courses, study, certifications
personalRelationships, hobbies, mental growth
travelTrips, exploration, world experience

XP is auto-assigned by priority:

PriorityTask XPGoal XP
low20150 (flat)
medium (default)30
high50

Errors

All errors return JSON: {"error": "message"}.

CodeMeaning
400Bad request — invalid category, priority, or missing field
401Missing or invalid Bearer token
404Resource not found, or doesn't belong to this user
500Server 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.

POST/v1/accounts/request-onboarding

Public — no Bearer token required. Rate-limited to 3/hour per IP and 1/hour per email.

Body

FieldTypeNotes
email requiredstringThe user's email — used as identity proof
usernamestring3-40 chars, [a-zA-Z0-9_-]. Auto-generated if omitted.
agent_namestringYour 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..."
}
The flow: User clicks the link → arrives at /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

GET/v1/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

POST/v1/tasks

Body

FieldTypeNotes
title requiredstring1–200 chars
descriptionstringup to 2000 chars
categoryenumsee categories · default personal
priorityenumlow · medium · high · default medium
deadlinestringISO 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

PATCH/v1/tasks/{id}/complete

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

DELETE/v1/tasks/{id}
curl -X DELETE https://api.dailyleveling.app/v1/tasks/TASK_ID \
  -H "Authorization: Bearer dolo_YOUR_KEY"

List goals

GET/v1/goals
curl https://api.dailyleveling.app/v1/goals \
  -H "Authorization: Bearer dolo_YOUR_KEY"

Create a goal

POST/v1/goals

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

PATCH/v1/goals/{id}/complete
curl -X PATCH https://api.dailyleveling.app/v1/goals/GOAL_ID/complete \
  -H "Authorization: Bearer dolo_YOUR_KEY"

Delete a goal

DELETE/v1/goals/{id}
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.

Source: the MCP server lives in mcp-server/ in the repo. Local install: git clonecd mcp-servernpm 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:

  1. Go to ChatGPT GPT Editor
  2. Configure → ActionsImport from URL
  3. Paste: https://api.dailyleveling.app/openapi.json
  4. Authentication → API KeyBearer, paste dolo_...
  5. 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.

MCP server coming soon. A native Model Context Protocol server will let Claude Desktop, Cursor, and other MCP clients connect with one click.