Your marketing brain,
available to your own code
A versioned REST API and an MCP server. Everything the app does to a source — capture it, generate a structured note, read it back with its citations intact — your code can do too, and so can an agent working on your behalf.
No credit card required.
- REST
- MCP
- Jobs
- Batches
The surface
One API, and the verbs are the product’s own
Capture a source, generate a note, poll the job, read it back — and run the whole thing in bulk. Every operation below is in the published spec, grouped by what you would reach for it to do.
Capture and generate
A local media file, a YouTube URL, a web article or raw text goes in; a structured note comes back, with its table of contents, its sections and its citations. Upload first for local media, then name the returned path.
POST /uploadsPOST /notesGET /notesGET /notes/{id}
Jobs, because generation takes time
Creating a note enqueues work and hands you a job rather than holding a request open for minutes. Poll it until it completes, then read the note by id. The same endpoint polls Specialist jobs too — a type field tells the two apart — and DELETE cancels a pending Specialist job, which is the only kind that can be cancelled.
GET /jobs/{id}DELETE /jobs/{id}
Bulk, without a queue of your own
Point it at a playlist or a whole channel with an Idempotency-Key header and it hands back a batch id instead of holding a connection open; replaying the same key returns the batch you already started rather than charging twice. Poll it for status and the succeeded and failed counts until every note has landed.
POST /batchesGET /batches/{id}
Look before you fetch
Enumerate a playlist or a channel and read a transcript, so your code can decide what is worth generating before it commits to generating anything.
GET /playlist-videosGET /channel-videosGET /transcript
Notebooks, and projects behind a gate
Assemble a knowledge base from a script instead of by hand: create a notebook, then ingest sources straight into it. The project paths ship alongside them and are in the spec, but that surface is still gated — an account it has not been opened on gets a 404 — so read them as a preview rather than something to build on today.
POST /notebooksGET /notebooksPOST /notebooks/{id}/ingestPOST /projectsGET /projectsGET /projects/{id}POST /projects/{id}/sources
LinkedIn posts
List the posts behind a profile URL or search posts by keyword — discovery saves nothing — then save the ones worth keeping as first-class, citable sources.
POST /linkedin/fetchPOST /linkedin/save
Specialists
List the named agents on your account and ask one a question, synchronously, as a stream, or as a job you collect later.
GET /gptsGET /gpts/{slug}POST /gpts/{slug}/chatPOST /gpts/{slug}/chat/streamPOST /gpts/{slug}/chat/async
Your own keys
Mint, list, inspect, amend and revoke keys. These five paths are the one exception to bearer authentication: they authenticate with your signed-in session and not with an API key, so no key can ever mint or widen another key.
GET /api-keysPOST /api-keysGET /api-keys/{id}PATCH /api-keys/{id}DELETE /api-keys/{id}
A request, end to end
From a URL to a note in three calls
Nothing is hidden behind a client library. It is one POST, one poll and one read.
Request
POST /api/v1/notes
Authorization: Bearer <your API key>
Content-Type: application/json
{ "kind": "youtube", "url": "https://www.youtube.com/watch?v=..." }Response
202 Accepted
{ "job_id": "...", "status": "...",
"note_id": "...", "poll_url": "..." }Poll the poll_url the response hands back — GET /jobs/{id} for a video, an upload or a brief — until it reports completed, then GET /notes/{id} for the note’s markdown and its metadata. kind is one of youtube, upload, text or web_article, so the same endpoint takes a video, a file you have already uploaded, a pasted brief or an article URL.
- Authentication is a bearer API key in the Authorization header, minted from the dashboard on the Master plan, or issued through the OAuth connector.
- Two paths need no key at all: a health check and the spec itself, so a tool — or an agent — can discover the surface before it has any credentials.
MCP
The same API, as tools an agent can call
One endpoint, POST /api/mcp, speaking JSON-RPC 2.0 in the stateless Streamable HTTP mode — no session to keep alive, no second dialect to learn.
- Each tool re-invokes the matching REST route handler with the same credentials, so behaviour and per-tool permissions are identical to the REST surface. One implementation, not two that drift apart.
- Claude, ChatGPT and Cursor connect to it directly. An unauthenticated request answers with the metadata a client needs to begin an OAuth flow, which is what lets those clients offer a one-click connect.
- OAuth is standards-track: PKCE and dynamic client registration, scoped consent, and a connections list you can revoke from at any time.
Eighteen tools, and every one of them fronts a documented path
create_notecreate_upload_urlget_notelist_noteslinkedin_fetch_postslinkedin_save_postget_jobget_transcriptlist_playlist_videoslist_channel_videoscreate_batchget_batchcreate_notebooklist_notebookscreate_projectlist_projectsget_projectingest_project
Keys and access
A key is a scoped credential, not a password
Every key is issued with the reach you choose and can be narrowed, expired or revoked without touching anything else.
Hashed at rest. Only a short prefix is kept for display, and the key itself is shown once, at creation.
Named, described and given an expiry, so a key you handed to one script is identifiable a year later.
A granular permission set per key: reading notes, creating notes, reading media, bulk fan-out, ingesting knowledge and talking to Specialists are separate switches.
A per-minute and a per-day rate limit on every key, checked on every authenticated call. The Specialists and job endpoints hand the limit and what is left of it back in X-RateLimit headers; everywhere else you meet one as an explicit 429, not as a dropped connection.
An optional IP allowlist, checked on every call.
Every call is audit-logged with a correlation ID, so a key’s history is answerable.
Good to know
What this API is, and what it is not
The machine-readable spec is public and needs no key. The human-readable reference lives inside the app, behind sign-in.
API keys are minted on the Master plan. The plans are on the pricing page.
The API returns the thinking and the deliverable. It does not write to an ad platform, a CMS or an ESP. We make the thinking defensible; you keep control of spend.
A note created through the API lands in the same library the app reads, categorised and connected the same way, and searchable the moment it lands.
Your content is not used to train AI models. Your uploads, chats and questions stay private.
Create an account, mint a key, and point your code at it.
Nothing is hidden behind a client library. It is one POST, one poll and one read.
No credit card required.
