/Primitives

Primitives / Arenas

Arenas

A topic in, a sourced, fact-checked outline out.

A research agent that gathers sources, weighs competing theses and fact-checks every claim. Each arena is one versioned file, like a kernel.

Unit
Arena
A run produces
an outline with its sources, direction, stat ledger and paper trail
In the app
/arenas
API reference
All arenas tools

Try it

run_arena over REST: POST /api/arena/ingest/{arena_id}. Needs an API key with arena:write.

curl -X POST https://app.letterstory.com/api/arena/ingest/<arena_id> \
  -H "x-integrations-key: ls_..." \
  -H "content-type: application/json" \
  -d '{
  "template": {},
  "depth": "...",
  "direction_gate": false,
  "provider": "...",
  "verify": false,
  "unresolved_claims": "...",
  "mention_degree": "...",
  "context": {},
  "blocked_mentions": [],
  "blocked_domains": [],
  "preferred_sources": [],
  "topic": "...",
  "source_urls": [],
  "must_include": [],
  "shape": {},
  "direction": "...",
  "existing_content": "...",
  "article_id": "...",
  "target_word_count": 0
}'

1. Constraints: what you configure

The arena's own file (one JSON file per version)
namemodeldepthproviderdirectionGateverifyunresolvedClaimsmentionDegreecontextblockedtemplateruleseffortadvanced

Only name is required; the rest uses platform settings, and every save is a new, unchangeable version. model is the research model; rules sets each source-policy call to enforce, measure or off. Use ours, copy it, or bring your own.

The endpoint's config file
namedefaults.depthdefaults.direction_gatedefaults.providerdefaults.verifydefaults.contextdefaults.template
Per call
topicsource_urlsmust_includedepthdirection_gateproviderverifyblocked_mentionsblocked_domainspreferred_sourcesshape

provider is native, exa, youcom or context-dev. Anything you leave undeclared inherits your organization's settings.

2. Mechanism: what always happens

  1. 1Gather from the live web, then read the page behind every citation, with one extra gather per named subject the outline turns up.
  2. 2Pick a direction: an agent chooses the thesis, or, with the direction gate on, proposes three and pauses for you.
  3. 3Synthesize against a stat ledger: only figures actually found in the sources may be stated precisely. Blocked names are scrubbed.
  4. 4Fact-check every claim against the sources and the web. A failing phase is marked failed with its reason, and the run carries on.

3. Intelligence: who picks values

You, directly

An API key or the Studio controls everything. Letterstory decides nothing.

Letterstory, for you

Auto-Pen, the planner and the phantom orchestrator supply the post's title, a seer's source URLs, the template's sections, the collection's depth and its preferred sources.

4. Verification: did it hold

CheckReads backRule
sourcedmechanismAt least one source has a real page behind it.
readmechanismAt least one page was read.
groundedmechanismEvery stated figure is tied to a source.
directiondirection_gateA thesis was decided.
shapeshapeEvery required section is planned.
fact_checkedverifyThe verify phase completed.

Report-only; an unfinished run reads back as skipped on all six.

Surfaces

Same call over MCP (tools/call) and REST.

JobMCP toolREST
Runrun_arenaPOST /api/arena/ingest/{arena_id}
Poll a runget_arena_runGET /api/arena/ingest/{arena_id}/runs/{run_id}
list_arena_runsPOST /api/integrations/tools/list_arena_runs
Steersubmit_arena_directionPOST /api/arena/ingest/{arena_id}/runs/{run_id}/direction
cancel_arena_runPOST /api/arena/ingest/{arena_id}/runs/{run_id}/cancel
Arenaslist_arenasPOST /api/integrations/tools/list_arenas
create_arenaPOST /api/integrations/tools/create_arena
delete_arenaPOST /api/integrations/tools/delete_arena
Arena configget_arena_configPOST /api/integrations/tools/get_arena_config
set_arena_configPOST /api/integrations/tools/set_arena_config
The arena fileget_arena_filePOST /api/integrations/tools/get_arena_file
save_arena_filePOST /api/integrations/tools/save_arena_file
promote_arena_versionPOST /api/integrations/tools/promote_arena_version
list_arena_versionsPOST /api/integrations/tools/list_arena_versions
pin_arena_versionPOST /api/integrations/tools/pin_arena_version
accept_arena_offerPOST /api/integrations/tools/accept_arena_offer
Balanceget_arena_run_balancePOST /api/integrations/tools/get_arena_run_balance

CLI: letterstory arena run --topic …

Direct runs draw arena run credits; errored and cancelled runs are free. Runs Auto-Pen makes for you are not billed.

Other primitives