Rig developer and agent documentation
Everything on rig.so that a person or an agent can call: a public read-only content API, machine-readable descriptions of this site, and the Rig MCP server that gives an agent governed access to your own warehouse. No key needed for anything on this page except the MCP server, which acts on your data and so needs your account.
Public API version 1.0.0. Questions go through the contact form.
Quickstart
Two commands. The first reads the API index, the second reads any page on this site as markdown instead of HTML.
curl -s https://rig.so/api/v1/index.json | jq .
curl -s -H "Accept: text/markdown" https://rig.so/developersContent API
Read-only JSON mirrors of this site, rebuilt on every deploy. No authentication, no rate limit beyond the CDN's, and CORS is open, so a browser agent can call them directly. Every collection returns the full set: there is no pagination to walk.
| Endpoint | Operation | Returns |
|---|---|---|
| /api/v1/index.json | getApiIndex | Index of the API, with links to every other document |
| /api/v1/site.json | getSiteProfile | Company profile: what Rig is, how to make contact, where the documented surfaces are |
| /api/v1/pages.json | listPages | Every indexable page with title, description and markdown URL |
| /api/v1/guides.json | listGuides | The guides library, with published and updated dates |
| /api/v1/case-studies.json | listCaseStudies | Customer stories, with customer and industry |
| /api/v1/integrations.json | listIntegrations | Every system Rig connects to, by category |
| /api/v1/apps.json | listApps | The data app gallery |
Markdown instead of HTML
Every page on rig.so is published twice: as HTML for people, and as markdown for models. Ask for it either way.
- Send
Accept: text/markdownto any page URL and you get the markdown, withVary: Accept, Accept-Encodingon the response so caches keep the two apart. - Or append
.mdto the path: /guides/rbac.md
Each markdown document opens with front matter carrying the title, description and canonical URL, then the page's own content with its heading structure intact.
MCP server
The content API above describes Rig. The MCP server does the actual work: it gives Claude, ChatGPT, Cursor, Codex or your own agent governed access to your warehouse and the systems around it, with the context layer, certified metrics and business rules attached. Transport is Streamable HTTP. Auth is OAuth 2.1, or a static rig_mcp_ token for headless clients.
# Claude Code
claude mcp add --transport http rig https://app.rig.so/mcp/{workspace}/
# Codex
codex mcp add rig --url https://app.rig.so/mcp/{workspace}/Replace {workspace} with your workspace id, which Rig shows under Settings then Integrations next to a ready-made command. The manifest at /.well-known/mcp.json carries the same detail in machine-readable form, including the tool list. Step-by-step: connect Rig to your AI tools, or ask questions in Claude via Rig MCP.
Form endpoints
The forms on this site post to /api/forms/{form}, where form is one of book-demo, signup, events, contact or survey. Human submissions carry a reCAPTCHA token; agents cannot mint one and should leave it out. The survey accepts agent submissions on purpose and tags them unverified, which is why /survey-agent.md exists. The lead forms answer a tokenless submission with challenge: true, meaning a person has to finish it in a browser.
curl -s -X POST https://rig.so/api/forms/survey \
-H "Content-Type: application/json" \
-d '{"contact_email":"you@example.com","q_agents_in_production":"yes_several"}'Errors
Errors are JSON everywhere on rig.so, including the ones generated at the CDN edge for unknown paths under /api/. Branch on error.code, which is stable; error.message and error.hint are written for a reader. A page that does not exist returns a real 404, not a 200 with the app shell.
{
"ok": false,
"error": {
"code": "not_found",
"message": "No resource exists at /api/v1/nope.json.",
"hint": "See https://rig.so/openapi.json for the endpoints this API serves.",
"docs": "https://rig.so/developers"
}
}| Code | HTTP | Meaning |
|---|---|---|
| not_found | 404 | No resource exists at that path. |
| method_not_allowed | 405 | The path exists but not for that HTTP method. |
| invalid_request | 400 | The request body was missing, malformed, or failed validation. |
| payload_too_large | 413 | The request body exceeded 16 KB. |
| verification_failed | 422 | The submission's captcha token was invalid, replayed, or minted for another site. |
| forbidden | 403 | The request did not reach the endpoint through an allowed route. |
| internal_error | 500 | The endpoint is misconfigured. Retry later and report it if it persists. |
| upstream_error | 502 | A downstream system rejected the submission, dropped it, or could not be reached. Safe to retry. |
Machine-readable files
- /openapi.jsonOpenAPI 3.1 description of every public endpoint. Also at /openapi.yaml
- /.well-known/mcp.jsonRig's MCP server: transport, URL template, auth and tools. Mirrored at /mcp.json
- /api/v1/index.jsonIndex of the content API, with a line on what each endpoint returns
- /llms.txtPlain-language map of the site for language models
- /sitemap.xmlEvery indexable URL
- /survey-spec.jsonQuestions and option ids for the State of AI, Data & Trust survey
- /survey-agent.mdThe prompt that lets an agent complete that survey on your behalf
Support and limits
The content API is static files behind a CDN, so it is fast, cached and has no per-key limit. Be reasonable and it will not be a problem. The MCP server is rate limited per user, and its limits come with your workspace. Security questions and disclosures go to the security page; everything else through the contact form. Rig publishes no email address, so if you find one in a search result it did not come from us.