Use the Silotree API and webhooks
The API gives scripts, Zapier and Make the same answers your assistant gets: sites, the Score, links to add, link problems, posts and drafts. Writing works the same way too: preview a batch, then write that preview. Webhooks tell an address of yours when a scan finishes or links are written or undone.
Steps
Create an API key
In Silotree, open Account → Assistants and API and press Create an API key. Name it, choose Read only or Read, and write links it previews, and which sites it covers. The key is shown once: copy it then. It works until you press Revoke.
Call the API
Send the key as a bearer token. Every answer is JSON:
curl https://silotree.io/api/v1/sites \ -H "Authorization: Bearer stk_…"{site}is the domain (example.com). Errors come back as{ error, next }with a matching status: 401 for a bad key, 403 for a read-only key asked to write, 404 for a site the key does not cover.GET /api/v1/sitesYour sites, with plan, Score and last scan. GET /api/v1/sites/{site}The overview: Score and its parts, the biggest wins, counts and this week’s actions. GET /api/v1/sites/{site}/linksLinks to add, each with its sentence. ?show=strong|unlinked|buried|unindexed|new, ?to=, ?from=, ?limit= (up to 20), ?offset=. GET /api/v1/sites/{site}/issuesBroken and redirected links with their fix, and competing posts. GET /api/v1/sites/{site}/posts?post=…One post by address or title words: links in and out, depth, links to add. POST /api/v1/sites/{site}/drafts{ text, title?, url? }: links a draft could carry, and posts that could link to it. GET /api/v1/sites/{site}/scanScan status. POST starts a scan (write). GET /api/v1/sites/{site}/batchesRecent changes, where each came from, and which can be undone. POST /api/v1/sites/{site}/decisions{ links, decision: approve | skip | restore } (write). POST /api/v1/sites/{site}/previews{ links | approved: true | fixes | all_fixes: true }: what a batch would change, and a previewToken (write). POST /api/v1/batches{ preview }: write exactly that preview (write). POST /api/v1/batches/{id}/undoPut the posts back (write). GET | POST /api/v1/webhooks, DELETE /api/v1/webhooks/{id}List, add and remove webhooks. Write links: preview, then batch
Writing takes two calls, as in the app. Preview first; the answer lists every link with its sentence and a
previewTokenthat lasts ten minutes. Then write that token:curl -X POST https://silotree.io/api/v1/sites/example.com/previews \ -H "Authorization: Bearer stk_…" -H "content-type: application/json" \ -d '{"approved": true}' curl -X POST https://silotree.io/api/v1/batches \ -H "Authorization: Bearer stk_…" -H "content-type: application/json" \ -d '{"preview": "stp_…"}'A batch writes only what the preview listed, and nothing that was written, skipped or removed in between. It follows your plan's limits and can be undone like any other; see write and undo batches.
Add a webhook and check its signature
Under Webhooks on the same page, press Add a webhook, give an https address and choose the events:
scan.finished(with the Score and links waiting),batch.writtenandbatch.undone. Copy the signing secret when it is shown.Each delivery is a POST of JSON:
{ "id": "evt_…", "type": "scan.finished", "created": "2026-10-20T09:00:00Z", "site": "example.com", "data": { "pages": 214, "score": 78, "linksWaiting": 12 } }It carries
Silotree-Signature: t=…,v1=…:v1is the hex HMAC-SHA256 oft, a full stop and the raw body, keyed with your secret. Compute the same and compare, and refuse atmore than five minutes old.
A key is a connection like an assistant's: the same tools, the same site list, the same activity list in Account → Assistants and API. A key also works as a bearer token in any MCP client that takes a header, at https://silotree.io/api/mcp.
If it doesn’t work
- 401: That key is unknown, expired or revoked
Check you sent the whole key, starting stk_. If it was revoked, create a new one.
- The webhook switched itself off
It failed 20 times in a row. Check the address answers a POST with a 2xx status, then remove the webhook and add it again.
Questions
Is there a rate limit?
300 requests per five minutes per key. Past that the API answers 429 with how long to wait.
What happens when my webhook address is down?
Silotree tries again after 1, 5 and 30 minutes, then 2, 6 and 24 hours. After 20 failures in a row the webhook is switched off, and Account → Assistants and API says so; remove it and add it again once your address works.