Skip to main content

Prerequisites

  • An eligible plan — API access is available on Pro, Team, and Enterprise plans.
  • An API key — Create one in Settings → Developers → API Keys.

Creating an API Key

  1. Navigate to Settings → Developers → API Keys
  2. Click Add API Key
  3. If you’re an admin, choose the scope: Personal or Workspace (see Access & Security for the difference)
  4. Enter a name and optional description
  5. Click Create API Key
  6. Copy your key immediately — it won’t be shown again
Store your API key securely. If you lose it, you’ll need to regenerate it from the API key settings. Treat it like a password.

Authentication

Every request must include your API key in the x-api-key header. API keys start with the jk_ prefix. If the key is missing or invalid, you’ll receive a 401 Unauthorized response.

Making Requests

Both key types use the same request format:
  • Reading data uses GET with optional parameters via ?input={"json": { ... }}
  • Deleting uses POST with a JSON body
  • When no parameters are needed, just call the URL directly
The only difference is the route prefix: /v1/workspace/ for workspace keys, /v1/me/ for personal keys.

Examples

List meetings (no parameters):
# Workspace key
curl -H "x-api-key: jk_your_workspace_key" \
  "https://beta-api.meetjamie.ai/v1/workspace/meetings.list"

# Personal key
curl -H "x-api-key: jk_your_personal_key" \
  "https://beta-api.meetjamie.ai/v1/me/meetings.list"
List meetings with filters:
# Workspace key — filter by user and limit
curl -H "x-api-key: jk_your_workspace_key" \
  'https://beta-api.meetjamie.ai/v1/workspace/meetings.list?input={"json":{"limit":5,"userEmail":"sarah@example.com"}}'

# Personal key — filter by tag
curl -H "x-api-key: jk_your_personal_key" \
  'https://beta-api.meetjamie.ai/v1/me/meetings.list?input={"json":{"limit":5,"tag":"Product"}}'
Get a specific meeting:
curl -H "x-api-key: jk_your_key" \
  'https://beta-api.meetjamie.ai/v1/workspace/meetings.get?input={"json":{"meetingId":"YOUR_MEETING_ID"}}'
List open tasks:
curl -H "x-api-key: jk_your_key" \
  'https://beta-api.meetjamie.ai/v1/workspace/tasks.list?input={"json":{"completed":false,"limit":10}}'
Delete a meeting (POST):
curl -X POST -H "x-api-key: jk_your_key" \
  -H "Content-Type: application/json" \
  -d '{"json": {"meetingId": "YOUR_MEETING_ID"}}' \
  "https://beta-api.meetjamie.ai/v1/workspace/meetings.delete"
Search meetings (personal key only):
curl -H "x-api-key: jk_your_personal_key" \
  'https://beta-api.meetjamie.ai/v1/me/meetings.search?input={"json":{"query":"product roadmap"}}'
List your tags (personal key only):
curl -H "x-api-key: jk_your_personal_key" \
  "https://beta-api.meetjamie.ai/v1/me/tags.list"
Don’t want to build requests by hand? Use the Request Builder in Settings → Developers → API Keys to visually select an endpoint, add parameters, and get a ready-to-use cURL command or URL you can copy.
Cheat sheet:
  • URL pattern: /v1/{workspace or me}/{procedure} (e.g., /v1/workspace/meetings.list)
  • Reading: GET with optional ?input={"json": {...}}
  • Deleting: POST with body {"json": {...}}
  • No parameters? Just call the URL directly

Response Format

All responses wrap data in an envelope:
{
  "result": {
    "data": {
      "json": {
        "meetings": [...],
        "nextCursor": null
      }
    }
  }
}
Your data is inside result.data.json.

Pagination

List endpoints return paginated results. When more data is available, the response includes a nextCursor field. Pass it in your next request:
GET /v1/workspace/meetings.list?input={"json":{"limit":20,"cursor":"2024-11-27T14:00:00.000Z::7893456789012345678"}}
When nextCursor is null, you’ve reached the end of the results.