Authentication Errors
401 Unauthorized on every request
- Check the header name — The API key must be sent in the
x-api-keyheader, notAuthorizationorBearer. - Check for whitespace — Ensure there are no leading/trailing spaces or newlines in the key value.
- Verify the key is active — Disabled keys return
401. Go to Settings → Developers → API Keys and check the toggle. - Confirm the key prefix — Valid keys start with
jk_. If yours doesn’t, it may be a webhook secret or other credential.
401 after regenerating a key
When you regenerate an API key, the old key is immediately invalidated. Update the key in all places where it’s used — environment variables, CI/CD secrets, third-party integrations.
Access & Permissions
403 — Wrong key type for route
Each key type has its own route set:
- Personal keys →
/v1/me/* - Workspace keys →
/v1/workspace/*
/v1/workspace/ (or vice versa) returns 403. Check that your key type matches the route you’re calling.
403 Forbidden when deleting a meeting
- Personal key — You can only delete meetings you own. Shared meetings cannot be deleted, even if you have read access.
- Workspace key — The meeting owner must be a member of your workspace.
Can’t create an API key
- Plan restriction — API keys require a Pro, Team, or Enterprise plan.
- Key limit reached — Personal keys are limited to 3 per user. Workspace keys are limited to 10 per workspace. Delete unused keys to free up slots.
- Not an admin — Only workspace admins can create workspace-scoped keys. Any member can create a personal key.
Data & Responses
Meetings or tasks are missing from results
- Check your key type — Personal keys only return your own data plus shared meetings. Use a workspace key and
/v1/workspace/routes to see all workspace data. - Check date filters — If you’re using
startDateorendDate, make sure the format is valid ISO 8601 (e.g.,2024-11-01T00:00:00Z). - Check pagination — Results are paginated. If
nextCursoris notnull, there are more pages to fetch. - Recently recorded meetings — Meetings appear in the API after processing is complete. This typically takes a few minutes after the meeting ends.
Empty transcript or summary
The meeting may still be processing. Wait a few minutes and try again. If the issue persists, the meeting may have had recording issues — check the meeting in the Jamie app for more details.400 Bad Request on date filters
Date parameters must be valid ISO 8601 strings. Examples of valid formats:
2024-11-01, Nov 1 2024, or 1701234567 will be rejected.
Rate Limiting
429 Too Many Requests
You’ve exceeded the rate limit of 100 requests per minute for that API key.
- Check the
X-RateLimit-Resetresponse header for the Unix timestamp when you can retry - Reduce request frequency — use larger
limitvalues (up to 100) to fetch more data per request - Cache responses where possible — meeting data doesn’t change frequently
Pagination
Getting duplicate results across pages
Always use thenextCursor value from the previous response. Don’t construct cursor values manually — the format is internal and may change.
nextCursor is always null
Your query returns fewer results than the limit. This is expected — it means all matching results fit in one page.
Still Need Help?
If you’re stuck, reach out to us at support@meetjamie.ai with:- Your API key prefix (e.g.,
jk_abc...— never share the full key) - The full request URL (with any sensitive query params redacted)
- The response status code and error message
- The approximate time the issue occurred

