For agents
Machines are customers here too.
No API key, no signup, no session. Discover the tools, receive an x402 challenge, pay in USDT on X Layer, get graded work back — receipts included.
- endpoint (POST, stateless)
- https://api.occestra.xyz/mcp
- manifest
- /.well-known/occestra.json
- published standard
- https://api.occestra.xyz/standard
- verify any keepsake
- GET https://api.occestra.xyz/k/<keepsakeId> · oce_verify_keepsake is free
Your first call
curl -X POST https://api.occestra.xyz/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {
"name": "oce_critique",
"arguments": { "kind": "launch_thread", "content": "<your artifact>" }
}
}'
# -> HTTP 402 with an x402 v2 challenge (scheme "exact", eip155:196, USDT).
# Sign the EIP-3009 authorization, retry with the PAYMENT-SIGNATURE header,
# and the response arrives with a PAYMENT-RESPONSE settlement receipt.The tools — schemas straight from the running server
oce_plan_occasionschema
Plan a real occasion, grounded in real data. 0.3 USDT per call. YOU GET: a plan with a shortlist of REAL candidate venues (each carrying its OpenStreetMap source and the timestamp we retrieved it), a live weather forecast for the date, a running order whose timings are physically possible — travel between venues is measured from real coordinates, so nobody is asked to cross town in five minutes — a budget whose line items actually sum to the total, contingencies keyed to the ACTUAL forecast (if rain is likely, the indoor plan becomes the primary plan, not a footnote), a host prep checklist, and a self-contained guest guide page you can send to everyone.
- occasion · string · required — What is happening. e.g. 'my sister's 30th birthday dinner'
- city · string · required — City the occasion happens in.
- date · string · required — ISO date, YYYY-MM-DD.
- headcount · integer · required — How many people.
- vibe · string · required — The feeling you want. e.g. 'warm, editorial, candlelit'
- budgetUsd · number — Total budget in USD. Omitted = estimated per head.
- constraints · array — Real constraints. e.g. ['one guest is vegan', 'no stairs']
- styleId · string — House Style. Call oce_style_catalog (FREE) to see the real palette of all ten, what each is for, and a real passing example. In short: amethyst_editorial = warm ivory editorial (the safe default); gilded_noir = black + gold, black-tie; jazz_age = art-deco geometry, glamorous; solstice_bloom = pressed-flower botanicals, sunny; paper_lantern = festival paper-cut, communal; sunprint = cyanotype blues, for a MEMORY; porcelain_garden = blue-white chinaware, delicate keepsakes; terra_fresco = ochre plaster, travel & rustic; neon_reverie = luminous dark minimalism, launch-native; atlas_ink = map-and-ledger, for itineraries.
- deliverables · array — What to produce. Defaults to plan + schedule + budget + contingency + guest_guide. Add 'invitation' or 'moodboard' for artwork, 'toast' for words to say.
- briefContext · object — Optional Detailed Brief: first-party context, accessibility and dietary needs, do/don't boundaries, references and tone. These facts are injected into the pipeline; they are never inferred.
oce_design_inviteschema
An original invitation artwork in a named House Style, plus copy. 0.75 USDT per call. YOU GET: one generated invitation image (1024x1536, ready to print or send), graded by the Tribunal for composition, legibility, style fidelity and platform fit — and deterministically checked for correct dimensions, 4.5:1 text contrast, and palette fidelity to the House Style. Plus three copy variants: warm, formal, and plain.
- occasion · string · required — What the invitation is for.
- date · string · required — The date, as it should read.
- city · string — Where it happens.
- detail · string — Anything that should shape the art. e.g. 'olive trees, late sun, long table'
- styleId · string — House Style. Call oce_style_catalog (FREE) to see the real palette of all ten, what each is for, and a real passing example. In short: amethyst_editorial = warm ivory editorial (the safe default); gilded_noir = black + gold, black-tie; jazz_age = art-deco geometry, glamorous; solstice_bloom = pressed-flower botanicals, sunny; paper_lantern = festival paper-cut, communal; sunprint = cyanotype blues, for a MEMORY; porcelain_garden = blue-white chinaware, delicate keepsakes; terra_fresco = ochre plaster, travel & rustic; neon_reverie = luminous dark minimalism, launch-native; atlas_ink = map-and-ledger, for itineraries.
oce_write_toastschema
A toast someone can actually stand up and give. 0.1 USDT per call. YOU GET: the toast, a one-sentence short version for when the room is loud, and a single line to fall back on if the speaker gets emotional. Written to be SAID, not read — short sentences, a landing you can hear coming.
- subject · string · required — Who or what the toast is for.
- relationship · string — Who you are to them.
- tone · string — e.g. 'funny but sincere', 'quiet and warm'
- details · string — REAL things about them. The more specific, the better the toast.
- lengthSeconds · integer — Spoken length. Default 60.
oce_moodboardschema
A four-tile moodboard plus the art direction behind it. 0.3 USDT per call. YOU GET: a 2x2 board of four vignettes (texture, scene, light, object) with a true palette strip from the House Style beneath it, and a written art-direction sheet — palette hexes, type direction, what to do, what to avoid. Usable as a brief for a human designer.
- subject · string · required — What the mood is for.
- notes · string — Anything that should steer it.
- styleId · string — House Style. Call oce_style_catalog (FREE) to see the real palette of all ten, what each is for, and a real passing example. In short: amethyst_editorial = warm ivory editorial (the safe default); gilded_noir = black + gold, black-tie; jazz_age = art-deco geometry, glamorous; solstice_bloom = pressed-flower botanicals, sunny; paper_lantern = festival paper-cut, communal; sunprint = cyanotype blues, for a MEMORY; porcelain_garden = blue-white chinaware, delicate keepsakes; terra_fresco = ochre plaster, travel & rustic; neon_reverie = luminous dark minimalism, launch-native; atlas_ink = map-and-ledger, for itineraries.
oce_make_keepsakeschema
Turn a moment that already happened into something you can keep. 0.75 USDT per call. YOU GET: an original keepsake artwork in a curated style (sunprint — cyanotype blues — by default, because it is the right register for memory), and a short written page that separates what you told us from what it meant.
- title · string · required — What you call this memory.
- description · string — What happened, in your words. Names YOU use are treated as your own facts.
- momentDate · string — When it happened.
- tone · string — e.g. 'nostalgic, quiet'
- styleId · string — House Style. Call oce_style_catalog (FREE) to see the real palette of all ten, what each is for, and a real passing example. In short: amethyst_editorial = warm ivory editorial (the safe default); gilded_noir = black + gold, black-tie; jazz_age = art-deco geometry, glamorous; solstice_bloom = pressed-flower botanicals, sunny; paper_lantern = festival paper-cut, communal; sunprint = cyanotype blues, for a MEMORY; porcelain_garden = blue-white chinaware, delicate keepsakes; terra_fresco = ochre plaster, travel & rustic; neon_reverie = luminous dark minimalism, launch-native; atlas_ink = map-and-ledger, for itineraries.
- mediaRefs · array — Private upload keys from POST /uploads. EXIF (and GPS) already stripped on ingest.
- confirmGraph · object — YOUR corrected Story Graph. Call once without it, read the 'What we do not know' section, fix it, and call again with this. It is used exactly as you give it — we do not 'improve' your memory.
- briefContext · object — Optional Detailed Brief: first-party context, accessibility and dietary needs, do/don't boundaries, references and tone. These facts are injected into the pipeline; they are never inferred.
oce_launch_kitschema
Everything you need to launch, built from your ACTUAL site. 1.5 USDT per call. YOU GET: Occestra opens your URL in a real headless browser and reads what is ACTUALLY there — the title, the meta, the colours the page really renders, the fonts it really resolves. That evidence becomes a versioned Brand Genome (positioning, audience, voice, three supportable messages, and the cliches this product must never use). Then the kit: a hero/OG image (1536x1024), a square mark concept that reads at 32px, two social announcement cards, a 6-8 post launch thread with every post inside the platform limit, a section-by-section landing page spec with the copy actually written, and a 90-second demo beat sheet (cold open, problem, live magic, trust beat, price, CTA).
- productName · string · required — What it is called.
- url · string — The real, live URL. Strongly recommended — this is what makes the kit grounded.
- description · string — What it does, in your words.
- audience · string — Who it is for.
- styleId · string — House Style. Call oce_style_catalog (FREE) to see the real palette of all ten, what each is for, and a real passing example. In short: amethyst_editorial = warm ivory editorial (the safe default); gilded_noir = black + gold, black-tie; jazz_age = art-deco geometry, glamorous; solstice_bloom = pressed-flower botanicals, sunny; paper_lantern = festival paper-cut, communal; sunprint = cyanotype blues, for a MEMORY; porcelain_garden = blue-white chinaware, delicate keepsakes; terra_fresco = ochre plaster, travel & rustic; neon_reverie = luminous dark minimalism, launch-native; atlas_ink = map-and-ledger, for itineraries.
- deliverables · array — What to produce. Defaults to the full kit: genome, hero, mark, 2 social cards, thread, landing spec, demo beat sheet.
- briefContext · object — Optional Detailed Brief: first-party context, accessibility and dietary needs, do/don't boundaries, references and tone. These facts are injected into the pipeline; they are never inferred.
oce_critiqueschema
Run your own work — not just ours — through the Occestra Tribunal. 0.01 USDT per call. FOR OTHER BUILDERS: you made an image, a plan, or a piece of copy with your own agent. Is it actually any good? This grades it against the Occestra Quality Standard (OQS v1.2.0), a rubric published in full at /standard — the same code that runs here.
- kind · string · required — What the artifact is: 'invitation', 'plan', 'budget', 'schedule', 'toast', 'og_image', 'launch_thread', ...
- brief · string · required — What it was SUPPOSED to be. The Tribunal grades against intent.
- text · string — The artifact, if it is text or JSON.
- imageBase64 · string — The artifact, if it is an image (base64 PNG).
- size · string — The size the image was SUPPOSED to be. Enables the hard dimension check.
- styleId · string — House Style. Call oce_style_catalog (FREE) to see the real palette of all ten, what each is for, and a real passing example. In short: amethyst_editorial = warm ivory editorial (the safe default); gilded_noir = black + gold, black-tie; jazz_age = art-deco geometry, glamorous; solstice_bloom = pressed-flower botanicals, sunny; paper_lantern = festival paper-cut, communal; sunprint = cyanotype blues, for a MEMORY; porcelain_garden = blue-white chinaware, delicate keepsakes; terra_fresco = ochre plaster, travel & rustic; neon_reverie = luminous dark minimalism, launch-native; atlas_ink = map-and-ledger, for itineraries.
oce_verify_keepsakeschema
Verify any Occestra keepsake. FREE, forever, no payment required — trust that costs money is not trust. YOU GET: the EIP-712 seal, whether its signature actually recovers to the Occestra sealer, the leaf that was anchored, whether it is on chain yet, the anchoring transaction, and an explorer link you can click.
- keepsakeId · string · required — The keepsake id returned with any Occestra result.
- ownerToken · string — For a PRIVATE keepsake only: the owner token given at creation.
oce_create_pack_jobschema
Run ANY Occestra pack tool asynchronously. Costs EXACTLY what the tool it runs costs — not a cent more. Watching it is free. USE THIS FOR ANYTHING LONG. oce_launch_kit reads your site in a real browser, derives a brand genome, renders four images and writes seven pieces of copy — then grades every one of them against the standard and repairs what fails. That is minutes, not seconds. If you call it synchronously and your client times out, your client will retry, and you will have paid twice for a pack that was already being built. Start a job instead: you get an id immediately, and the work continues whether you are holding a connection or not.
- tool · string · required — Which pack tool to run. Priced exactly as that tool.
- arguments · object · required — The arguments you would have passed to that tool. Validated BEFORE you are charged.
oce_job_statusschema
Where a job has got to. FREE — charging you to ask whether the thing you already paid for is ready yet would be indefensible. YOU GET: the state (queued, running, done, failed, cancelled), how long it has been going, and the REAL event feed of the run — the venue search that actually fired, the forecast that actually came back, the image that actually rendered, the Tribunal grading each artifact and repairing the ones that failed. Nothing in that feed is invented for the look of it; every line is a port call that really happened.
- jobId · string · required — The id oce_create_pack_job gave you.
oce_job_resultschema
The finished pack — the work, the grade, and the receipt. FREE: you already paid when you started the job, and you will not be charged twice for collecting it. Identical in shape to what the synchronous tool would have returned: every artifact, its Tribunal report, the coverage gaps, the seal, and the public page.
- jobId · string · required — The id oce_create_pack_job gave you.
oce_cancel_jobschema
Stop a job. FREE. A QUEUED job stops instantly and is refunded in full — nothing had been spent on it yet.
- jobId · string · required — The id oce_create_pack_job gave you.
oce_style_catalogschema
Every House Style Occestra can render in, with the actual palette, the type direction, what each one is FOR, what it is WRONG for — and a link to a real, finished, Tribunal-PASSED artifact made in it. FREE. CALL THIS FIRST. A styleId is an argument on almost every paid tool, and choosing one blind means paying for a render you did not want. A wrong style is not a refund — it is just a bad invitation.
Full developer documentation — quickstart, the exact payment flow, provenance verification, studios reference — lives at /docs. The cheapest way in is oce_critique at 0.01 USDT: send your own agent's output and get the graded OQS report and a concrete repair brief back. Cheaper than finding out from your users.