Skyptic Call your agentMCP

For scripts and agents

The API.

Everything the site does is one HTTP call. There is no account and no key. Prefer to hand it to an AI agent?

Routes

RouteWhat it does
POST/api/checkOne candidate in, the full verdict out. Body: text (80-column lines, ADES PSV or XML, a time/RA/Dec table, or a sentence), optional station, comet, private, and deep (also searches orbit space for objects seen on 3 or more nights; it takes minutes).
POST/api/batchMany candidates in one paste, told apart by trkSub or designation. Same body. At most 5000 rows.
POST/api/framesFITS frames and the candidate's place in them (beta). A multipart form: files, x and y or ra and dec, station, rate, pa.
POST/api/jobA slow check as a job: the same body as /api/check or /api/batch plus door (check or batch), or the frames form. Answers 202 with a job id at once; see Slow checks.
GET/api/job/{id}A job's answer: 202 while it runs, then the answer once (it is deleted when fetched).
GET/api/ratesHow often each verdict has been right, as measured, with the cases it was measured on.
GET/api/examplesThe real cases behind the site's example buttons.
GET/api/examples/{key}/randomOne real case from a button, drawn anew each call.
POST/mcpThe same three tools (check, batch, rates) over MCP, Streamable HTTP.
GET/api/healthWhether the catalogues are loaded.
GET/schema/verdict.jsonThe JSON Schema of every verdict.
GET/llms.txtA plain-text guide for AI agents.

Try it

curl -X POST https://www.skyptic.app/api/check \
  -H "Content-Type: application/json" \
  -d '{"text": "I think I found something at 2026-10-26 07:58 UTC, RA 21h31m24.7s Dec -30d20m57s, mag 14.5, station T08.", "private": true}'

Slow checks: post a job

A check usually takes about a minute, and one over several nights up to three or more. Browsers and proxies often cut a request at about 30 seconds and again at about 300, so for anything slow post it as a job: you get an id at once, then ask for the answer. The engine runs once. The answer is kept only until you fetch it (or 15 minutes), and then it is gone: nothing you send is kept.

curl -X POST https://www.skyptic.app/api/job \
  -H "Content-Type: application/json" \
  -d '{"door": "check", "text": "<your rows>", "private": true}'
# {"job": "Ab3..."}

curl https://www.skyptic.app/api/job/Ab3...
# 202 {"status": "running", "seconds": 12}  (ask again in a few seconds)
# 200 the verdict, once; then 404

What comes back

A JSON object with the verdict (code, killed, a headline, a plain sentence and the next step), every check (id, status: killed, passed, held, note or not_run, the line with its numbers, and the raw evidence), the desk for a survivor (the MPC form, the ACK phrase, an ADES file), and provenance: Skyptic's version and the date of every catalogue it read, so anyone can run it again. The full shape is the schema.

Verdict codes: KNOWN, SATELLITE, STAR, NOT_ONE_BODY, NO_ORBIT (explained away); STATIC (a fixed source, for another desk), EARTHBOUND (near the Earth, and no catalogued satellite matches), HELD (nothing killed it yet, and it lists what it needs); SURVIVOR; UNREAD (nothing could be read).

Privacy and limits

Nothing sent is kept. Four checks ask outside services about the rows (Gaia, WAMO, SatChecker, and SkyBoT in the deep mode); "private": true skips all four. A request over 5000 rows is refused (413). A single candidate takes from about 3 seconds to half a minute; a full night of 80-column rows takes minutes (measured: 65 to 181 seconds). From one address: 30 checks, 3 batches and 6 frame sets a minute; past that, a 429.