Connect your agent
Your agent can ask what the kids have today, approve what’s done and add a new quest — from a chat message, without opening the app.
Three steps
- 1
Create a key
A grown-up from the family creates the key — right here. Sign in and you’ll come back to this form.
Sign in and create a key - 2
Install the skill
The skill teaches the agent the routes and the order of steps. Works for agents that can run commands: Claude Code, Cursor, OpenClaw and the like.
- 3
Ask
“What do the kids have today?”, “Approve everything they checked off”, “Add a quest for Theo — take out the trash on Wednesdays, 10 points”.
The skill
The first command installs the skill; the rest put the key where the skill looks for it. No need to paste the key into the agent’s chat. github.com/usavilov/questburg-skills
npx -y skills add usavilov/questburg-skills mkdir -p ~/.config/questburg printf '%s' 'qb_…' > ~/.config/questburg/key chmod 600 ~/.config/questburg/key
API
If the skill doesn’t fit, the same API is open directly. The key goes in a header, answers are JSON.
https://questburg.com/api/v1
You can hand your agent one address — the same thing, written for it: questburg.com/llms.txt
GET/me
The family, members with codes and points, what the key may do.
GET/today
Quests for the day. ?member=code — one member, ?date=YYYY-MM-DD — another day.
GET/approvals
What the kids checked off and what waits for you.
POST/occurrences/{id}/done
Check a quest off.
POST/occurrences/{id}/approve
Approve: points are credited. A closed day — within a week.
POST/occurrences/{id}/reject
Decline a check-off.
POST/approvals/approve-all
Approve everything the kids checked off.
GET/offers
Active quests.
POST/offers
Add a quest: title, assignees (codes or "kids"), points, weekdays.
PATCH/offers/{code}
Change a quest: send only what changes.
DELETE/offers/{code}
Remove a quest. History stays.
POST/occurrences/{id}/undo
Undo an approval: points go back, the quest waits for an answer again.
GET/starters
Ready-made quests and rewards; first marks the suggested start. POST { key } adds a quest, { reward } a reward.
GET/rewards
Rewards. POST adds one: title and price, or streak { quest, days }.
PATCH/rewards/{code}
Change a reward; DELETE removes it.
GET/redemptions
Reward requests waiting for an answer.
POST/redemptions/{id}/grant
The reward was handed over; /refuse declines.
GET/gates
Perks and which kids have them unlocked today. POST adds one: name, quests, price.
PATCH/gates/{code}
Change a perk; DELETE removes it.
POST/gates/{code}/override
Unlock or lock a perk for today: member, state (granted | blocked), note.
GET/members/{code}
A member’s page: balance, streaks, last days, perks, strikes.
POST/members/{code}/points
Add or take off points: delta, note.
GET/strikes
Kinds of strikes. POST adds one: title, penalty; PATCH and DELETE by code.
POST/strikes/{code}/log
Log a strike: member, note. The penalty is taken off right away.
GET/stats
Report for a period: ?days=7, 30 or 90.
GET/feed
The family’s event feed.
export QUESTBURG_API_KEY=qb_…
curl -s -H "Authorization: Bearer $QUESTBURG_API_KEY" https://questburg.com/api/v1/me
curl -s -X POST https://questburg.com/api/v1/offers \
-H "Authorization: Bearer $QUESTBURG_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title": "Take out the trash", "assignees": "kids", "points": 10, "weekdays": [3]}'Good to know
- A key acts as the grown-up who created it: what the agent approves is recorded as theirs.
- A key can’t reach passwords, login codes or invites. A removed quest, reward or perk is archived — the history stays.
- Repeating a check-off or an approval is safe: points aren’t credited twice.
- The limit is 60 requests a minute per key. Above it you get a 429.
- An error always has one shape: { error: { code, message } }.
- Revoke a key where you created it. Access is gone at once.
No family in Questburg yet?
Habits, quests and rewards for kids — in one app.