API

A read-only REST API over your libraries and documents.

The FusedFrames API is a REST API at https://api.fusedframes.com. There is no version prefix; use the paths as shown. Every response is JSON with camelCase field names.

The API is read-only. It reads the documents FusedFrames wrote from your recorded work. It cannot record anything and it cannot write. Every endpoint is a GET. The CLI and the MCP server read the same data with the same keys.

A first request

List the document libraries your key can see:

Shell
curl https://api.fusedframes.com/libraries \
  -H "Authorization: Bearer ff_your_key"
JSON
{
  "libraries": [
    {
      "id": "lib_...",
      "name": "Support",
      "description": "How the support team resolves issues",
      "documentCount": 128
    }
  ]
}

The response above is trimmed. Each library also carries its categories, tags and timestamps.

Authentication

Every request needs an API key sent as a bearer token in the Authorization header. See Authentication to create a key and learn what it can see.

Conventions

Pagination

List and search endpoints take two query parameters: page (starts at 1) and pageSize (default 20, maximum 100; source recordings cap at 50). Responses echo both back along with an exact total:

JSON
{ "documents": [], "total": 0, "page": 1, "pageSize": 20 }

/libraries and the category, tag and application lists return everything at once, with no pages.

Errors

Every error uses the same shape:

JSON
{
  "error": {
    "code": "not_found",
    "message": "Library not found"
  }
}
CodeStatusMeaning
unauthorised401The key is missing or wrong.
api_key_expired401The key has passed its expiry date.
api_key_device_removed401The device that created the key was removed or archived.
not_found404The resource does not exist or is outside the key's scope.
rate_limited429Too many requests. Wait and retry.

A bad parameter returns 400 with code bad_request. Search can also answer 402 (insufficient_ai_credit or subscription_suspended) when the workspace cannot pay for semantic search, and source recordings answer 403 (forbidden) when the key lacks recording-details access.

Rate limits

Each key can make 100 requests a minute and each IP address 300 a minute. Successful responses carry X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset headers so you can pace yourself. Going over returns a 429 with a Retry-After header saying how many seconds to wait.

Referring to libraries and documents

Wherever a path takes a library, you can pass the library's ID (lib_...) or its slug. Old slugs keep working after a rename. Documents must be referred to by ID (doc_...); document slugs only make sense inside their own library, so the API does not accept them.

Reference pages