Agent API · live

An API your agent can buy from.

No signup form. No sales call. No subscription. Your agent reads the capabilities, takes a key, submits a brief, pays for the job, and downloads the result — four calls, start to finish, entirely programmatic.

What ships today: scripts, not finished video.

Script generation is live and billable. The demo, presentation and video job types accept briefs and are priced, but the rendering backend is not attached yet — they return the script stage only. Every capability carries a machine-readable status in the discovery document, so your agent can check before it spends. We would rather you read that here than discover it in a download.

Four calls

Copy-paste these in order. Nothing below needs a browser, a dashboard, or a person.

1

Read what we sell

No auth · returns capabilities, pricing, status
curl https://teleprompter.strategic-innovations.ai/api/agents/discover

# → { "capabilities": [ { "type": "script", "status": "available",
#       "pricePerJobCents": 200, "delivers": { "contentType": "text/plain" } }, … ],
#     "workflow": [ … ], "unsupported": [ … ] }
2

Take a key

No auth · issued immediately
curl -X POST https://teleprompter.strategic-innovations.ai/api/agents/signup \
  -H 'content-type: application/json' \
  -d '{"agentName":"my-agent"}'

# → { "ok": true, "agentId": "agt_…", "apiKey": "fsk_…", "plan": "free" }
# The key is shown once. Store it — there is no recovery endpoint.
3

Submit a brief

Generates synchronously · ~30s
curl -X POST https://teleprompter.strategic-innovations.ai/api/agents/jobs \
  -H 'x-api-key: fsk_…' \
  -H 'content-type: application/json' \
  -d '{"brief":"A 60 second intro to Founder Studio for solo founders",
       "options":{"type":"script","seconds":60}}'

# → { "ok": true, "job": { "id": "job_…", "status": "script_ready",
#       "priceCents": 200, "paid": false, "script": "So, you're a solo founder…" } }
#
# The call blocks until generation finishes — expect ~30 seconds, not
# milliseconds. There is no queue and nothing to poll.
4

Pay, then download

402 until purchased
curl -X POST https://teleprompter.strategic-innovations.ai/api/agents/jobs/job_…/purchase \
  -H 'x-api-key: fsk_…' \
  -H 'content-type: application/json' \
  -d '{"paymentMethod":"stripe"}'

curl https://teleprompter.strategic-innovations.ai/api/agents/jobs/job_…/download \
  -H 'x-api-key: fsk_…' -o script.txt

# → content-type: text/plain; filename="video-script.txt"
4
calls from cold start to artifact
$0.25
per credit, billed per job
0
subscriptions, forms, or approvals
~30s
brief to script, measured

Built for buyers that aren't people

Most APIs assume a human with a credit card and a dashboard login. This one assumes a process with a budget.

Self-serve discovery

One unauthenticated GET returns capabilities, prices, the call sequence, and an explicit list of what we don't support — so your agent plans against facts instead of probing our 404s.

Instant keys

POST a name, get a working key in the response. No email confirmation, no waitlist, no approval queue. The free plan starts working on the next call.

Priced per outcome

You pay for a job, not for a seat, a minute, or a credit pack that expires. The price is quoted before you commit and computed by a formula you can reimplement.

Capabilities

Status is the field that matters. It is served in /api/agents/discover as capabilities[].status, so an agent can filter on it without parsing this page.

TypeStatusDelivers60s priceWhat it does
script Available text/plain $2.00 A spoken script from your brief, sized to the target duration. Conversational, no stage directions — written to be read aloud.
demo Not yet text/plain $6.00 Intended: capture a live website, narrate it, render a demo take. Priced at 3× today; returns the script stage only.
presentation Not yet text/plain $2.00 Intended: slides plus narration in a cloned voice. Returns the script stage only.
video Not yet text/plain $2.00 Intended: script, render, stitch and deliver a finished video. Returns the script stage only.

Not supported

Stated plainly so your agent stops looking. This list is also machine-readable at discover.unsupported.

Pricing

One credit is 25¢. A job's credits are a function of duration and type — here is the whole formula, no tiers to interpret.

ƒ

The billing formula

Reimplement it to predict any invoice
credits = round((2 + seconds * 0.1) * (type === 'demo' ? 3 : 1))
cents   = credits * 25

# seconds is clamped to 15…300 before pricing, and the clamped
# value is what you are billed for.
# Live quotes for every tier: GET /api/agents/pricing
Type15s60s300sCredits at 60s
script$1.00$2.00$8.008
demo$3.00$6.00$24.0024
presentation$1.00$2.00$8.008
video$1.00$2.00$8.008

Endpoint reference

Base URL https://teleprompter.strategic-innovations.ai. Authenticated routes take the key in an x-api-key header — not a bearer token.

EndpointAuthReturns
GET /api/agents/discover — Capabilities, pricing, auth, workflow, unsupported list.
GET /api/agents/pricing — centsPerCredit and a priced tier per type and duration.
POST /api/agents/signup — { agentId, apiKey, plan }. Body takes agentName and an optional email. Names are sanitised to letters, digits, dash and underscore, max 100 chars.
POST /api/agents/jobs key A job object with status, priceCents and the generated script. Body: brief (required, trimmed to 2000 chars) and options.type / options.seconds.
GET /api/agents/jobs key Your 50 most recent jobs, newest first.
GET /api/agents/jobs/:id key One job. 404 if it isn't yours.
POST /api/agents/jobs/:id/purchase key Unlocks download. Body: {"paymentMethod":"stripe"|"crypto"}.
GET /api/agents/jobs/:id/download key The artifact as a file attachment. 402 before purchase.

Job status values

StatusMeaning
pendingRow created, generation not finished. Rarely observed — generation is synchronous.
script_readyA non-empty script exists and the job can be purchased.
paidPurchased. downloadUrl is populated.
errorGeneration failed. Read error. You are not charged for a job you cannot buy.

Errors

CodeBodyCause
400brief is required…Missing or empty brief.
400invalid_payment_methodpaymentMethod is not stripe or crypto.
401invalid_api_keyMissing, malformed, or unknown x-api-key.
402payment_requiredDownload attempted before purchase.
404job_not_foundUnknown job, or a job belonging to another agent.
503db_unavailableStorage is down. Retry.

A note on errors we return as 200

Some failures come back with ok: false and an HTTP 200 — already_paid and job_not_ready among them. Branch on the ok field, not the status code. We are tightening this; until then, treating 200 as success will mislead your agent.

Point an agent at it

The discovery document is the contract. Everything on this page is derived from it, and it is the version that stays current.