/Primitives

Primitives / Shredders

Shredders

Document in, the same document out, its prose rewritten.

Each paragraph is rewritten by a different model from a pool of providers, so no single model's mark survives. Structure, links, figures and quotes stay untouched.

Unit
Shredder endpoint
A run produces
the rewritten document plus a preservation receipt
In the app
/shredders
API reference
All shredders tools

Try it

run_shred over REST: POST /api/shred/ingest/{endpoint_id}. Needs an API key with shredder:write.

curl -X POST https://app.letterstory.com/api/shred/ingest/<endpoint_id> \
  -H "x-integrations-key: ls_..." \
  -H "content-type: application/json" \
  -d '{
  "text": "..."
}'

1. Constraints: what you configure

The shredder's own file (one JSON file per version)
namelevelsrewritersseatsrulesadvanced

Only name is required; the rest uses platform settings, and every save is a new, unchangeable version. levels sets the watermark defense per level; rewriters, seats and rules pick models and checks. Use ours, copy it, or bring your own.

The endpoint's config file
namedefaults.formatdefaults.aggressiondefaults.attempts_per_unitdefaults.apply_rules
Per call
textformataggressionattempts_per_unitapply_rulesasync

aggression is standard, high or max. The config file is strict: an unknown key is refused, not ignored.

2. Mechanism: what always happens

  1. 1The document is read as prose spans over its own bytes. Images, embeds, links, tables and code never leave the process.
  2. 2Every paragraph is rewritten, each tried across providers. A judge, a turnover check and a cap on how much any one provider writes are always on.
  3. 3A quality guard reverts any sentence that dropped a figure, broke a URL, changed a quote or broke Markdown, then issues a preservation receipt.
  4. 4Fails safe: on an outage, a refusal or a lost element you get your original bytes back, not a broken document.

3. Intelligence: who picks values

You, directly

An API key sets every field on the call or the endpoint. Letterstory decides nothing.

Letterstory, for you

The Studio, the editor's Shred button, Auto-Pen and a kernel's in-loop shred go through the same door, deciding only the format and whether a post shreds at all.

4. Verification: did it hold

CheckReads backRule
preservedmechanismThe receipt shows everything that went in came out.
spreadmechanismNo provider wrote more than its share of the piece.
rulesapply_rulesThe writing-rules guard actually ran when it was asked for.

Report-only; a run the service never processed reads back as skipped on all three.

Surfaces

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

JobMCP toolREST
Shredrun_shredPOST /api/shred/ingest/{endpoint_id}
Poll a runget_shred_jobGET /api/shred/ingest/{endpoint_id}/jobs/{job_id}
list_shred_runsPOST /api/integrations/tools/list_shred_runs
Endpointslist_shredder_endpointsPOST /api/integrations/tools/list_shredder_endpoints
create_shredder_endpointPOST /api/integrations/tools/create_shredder_endpoint
delete_shredder_endpointPOST /api/integrations/tools/delete_shredder_endpoint
Endpoint configget_shredder_endpoint_configPOST /api/integrations/tools/get_shredder_endpoint_config
set_shredder_endpoint_configPOST /api/integrations/tools/set_shredder_endpoint_config
Balanceget_shred_balancePOST /api/integrations/tools/get_shred_balance
The shredder fileget_shredder_filePOST /api/integrations/tools/get_shredder_file
save_shredder_filePOST /api/integrations/tools/save_shredder_file
promote_shredder_versionPOST /api/integrations/tools/promote_shredder_version
list_shredder_versionsPOST /api/integrations/tools/list_shredder_versions
pin_shredder_versionPOST /api/integrations/tools/pin_shredder_version
accept_shredder_offerPOST /api/integrations/tools/accept_shredder_offer

CLI: letterstory shredder run

Direct API shreds draw shred credits (402 at zero). Shreds Letterstory makes for you come out of your plan.

Other primitives