Jeremy
API Reference

API Overview

The Jeremy REST API for searching, ingesting, and managing documentation libraries.

Base URL

https://jeremy-app.ian-muench.workers.dev

All endpoints are prefixed with /api/.

Authentication

Jeremy supports two authentication methods:

API Key (Bearer Token)

Include your API key in the Authorization header:

curl https://jeremy-app.ian-muench.workers.dev/api/search?libraryName=react \
  -H "Authorization: Bearer jrmy_abc123..."

API keys follow the format jrmy_<64-hex-characters>. You can create keys from the dashboard or via the keys API.

Authenticated browser sessions (after signing in via the dashboard) automatically include a session cookie. This is used by the dashboard and works for all endpoints.

Permissions

API keys have one of two permission levels:

PermissionAccess
readSearch and Context endpoints
adminAll endpoints, including Ingest, Crawl, Embed, and delete operations

Session authentication grants full access (equivalent to admin).

Response Format

All responses are JSON. Successful responses return the relevant data directly. Errors return an error field:

{
  "error": "Unauthorized"
}

Endpoints

MethodEndpointDescriptionAuth
GET/api/searchSearch for libraries by nameread
GET/api/contextQuery documentation chunksread
POST/api/ingestIngest documentation chunksadmin
POST/api/ingest-urlIngest from a URLadmin / session
POST/api/crawlCrawl and ingest a websiteadmin / session
POST/api/embedGenerate embeddings for chunksadmin / session
GET/POST/DELETE/api/keysManage API keyssession only
GET/DELETE/api/librariesManage librariesvaries

Rate Limits

The API runs on Cloudflare Workers. There are no explicit rate limits, but large operations (crawling, embedding) are bounded by Worker execution time limits.