With the Export permission (read scope), you can read the data in your Sybill workspace: meetings and their transcripts, CRM deals and accounts, messages, custom rows, and documents. This article covers what each read endpoint returns and the filters that matter most.
All list endpoints use cursor-based pagination - see API pagination, rate limits, errors, and conventions for how to page through results.
What the API can see
API keys operate with organization-level context, not as an individual Sybill user. That has two consequences:
Export endpoints return organization-visible records only. Private records owned by individual users are excluded.
Records you import through the API are private by default. Set
public: trueon import if a record must be readable back through these endpoints (see Import data into Sybill).
Conversations
List meetings with GET /v1/conversations. Useful filters:
Filter | Behavior |
|
|
| Bounds on meeting start time (ISO 8601) |
| Case-insensitive partial match |
| One of three shapes: a name fragment ( |
| Associated CRM deal or account name — case-insensitive exact-phrase match; multi-word queries match the full phrase, not individual tokens |
| Filter by origin (see source identifiers below) |
| Page size (default 20, max 50) and pagination cursor |
curl -H "Authorization: Bearer sk_live_YOUR_KEY" \ "https://api.sybill.ai/v1/conversations?type=EXTERNAL&startedAfter=2026-01-01T00:00:00Z&limit=50"
Each result includes the conversation ID, title, start and end times, type, participants (name, email, and whether they attended), and the linked CRM record when one exists.
Conversation detail
GET /v1/conversations/{conversationId} adds the content:
transcript— speaker-segmented entries:speaker,text, andstartTime/endTimeas offsets in seconds from the meeting start.summary— the AI-generated meeting summary. Its keys vary by meeting type.category— an AI-assigned meeting category. External meetings use values such asprospect_discovery,prospect_demo,prospect_trial,prospect_negotiation,closed_won,closed_lost,customer_onboarding,customer_support,customer_checkin,customer_commercials,interview,user_research,partner_call,consulting_call,advisor_call,investor_call,vendor_call, orother. Internal meetings use values such asone_on_one,sales_team,customer_team,customer_service_team,marketing_team,product_team,engineering_team,it_team,hr_team,operations_team,finance_team,legal_team,investment_team,consulting_team,company_wide, orother.recordings— presigned recording URLs (next section).
Meeting recordings
The recordings object on a conversation detail contains up to four URLs:
Field | Use it for |
| Downloading — browsers save the file |
| In-browser playback inside a |
All four URLs expire after 24 hours, so fetch them shortly before use. A field is null when that recording doesn't exist - and stream URLs are also null if streaming URLs are not enabled for your organization.
Source identifiers for conversations
The sourceId filter (and field) accepts either the UUID of a custom source you created through the API, or a reserved native identifier for Sybill's built-in integrations: sybill (includes Sybill desktop-notetaker recordings), gong, chorus, fathom, grain, mindtickle, avoma, fireflies, zoho_meetings, uploaded_call, uploaded_transcript, zoom_phone, outreach_dialer, nooks_dialer, ringcentral_dialer, aircall_dialer, hubspot_dialer. Omit the filter to include all origins. Responses return the same value, so you can round-trip it.
Deals
List CRM deals with GET /v1/deals (default page size 20). Filters: name, stage (case-insensitive partial match), closed (true for won/lost, false for open), owner, closeDateBefore/closeDateAfter, amountMin/amountMax, and lastActivityBefore/lastActivityAfter.
curl -H "Authorization: Bearer sk_live_YOUR_KEY" \ "https://api.sybill.ai/v1/deals?closed=false&amountMin=10000"
Each deal carries its CRM identifier, name, account name, stage, pipeline, amount, close date, created and last-activity dates, and owner. GET /v1/deals/{dealId} adds the AI-generated deal summary, crmAutofill (suggested CRM field updates from AI analysis), and the deal's contacts.
Accounts
List CRM accounts with GET /v1/accounts (default page size 20). Filters: name, website, owner (name or email), createdBefore/createdAfter, and lastActivityBefore/lastActivityAfter.
Each account includes its latestDeal - the most recent open deal by creation date, or the most recent closed deal if no open deals exist. GET /v1/accounts/{accountId} adds contacts and syncedCrmFields, a label-to-value map of the CRM fields synced for that account.
Messages
List messages with GET /v1/messages (default page size 50). Filters: sourceId, remoteId, threadId, participantEmail, and createdAfter/createdBefore.
The sourceId is either the UUID of a custom source you created, or a native identifier: gmail, outlook, zoho_mail, salesforce_crm, hubspot_crm, pipedrive_crm, dynamics_crm, zoho_crm.
List results include sender, recipients, subject, thread ID, and a truncated bodyPreview. GET /v1/messages/{messageId} returns the full body plus attachment metadata (id, filename, contentType, size) - attachment content itself is not exposed.
Rows and documents
Two more resources round out exports:
Rows (
GET /v1/rows, default page size 50) - custom typed records you imported. Filter bysourceId(custom source UUIDs only),objectTypeId,remoteId,name, orcreatedAfter/createdBefore. Each row returns its field values keyed by field name, with the declared field type of each value.Documents (
GET /v1/documents, default page size 50) - text-bearing files.sourceIdaccepts a custom source UUID or the reserved valueschat_uploadandmailbox_attachment(email attachments). Theurlfield is the document's original external URL and isnullfor content uploads and mailbox attachments.
You can also list your custom sources (GET /v1/sources, filterable by name) and object types (GET /v1/object-types, filterable by sourceId); these two lists are not paginated.
