Skip to main content

API Reference

All endpoints are prefixed with /api/v1. Every response uses a standard envelope:

{
"data": {},
"error": null,
"meta": {}
}

All endpoints except registration, login, and OAuth URL generation require authentication via Bearer token.


Authentication

MethodEndpointDescription
POST/api/v1/auth/registerRegister a new account with email and password
POST/api/v1/auth/loginLogin with email and password
GET/api/v1/auth/meGet the current authenticated user
GET/api/v1/auth/google/urlGet the Google OAuth authorization URL
POST/api/v1/auth/google/callbackHandle Google OAuth callback
GET/api/v1/auth/google/accountsList connected Google accounts
DELETE/api/v1/auth/google/accounts/{id}Remove a connected Google account
GET/api/v1/auth/twitter/urlGet the Twitter OAuth authorization URL
POST/api/v1/auth/twitter/callbackHandle Twitter OAuth callback

Contacts

MethodEndpointDescription
GET/api/v1/contactsList contacts (paginated, searchable, filterable)
POST/api/v1/contactsCreate a new contact
GET/api/v1/contacts/tagsGet all unique tags across contacts
GET/api/v1/contacts/statsGet dashboard statistics
GET/api/v1/contacts/{id}Get contact detail
PUT/api/v1/contacts/{id}Update a contact
DELETE/api/v1/contacts/{id}Delete a contact
GET/api/v1/contacts/{id}/duplicatesFind potential duplicate contacts
POST/api/v1/contacts/{id}/merge/{other_id}Merge two contacts
POST/api/v1/contacts/{id}/refresh-biosRefresh social bios for a contact
POST/api/v1/contacts/{id}/send-messageSend a message to a contact (returns 429 on rate limit)
POST/api/v1/contacts/import/csvImport contacts from a CSV file
POST/api/v1/contacts/scores/recalculateRecalculate relationship scores for all contacts

Sync (Background Tasks)

All sync endpoints return immediately. A notification is created upon completion.

MethodEndpointDescription
POST/api/v1/contacts/sync/googleSync Google Contacts
POST/api/v1/contacts/sync/google-calendarSync Google Calendar events
POST/api/v1/contacts/sync/telegramSync Telegram chats, groups, and bios
POST/api/v1/contacts/sync/twitterSync Twitter DMs, mentions, and bios

Telegram Auth

MethodEndpointDescription
POST/api/v1/auth/telegram/connectSend OTP code to Telegram
POST/api/v1/auth/telegram/verifyVerify the Telegram OTP code
POST/api/v1/auth/telegram/verify-2faSubmit Telegram 2FA password
GET/api/v1/contacts/{id}/telegram/common-groupsGet shared Telegram groups with a contact

Interactions

MethodEndpointDescription
GET/api/v1/contacts/{id}/interactionsGet interaction timeline for a contact
POST/api/v1/contacts/{id}/interactionsAdd a note interaction for a contact
PATCH/api/v1/contacts/{id}/interactions/{iid}Update a manual note
DELETE/api/v1/contacts/{id}/interactions/{iid}Delete a manual note
POST/api/v1/contacts/{id}/sync-telegramSync Telegram DMs for a specific contact
POST/api/v1/contacts/{id}/sync-twitterSync Twitter DMs for a specific contact

Suggestions

MethodEndpointDescription
GET/api/v1/suggestionsList follow-up suggestions
PUT/api/v1/suggestions/{id}Update suggestion status
POST/api/v1/suggestions/generateGenerate new follow-up suggestions
POST/api/v1/suggestions/{id}/regenerateRegenerate the AI-drafted message for a suggestion

Identity Resolution

MethodEndpointDescription
GET/api/v1/identity/matchesList potential identity matches
POST/api/v1/identity/scanTrigger an identity resolution scan
POST/api/v1/identity/matches/{id}/mergeMerge a matched identity pair
POST/api/v1/identity/matches/{id}/rejectReject a matched identity pair

Notifications

MethodEndpointDescription
GET/api/v1/notificationsList notifications
GET/api/v1/notifications/unread-countGet unread notification count
PUT/api/v1/notifications/{id}/readMark a notification as read
PUT/api/v1/notifications/read-allMark all notifications as read

Organizations

MethodEndpointDescription
GET/api/v1/organizationsList organizations (excludes those with zero active contacts)
POST/api/v1/organizations/mergeMerge two or more organizations
GET/api/v1/organizations/{id}Get organization detail
PATCH/api/v1/organizations/{id}Update an organization
DELETE/api/v1/organizations/{id}Delete an organization