Public REST API — overview
Turtini ships a public REST API at https://api.turtini.com/v1/* for any tool — your code, an AI, a SaaS integration — to read and write your org's data.
Auth:
Authorization: Bearer turtini_<your-key>
Mint keys at Settings → Developer → API Keys with per-module read/write scopes. Wildcards supported (*:read covers all read scopes; *:write covers all write scopes).
Base URL: https://api.turtini.com
Spec: https://api.turtini.com/v1/openapi.json
Read endpoints (all paginated, newest-first):
• GET /v1/accounts — accounts:read
• GET /v1/contacts — contacts:read
• GET /v1/opportunities — opportunities:read
• GET /v1/articles — articles:read
• GET /v1/events — events:read
• GET /v1/quotes — quotes:read
• GET /v1/products — products:read
• GET /v1/grants — grants:read
• GET /v1/search?q=... — any read scope (unified text search)
Write endpoints (idempotency-key supported):
• POST /v1/contacts — contacts:write
• POST /v1/articles — articles:write (status forced to 'draft')
• POST /v1/events — events:write
• POST /v1/notes — notes:write (append to account/opportunity/contact)
Auth verification:
GET /v1/auth/verify — returns the org context the key grants
Pagination:
Pass ?limit=N (1-500, default 100). Responses include nextPageToken; pass it as ?pageToken= to walk further pages.
Idempotency on writes:
Pass an Idempotency-Key header. Repeated requests with the same key replay the cached response for 24 hours instead of double-creating.
Rate limits:
500 requests per minute per API key. Per-key usage counters surface today's and this month's volume in Settings → Developer → API Keys.
SDKs and clients:
• @turtini/sdk — TypeScript SDK (npm install @turtini/sdk)
• @turtini/mcp — MCP server for any IDE/agent (npm install -g @turtini/mcp)
• Remote MCP — https://api.turtini.com/mcp (no install)