Attrove API Reference
REST API for permission-aware communication: provision users; connect the live Gmail, Microsoft Outlook, Slack, Google Calendar, and Google Meet sources (Microsoft Teams is in pilot); query cited evidence; register individual Commitments; and keep broader Goals under review. Base URL: https://api.attrove.com/v1. Partner endpoints authenticate with client_id + client_secret; user endpoints authenticate with the per-user sk_ token.
Attrove is read-first. Live connectors are read-scoped. Writes create Attrove-owned users, sessions, pushed context, Goals, Commitments, and webhook configuration; they do not send provider messages, create provider drafts, or modify upstream source records. Webhooks deliver signed events to endpoints you configure. Self-serve plans do not bundle SMS, email, or Slack alert routes.
Self-serve Connect pricing: Starter is $0/month with 5 users and 500 queries included, hard caps of 10 users and 1,000 queries, no workspace contexts or seats, and no overage billing. Growth is $99/month with 25 users, 5,000 queries, 1 workspace context, and 50 seats included; hard caps are 50 users, 10,000 queries, and 5 contexts; overages are $5/user/month, $0.01/query, and $1/workspace seat. Scale is $499/month with 100 users, 50,000 queries, 5 workspace contexts, and 500 seats included; hard caps are 200 users, 100,000 queries, and 20 contexts; overages are $3/user/month, $0.008/query, and $1/workspace seat. Enterprise has no published fixed hard caps or overage rates; allocations, limits, and billing terms are configured by agreement. Machine-readable pricing.
Full request/response examples for every endpoint: llms-full.txt. SDK: TypeScript SDK. AI clients: MCP integration.
User Management API
Server-to-server endpoints for creating users and starting the OAuth connect flow. Requires your client_id and client_secret. To land users back on a specific page of your product after OAuth, configure a redirect_url on your API key in the dashboard (connect.attrove.com → API Keys → edit). See OAuth Completion Redirect below.
POST /v1/users— Create a userPOST /v1/users/:user_id/connect-sessions— Create a durable connect sessionGET /integrations/connect?session=:session_id— Open the activation URLPOST /v1/users/:user_id/integrations/connect— OAuth Completion RedirectGET /v1/users/settings— Get organization sync settingsPATCH /v1/users/settings— Update organization sync settings
Webhooks API
Configure outbound webhook endpoints, send test events, rotate secrets, and inspect delivery attempts.
POST /v1/webhooks— Create a webhook endpointGET /v1/webhooks— List webhook endpointsGET /v1/webhooks/:id— Get webhook endpointPATCH /v1/webhooks/:id— Update endpoint configurationPOST /v1/webhooks/:id/test— Send a test webhookPOST /v1/webhooks/:id/rotate-secret— Rotate webhook secretDELETE /v1/webhooks/:id— Delete webhook endpointGET /v1/webhooks/:id/deliveries— List delivery attempts
User Data API
Call these endpoints with an end-user sk_ token. Where relevant, examples use a full-year date range.
GET /v1/users/:user_id— Retrieve user profileGET /v1/users/:user_id/sync-stats— Get sync statisticsGET /v1/users/:user_id/conversations— List conversationsPATCH /v1/users/:user_id/conversations— Update conversation sync settingsPOST /v1/users/:user_id/search— Semantic searchPOST /v1/users/:user_id/query— AI queryGET /v1/users/:user_id/integrations/:id— Get integration by IDDELETE /v1/users/:user_id/integrations/:integration_id— Disconnect an integrationGET /v1/users/:user_id/messages— List and filter messagesGET /v1/users/:user_id/messages/:id— Fetch single messageGET /v1/users/:user_id/entities— List contactsGET /v1/users/:user_id/entities/:id— Retrieve a contactGET /v1/users/:user_id/entities/relationships— Get relationship graph
Goals API
Watched outcomes. A goal names an outcome (a renewal, a deal, a commitment), and Attrove keeps re-evaluating it against the communication stream: lifecycle and health update with cited evidence, risk signals, and suggested next actions. Lifecycle never changes autonomously; humans confirm transitions with a reason.
POST /v1/users/:user_id/goals— Create a goalGET /v1/users/:user_id/goals— List goalsGET /v1/users/:user_id/goal-events— List goal eventsGET /v1/users/:user_id/goals/:goal_id— Get a goalPATCH /v1/users/:user_id/goals/:goal_id— Update a goalPOST /v1/users/:user_id/goals/:goal_id/evaluate— Queue an evaluationPOST /v1/users/:user_id/goals/:goal_id/status— Confirm or override statusPOST /v1/users/:user_id/goals/:goal_id/acknowledge— Acknowledge expected silenceDELETE /v1/users/:user_id/goals/:goal_id/acknowledgment— Clear acknowledgmentGET /v1/users/:user_id/goals/:goal_id/evidence— Get goal evidenceGET /v1/users/:user_id/goals/:goal_id/snapshots— List goal snapshotsPOST /v1/users/:user_id/goals/:goal_id/archive— Archive a goalPOST /v1/users/:user_id/goals/:goal_id/cancel— Cancel a goalPOST /v1/users/:user_id/goals/:goal_id/reopen— Reopen a goal
Commitments API
Watched obligations. A commitment is an explicit obligation an agent registers — a promise, delegation, or handoff with a counterparty, an expected future signal, and a horizon. Attrove watches it until the signal arrives, auto-resolves it when the arrival is detectable, and escalates to a human by email when it silently never comes. Commitments differ from goals: a goal is a watched outcome, evidence-evaluated against the communication stream; a commitment is a discrete obligation with a named expected signal. The strict definition is a feature — registrations missing the signal or horizon are never rejected and never escalate: they land as low-confidence suggestions a human can triage or dismiss.
POST /v1/users/:user_id/commitments— Register a commitmentGET /v1/users/:user_id/commitments— List open commitmentsPOST /v1/users/:user_id/commitments/:commitment_id/resolve— Resolve a commitment
Calendar & Events API
Access user calendars and events from connected calendar integrations. Use an end-user sk_ token for authentication.
GET /v1/users/:user_id/calendars— List user calendarsGET /v1/users/:user_id/calendars/:id— Get calendar by IDPATCH /v1/users/:user_id/calendars/:id— Update calendar active statusGET /v1/users/:user_id/events— List eventsGET /v1/users/:user_id/events/:id— Get event by ID
Meetings API
Access meeting recordings and AI-generated summaries from connected meeting sources. Supports Google Meet, Zoom, and Teams provider filters. Includes transcripts, action items, and attendee information.
GET /v1/users/:user_id/meetings— List user meetingsGET /v1/users/:user_id/meetings/:id— Get meeting by IDPATCH /v1/users/:user_id/meetings/:id— Update meetingPOST /v1/users/:user_id/meetings/:id/regenerate-summary— Regenerate AI summary
Threads API
Discover and analyze conversation threads with AI-powered semantic search and structured insights extraction.
POST /v1/users/:user_id/threads/discover— Discover threadsPOST /v1/users/:user_id/threads/:conversation_id/analyze— Analyze threadGET /v1/users/:user_id/threads/:thread_id/messages— List thread messages
Push API
Push data directly into Attrove without requiring OAuth connections. Auto-provisions virtual integrations for each data type. A queued response means the push was accepted for asynchronous indexing, not that it is query-ready yet; data becomes searchable via /search and AI queries once indexed.
POST /v1/users/:user_id/messages— Push messagePOST /v1/users/:user_id/meetings— Push meetingPOST /v1/users/:user_id/events— Push eventPOST /v1/users/:user_id/notes— Push note
Notes API
Read notes created via push endpoints or partner systems. Notes can be linked to messages, meetings, events, entities, or goals via cross-references.
GET /v1/users/:user_id/notes— List notesGET /v1/users/:user_id/notes/:note_id— Get note by ID