The same tools, over plain HTTP
For a script or a service that cannot run a browser sign-in. Scoped keys, one OpenAPI document, and the same approvals as the screen.
The short version
InstinctGTM's REST API at /api/v1 runs the same tools as the MCP server through the same permission checks, described in one OpenAPI document generated from the registry the server runs on. You issue a key with only the scopes it needs; the secret is shown once and stored hashed, and rate limits come back in headers on every response.
Read against the registry on 2026-10-13
Set it up
Issue a key
Open Settings, then Agent access, and issue a key with only the scopes it needs, for only the ventures it should reach.
Read the document
Fetch /api/v1/openapi.json. It lists every route below, generated from the same registry the server runs.
Call it
Send the key as a bearer token. Rate limits come back in RateLimit headers, so you never have to find them by hitting them.
Every route
30 routes under /api/v1, each running one tool.
| GET | /api/v1/ventures | The ventures this credential can reach. |
|---|---|---|
| GET | /api/v1/brief | Everything waiting, in one call. |
| GET | /api/v1/approvals | Drafts a human has yet to allow. |
| GET | /api/v1/followups | People owed a next touch. |
| GET | /api/v1/companies | Search watched companies. |
| POST | /api/v1/companies | Add a company to the watchlist. |
| GET | /api/v1/companies/{company_id} | One company, with its dated timeline. |
| GET | /api/v1/companies/{company_id}/explain | Why the system concluded what it did. |
| POST | /api/v1/companies/{domain}/read | Ask for a company to be re-read. |
| GET | /api/v1/people | Find people in the CRM. |
| POST | /api/v1/people | Add a person. |
| GET | /api/v1/people/{person_id} | One person, with their history and intel. |
| POST | /api/v1/people/{person_id}/touchpoints | Record that something happened. |
| POST | /api/v1/people/{person_id}/stage | Move a relationship to a new stage. |
| POST | /api/v1/people/{person_id}/snooze | Push a follow-up out, or clear it. |
| POST | /api/v1/people/{person_id}/followup | Draft the next message in a sequence. |
| GET | /api/v1/content | Find content by channel and state. |
| POST | /api/v1/content | Turn one idea into a post per channel. |
| POST | /api/v1/content/{artifact_id}/approve | Approve one piece. Does not publish. |
| GET | /api/v1/posts | The posting calendar: drafts, scheduled, failed and published posts. |
| POST | /api/v1/posts | Save a post as a draft for the networks named. |
| POST | /api/v1/posts/{group_id}/schedule | Schedule a drafted post. At its time it goes out. |
| POST | /api/v1/content/{artifact_id}/published | Record that an approved piece went out. |
| POST | /api/v1/ideas | Queue an idea without drafting it. |
| GET | /api/v1/mentions | Mentions and captures worth answering. |
| POST | /api/v1/mentions | Hand over a thread worth answering. |
| POST | /api/v1/mentions/{mention_id}/reply | Draft a reply to somebody who engaged. |
| POST | /api/v1/outreach/{action_id}/approve | Approve one outreach draft. This sends. |
| GET | /api/v1/performance | What each channel produced against what it cost. |
| GET | /api/v1/learning | Aggregate patterns. Counts only, no identities. |
Keys, by what they can do
- read
- Reads only.
- capture
- Reads, and queues watchlist entries, people, notes, captures and ideas.
- draft
- Reads, queues and drafts into your approvals. Cannot approve.
- full
- Everything an outside caller can hold, including approving. Still cannot send without an approval.
- events
- Only website events from your own backend.
What no credential can do
send or publish
raise a limit, a cap or an autonomy stage
read across ventures without a grant
bulk export contacts or message bodies
write to the learning boundary
reach billing, keys, or another member’s session
Questions people ask
Yes. InstinctGTM's REST API lives at /api/v1 and is described at /api/v1/openapi.json. Every route runs a tool from the same registry as the MCP server.
No route sends or publishes on its own. Approving a draft is its own call, open only to a key granted that permission, and the send runs from the queue after it.
Yes. A key holding only website events can post sign-ups and payments to /api/v1/events for website analytics. It reads nothing and drafts nothing.