Reference
Public data and formats
The no-key endpoints, the Markdown and JSON copy of every page, the discovery files, and the licence.
Scores, prices, pass rules and benchmark reports are public: no key, no sign-up. Every public response is published under CC-BY-4.0 and carries license and generated_at. Use it anywhere with the attribution "Arettic (arettic.com)".
No-key endpoints
| Endpoint | Query | What it returns |
|---|---|---|
GET /v1/task-types | — | The task types, each with its pass rule, input and output fields. |
GET /v1/tools | task_type, region, mode=test | The tool catalog with scores and prices. mode=test lists the mock tools test keys buy. |
GET /v1/tools/{id} | — | One tool: its score per region, every score input, the weekly history, the latest benchmark and its price. |
GET /v1/scores | task_type, region, mode=test | The current score of every tool. |
GET /v1/pricing | — | The price per success of every tool, per plan. |
GET /v1/formula | — | The score formula, weights, inputs and rules, the pass rules and the price formula. See how scores work. |
GET /v1/reports | — | The published benchmark reports. |
GET /v1/reports/{slug} | — | One report: ranked results, method and sample cases. |
GET /v1/status | — | Live status of the API, execute, recommend, MCP, website and payments, with incidents. |
POST /v1/waitlist | body: email (required), name, company, use_case | Join the waitlist. 201 joined, 200 already_joined. |
- Responses are cacheable for 60 seconds (
Cache-Control: public, max-age=60) and allow any origin (Access-Control-Allow-Origin: *), so a browser page can call them directly. - Limit: 120 requests a minute per IP, reported in
RateLimit-*headers. See rate limits. - An unknown
task_typegetsunknown_task_type; an unknown tool,404 unknown_tool.
curl "https://api.arettic.com/v1/tools?task_type=find_email®ion=US" curl https://api.arettic.com/v1/tools/zerobounce-verify-email
import { Arettic } from "@arettic/sdk";
const arettic = new Arettic(); // public calls need no key
const { tools } = await arettic.tools({ taskType: "verify_email", region: "US" });
const formula = await arettic.formula();from arettic import Arettic client = Arettic() # public calls need no key tools = client.tools(task_type="verify_email", region="US")["tools"] formula = client.formula()
Every page as Markdown and JSON
Every public page of the site (home, pricing, scores, each tool, each report, these docs, the changelog, status) has two machine-readable copies with the same content:
- Add
.mdor.jsonto the path:https://arettic.com/docs/quickstart.md,https://arettic.com/tools/zerobounce-verify-email.json. The home page is/index.mdand/index.json. - Or keep the path and send
Accept: text/markdownorAccept: application/json. - Each HTML page also names its copies in
<link rel="alternate">tags.
curl https://arettic.com/docs/receipts.md curl -H "Accept: application/json" https://arettic.com/pricing
Discovery files
| File | What it is |
|---|---|
/llms.txt | A short map of the site and the API for language models, with links to the Markdown copies. |
/llms-full.txt | The same, with the full docs inline. |
/openapi.json | The OpenAPI 3.1 description of every endpoint (also on the API's domain). |
/.well-known/mcp.json | The MCP server card: endpoint, transport and tools. |
/schemas/{name}.json | Open JSON Schemas: receipt, execute request and response, webhook event, pass rules. |
/sitemap.xml | Every public page. |
/robots.txt | AI crawlers and agents are welcome; only the dashboard and sign-in paths are closed. |
/changelog.xml | The changelog as RSS; also /changelog.md and /changelog.json. |
/status.json | The status page as JSON; also /status.md. |