# Overview (/docs/api) The Circleback API lets you read your meetings, notes, action items, transcripts, people, and companies. Use it to sync meeting data into your own tools, build automations, or search across your conversations. ## Authentication [#authentication] Send your API key as a bearer token in the `Authorization` header of every request: ```bash curl https://circleback.ai/api/meetings \ -H "Authorization: Bearer cb_" ``` ### Get an API key [#get-an-api-key] To get started, go to **Settings → API keys** in Circleback and create an API key. Keys look like `cb_` and are shown once at creation, so store yours somewhere safe. ### Base URL [#base-url] ``` https://circleback.ai/api ``` The API accepts and returns JSON. ## Pagination [#pagination] List endpoints return one page of results at a time. Omit `cursor` from the first request. When another page is available, the response includes an RFC 8288 `Link` header with `rel="next"`: ```http Link: ; rel="next" ``` Follow that URL to request the next page. Cursors are opaque and should not be modified or reused with different filters. ## Explore the reference [#explore-the-reference] Endpoints are grouped by resource in the sidebar: Meetings, Action items, Calendar, Companies, People, and Tags. Every page documents the request and response shapes and lets you try the endpoint with your API key. # Delete action item (/docs/api/action-items/delete-action-item) ## OpenAPI ```json { "info": { "description": "The Circleback public REST API provides programmatic access to your meetings, notes, action items, transcripts, and more. Authenticate every request by sending your API key as a bearer token.", "title": "Circleback Public API", "version": "1.0.0" }, "openapi": "3.2.0", "servers": [ { "url": "https://circleback.ai/api" } ], "components": { "securitySchemes": { "ApiKeyAuth": { "bearerFormat": "cb_", "scheme": "bearer", "type": "http" } } }, "tags": [ { "description": "Read and update action items captured from meetings.", "name": "Action items" } ], "paths": { "/action-item/{actionItemId}": { "delete": { "description": "Deletes an action item. Returns the deleted action item.", "parameters": [ { "description": "The unique identifier of the action item.", "in": "path", "name": "actionItemId", "required": true, "schema": { "exclusiveMinimum": 0, "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": false, "example": { "id": 252, "title": "Contact event venues", "description": "Reach out to Sunriver Events and other potential event venues to see if they would be open to hosting the event this summer.", "meetingId": "WRweb12iCBimU6Vo8cD7z", "status": "PENDING" }, "properties": { "id": { "description": "The unique identifier of the action item.", "exclusiveMinimum": 0, "type": "number" }, "title": { "description": "The title of the action item.", "type": "string" }, "description": { "description": "The detailed description of the action item.", "type": "string" }, "completedAt": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "The time the action item was marked as done, or null if it is not completed." }, "meetingId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The ID of the associated meeting, or null if none exists." }, "status": { "description": "The completion status of the action item.", "enum": [ "PENDING", "DONE" ], "type": "string" } }, "required": [ "id", "completedAt", "title", "description", "status", "meetingId" ], "type": "object" } } }, "description": "Successful response." }, "400": { "content": { "application/json": { "schema": { "additionalProperties": false, "properties": { "code": { "description": "A machine-readable code identifying the type of failure.", "type": "string" }, "error": { "description": "A human-readable message explaining why the request failed.", "type": "string" }, "issues": { "description": "The field-level validation issues found in an invalid request.", "items": { "additionalProperties": false, "properties": { "message": { "description": "A human-readable explanation of the validation failure.", "type": "string" }, "path": { "description": "The location of the request field that failed validation.", "type": "string" } }, "required": [ "path", "message" ], "type": "object" }, "type": "array" } }, "required": [ "error" ], "type": "object" } } }, "description": "The request failed validation." } }, "security": [ { "ApiKeyAuth": [] } ], "summary": "Delete action item", "tags": [ "Action items" ] } } } } ``` # Update action item (/docs/api/action-items/update-action-item) ## OpenAPI ```json { "info": { "description": "The Circleback public REST API provides programmatic access to your meetings, notes, action items, transcripts, and more. Authenticate every request by sending your API key as a bearer token.", "title": "Circleback Public API", "version": "1.0.0" }, "openapi": "3.2.0", "servers": [ { "url": "https://circleback.ai/api" } ], "components": { "securitySchemes": { "ApiKeyAuth": { "bearerFormat": "cb_", "scheme": "bearer", "type": "http" } } }, "tags": [ { "description": "Read and update action items captured from meetings.", "name": "Action items" } ], "paths": { "/action-item/{actionItemId}": { "put": { "description": "Updates the title, description, status, or assignee of an action item. Returns the updated action item.", "parameters": [ { "description": "The unique identifier of the action item.", "in": "path", "name": "actionItemId", "required": true, "schema": { "exclusiveMinimum": 0, "type": "integer" } } ], "requestBody": { "content": { "application/json": { "schema": { "properties": { "title": { "description": "The title of the action item.", "type": "string" }, "description": { "description": "The detailed description of the action item.", "type": "string" }, "assigneeProfileId": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "null" } ], "description": "The ID of the profile to assign the action item to, or null to remove the assignee." }, "status": { "description": "The completion status of the action item.", "enum": [ "PENDING", "DONE" ], "type": "string" } }, "type": "object" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": false, "example": { "id": 252, "title": "Contact event venues", "description": "Reach out to Sunriver Events and other potential event venues to see if they would be open to hosting the event this summer.", "meetingId": "WRweb12iCBimU6Vo8cD7z", "status": "PENDING" }, "properties": { "id": { "description": "The unique identifier of the action item.", "exclusiveMinimum": 0, "type": "number" }, "title": { "description": "The title of the action item.", "type": "string" }, "description": { "description": "The detailed description of the action item.", "type": "string" }, "completedAt": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "The time the action item was marked as done, or null if it is not completed." }, "meetingId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The ID of the associated meeting, or null if none exists." }, "status": { "description": "The completion status of the action item.", "enum": [ "PENDING", "DONE" ], "type": "string" } }, "required": [ "id", "completedAt", "title", "description", "status", "meetingId" ], "type": "object" } } }, "description": "Successful response." }, "400": { "content": { "application/json": { "schema": { "additionalProperties": false, "properties": { "code": { "description": "A machine-readable code identifying the type of failure.", "type": "string" }, "error": { "description": "A human-readable message explaining why the request failed.", "type": "string" }, "issues": { "description": "The field-level validation issues found in an invalid request.", "items": { "additionalProperties": false, "properties": { "message": { "description": "A human-readable explanation of the validation failure.", "type": "string" }, "path": { "description": "The location of the request field that failed validation.", "type": "string" } }, "required": [ "path", "message" ], "type": "object" }, "type": "array" } }, "required": [ "error" ], "type": "object" } } }, "description": "The request failed validation." } }, "security": [ { "ApiKeyAuth": [] } ], "summary": "Update action item", "tags": [ "Action items" ] } } } } ``` # List action items (/docs/api/action-items/list-action-items) ## OpenAPI ```json { "info": { "description": "The Circleback public REST API provides programmatic access to your meetings, notes, action items, transcripts, and more. Authenticate every request by sending your API key as a bearer token.", "title": "Circleback Public API", "version": "1.0.0" }, "openapi": "3.2.0", "servers": [ { "url": "https://circleback.ai/api" } ], "components": { "securitySchemes": { "ApiKeyAuth": { "bearerFormat": "cb_", "scheme": "bearer", "type": "http" } } }, "tags": [ { "description": "Read and update action items captured from meetings.", "name": "Action items" } ], "paths": { "/action-items": { "get": { "description": "Returns a page of action items across the authenticated user's meetings, filtered by assignee, status, tags, and attendees.", "parameters": [ { "description": "The assignee scope to filter by. Defaults to Me.", "in": "query", "name": "assigneeType", "required": false, "schema": { "default": "Me", "enum": [ "Me", "NotMe", "Profile", "MyWorkspace", "OutsideMyWorkspace", "Unassigned", "Anyone" ], "type": "string" } }, { "description": "Profile ID of the assignee to filter by.", "in": "query", "name": "assigneeProfileId", "required": false, "schema": { "exclusiveMinimum": 0, "type": "integer" } }, { "description": "Team ID of the assignee to filter by.", "in": "query", "name": "assigneeTeamId", "required": false, "schema": { "exclusiveMinimum": 0, "type": "integer" } }, { "description": "Completion status to filter by. Defaults to incomplete action items.", "in": "query", "name": "status", "required": false, "schema": { "type": "string" } }, { "description": "Profile IDs of meeting attendees to filter by.", "in": "query", "name": "attendeeProfileIds", "required": false, "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Cursor for the next page. Omit for the first page (RFC 8288).", "in": "query", "name": "cursor", "required": false, "schema": { "type": "string" } }, { "description": "Tag IDs to filter by.", "in": "query", "name": "tagIds", "required": false, "schema": { "items": { "type": "string" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "description": "The action items that match the query.", "example": [ { "id": 252, "title": "Contact event venues", "description": "Reach out to Sunriver Events and other potential event venues to see if they would be open to hosting the event this summer.", "assignee": { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com" }, "meetingId": "WRweb12iCBimU6Vo8cD7z", "status": "PENDING" }, { "id": 253, "title": "Review and finalize venue options", "description": "Review pricing and availability of venues and pick a venue for the event.", "assignee": null, "meetingId": "WRweb12iCBimU6Vo8cD7z", "status": "PENDING" } ], "items": { "additionalProperties": false, "properties": { "id": { "description": "The unique identifier of the action item.", "exclusiveMinimum": 0, "type": "number" }, "title": { "description": "The title of the action item.", "type": "string" }, "description": { "description": "The detailed description of the action item.", "type": "string" }, "assignee": { "description": "Action item assignee, or null if unassigned.", "anyOf": [ { "additionalProperties": false, "properties": { "profileId": { "description": "The unique identifier of the person's profile.", "exclusiveMinimum": 0, "type": "number" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's full name." }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's job title." }, "companyName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The name of the company the person belongs to." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's email address." } }, "required": [ "profileId", "name", "email", "title", "companyName" ], "type": "object" }, { "type": "null" } ], "example": { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com" } }, "completedAt": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "The time the action item was marked as done, or null if it is not completed." }, "meetingId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The ID of the meeting the action item belongs to." }, "status": { "description": "The completion status of the action item.", "enum": [ "PENDING", "DONE" ], "type": "string" } }, "required": [ "id", "completedAt", "title", "description", "status", "meetingId", "assignee" ], "type": "object" }, "type": "array" } } }, "description": "Successful response." }, "400": { "content": { "application/json": { "schema": { "additionalProperties": false, "properties": { "code": { "description": "A machine-readable code identifying the type of failure.", "type": "string" }, "error": { "description": "A human-readable message explaining why the request failed.", "type": "string" }, "issues": { "description": "The field-level validation issues found in an invalid request.", "items": { "additionalProperties": false, "properties": { "message": { "description": "A human-readable explanation of the validation failure.", "type": "string" }, "path": { "description": "The location of the request field that failed validation.", "type": "string" } }, "required": [ "path", "message" ], "type": "object" }, "type": "array" } }, "required": [ "error" ], "type": "object" } } }, "description": "The request failed validation." } }, "security": [ { "ApiKeyAuth": [] } ], "summary": "List action items", "tags": [ "Action items" ] } } } } ``` # List calendar events (/docs/api/calendar/list-calendar-events) ## OpenAPI ```json { "info": { "description": "The Circleback public REST API provides programmatic access to your meetings, notes, action items, transcripts, and more. Authenticate every request by sending your API key as a bearer token.", "title": "Circleback Public API", "version": "1.0.0" }, "openapi": "3.2.0", "servers": [ { "url": "https://circleback.ai/api" } ], "components": { "securitySchemes": { "ApiKeyAuth": { "bearerFormat": "cb_", "scheme": "bearer", "type": "http" } } }, "tags": [ { "description": "View upcoming calendar events and control whether Circleback joins them.", "name": "Calendar" } ], "paths": { "/calendar/events": { "get": { "description": "Returns upcoming calendar events from the authenticated user's connected calendars, with pagination and a configurable time window.", "parameters": [ { "description": "Set to true to include calendar meetings that have no meeting link and only one attendee.", "in": "query", "name": "includeOfflineSingleAttendee", "required": false, "schema": { "type": "boolean" } }, { "description": "How many hours in the past to include calendar meetings from, based on their start time.", "in": "query", "name": "startTimeLookbackHours", "required": false, "schema": { "type": "number" } }, { "description": "How many hours in the future to include calendar meetings from, based on their start time.", "in": "query", "name": "startTimeLookaheadHours", "required": false, "schema": { "type": "number" } }, { "description": "The direction calendar meetings are sorted in by start time. Defaults to ascending.", "in": "query", "name": "sortDirection", "required": false, "schema": { "enum": [ "ascending", "descending" ], "type": "string" } }, { "description": "Cursor for the next page. Omit for the first page (RFC 8288).", "in": "query", "name": "cursor", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "additionalProperties": false, "example": { "id": "google-calendar-event-id", "title": "Event Venue Review", "icalUid": "event-venue-review@google.com", "attendees": [ { "name": "John Appleseed", "email": "john@initech.com", "isOrganizer": true, "status": "accepted" }, { "name": "Samantha Grey", "email": "samantha@initech.com", "isOrganizer": false, "status": "accepted" } ], "calendarDescription": "Quarterly venue review", "calendarPlatform": "google_calendar", "endTime": "2023-07-25T20:30:00.000Z", "isExternal": false, "isHostedByMe": true, "location": "Google Meet", "meetingId": "WRweb12iCBimU6Vo8cD7z", "meetingPlatform": "google_meet", "organizerEmail": "john@initech.com", "overrideShouldRecord": false, "platform": "google_meet", "startTime": "2023-07-25T20:00:00.000Z", "willRecord": true, "willRecordReason": "External attendees" }, "properties": { "id": { "description": "The unique identifier of the calendar meeting.", "type": "string" }, "title": { "description": "The title of the calendar meeting.", "type": "string" }, "icalUid": { "description": "The iCalendar UID of the calendar event.", "type": "string" }, "attendees": { "description": "The attendees invited to the calendar meeting.", "items": { "additionalProperties": false, "properties": { "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The name of the attendee." }, "email": { "description": "The email address of the attendee.", "type": "string" }, "isOrganizer": { "description": "Whether the attendee organized the calendar meeting.", "type": "boolean" }, "status": { "description": "The attendee's response to the calendar meeting invitation.", "enum": [ "accepted", "declined", "tentative", "not_available" ], "type": "string" } }, "type": "object" }, "type": "array" }, "calendarDescription": { "description": "The description of the calendar event.", "type": "string" }, "calendarPlatform": { "description": "The calendar platform the meeting was synced from.", "type": "string" }, "endTime": { "description": "When the calendar meeting ends, as an ISO 8601 timestamp.", "type": "string" }, "isExternal": { "description": "Whether the meeting includes attendees from more than one email domain.", "type": "boolean" }, "isHostedByMe": { "description": "Whether the current user organized the calendar meeting.", "type": "boolean" }, "location": { "description": "The location of the calendar meeting.", "type": "string" }, "meetingId": { "description": "The Circleback meeting associated with the calendar meeting, when one exists.", "type": "string" }, "meetingPlatform": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The conferencing platform hosting the meeting, when detected." }, "organizerEmail": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The email address of the meeting organizer." }, "overrideShouldRecord": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "description": "Whether the user manually overrode the automatic recording decision, or null when no override is set." }, "platform": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The conferencing platform hosting the meeting, when detected. Alias of meetingPlatform." }, "recurringEventId": { "description": "The identifier of the recurring event series the meeting belongs to.", "type": "string" }, "startTime": { "description": "When the calendar meeting starts, as an ISO 8601 timestamp.", "type": "string" }, "willRecord": { "description": "Whether the notetaker will join and record the meeting.", "type": "boolean" }, "willRecordReason": { "description": "A human-readable explanation of why the meeting will or will not be recorded.", "type": "string" } }, "required": [ "id", "overrideShouldRecord", "title", "willRecord", "willRecordReason", "startTime", "endTime", "platform", "meetingPlatform", "calendarPlatform", "isExternal", "isHostedByMe", "organizerEmail", "attendees", "icalUid" ], "type": "object" }, "type": "array" } } }, "description": "Successful response." }, "400": { "content": { "application/json": { "schema": { "additionalProperties": false, "properties": { "code": { "description": "A machine-readable code identifying the type of failure.", "type": "string" }, "error": { "description": "A human-readable message explaining why the request failed.", "type": "string" }, "issues": { "description": "The field-level validation issues found in an invalid request.", "items": { "additionalProperties": false, "properties": { "message": { "description": "A human-readable explanation of the validation failure.", "type": "string" }, "path": { "description": "The location of the request field that failed validation.", "type": "string" } }, "required": [ "path", "message" ], "type": "object" }, "type": "array" } }, "required": [ "error" ], "type": "object" } } }, "description": "The request failed validation." } }, "security": [ { "ApiKeyAuth": [] } ], "summary": "List calendar events", "tags": [ "Calendar" ] } } } } ``` # List companies (/docs/api/companies/list-companies) ## OpenAPI ```json { "info": { "description": "The Circleback public REST API provides programmatic access to your meetings, notes, action items, transcripts, and more. Authenticate every request by sending your API key as a bearer token.", "title": "Circleback Public API", "version": "1.0.0" }, "openapi": "3.2.0", "servers": [ { "url": "https://circleback.ai/api" } ], "components": { "securitySchemes": { "ApiKeyAuth": { "bearerFormat": "cb_", "scheme": "bearer", "type": "http" } } }, "tags": [ { "description": "Look up the companies associated with your meetings.", "name": "Companies" } ], "paths": { "/companies": { "get": { "description": "Returns the companies whose people attend the authenticated user's meetings, with optional tag filters.", "parameters": [ { "description": "Cursor for the next page. Omit for the first page (RFC 8288).", "in": "query", "name": "cursor", "required": false, "schema": { "type": "string" } }, { "description": "Filter companies to those with meetings that have these tag IDs.", "in": "query", "name": "tagIds", "required": false, "schema": { "items": { "exclusiveMinimum": 0, "type": "integer" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "additionalProperties": false, "example": { "name": "Initech", "avatarUrl": "https://logo.clearbit.com/initech.com", "domain": "initech.com" }, "properties": { "id": { "description": "The unique identifier of the company.", "exclusiveMinimum": 0, "type": "number" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The company's name." }, "avatarUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The URL of the company's logo image." }, "domain": { "description": "The company's website domain.", "type": "string" } }, "required": [ "domain" ], "type": "object" }, "type": "array" } } }, "description": "Successful response." }, "400": { "content": { "application/json": { "schema": { "additionalProperties": false, "properties": { "code": { "description": "A machine-readable code identifying the type of failure.", "type": "string" }, "error": { "description": "A human-readable message explaining why the request failed.", "type": "string" }, "issues": { "description": "The field-level validation issues found in an invalid request.", "items": { "additionalProperties": false, "properties": { "message": { "description": "A human-readable explanation of the validation failure.", "type": "string" }, "path": { "description": "The location of the request field that failed validation.", "type": "string" } }, "required": [ "path", "message" ], "type": "object" }, "type": "array" } }, "required": [ "error" ], "type": "object" } } }, "description": "The request failed validation." } }, "security": [ { "ApiKeyAuth": [] } ], "summary": "List companies", "tags": [ "Companies" ] } } } } ``` # Get company (/docs/api/companies/get-company) ## OpenAPI ```json { "info": { "description": "The Circleback public REST API provides programmatic access to your meetings, notes, action items, transcripts, and more. Authenticate every request by sending your API key as a bearer token.", "title": "Circleback Public API", "version": "1.0.0" }, "openapi": "3.2.0", "servers": [ { "url": "https://circleback.ai/api" } ], "components": { "securitySchemes": { "ApiKeyAuth": { "bearerFormat": "cb_", "scheme": "bearer", "type": "http" } } }, "tags": [ { "description": "Look up the companies associated with your meetings.", "name": "Companies" } ], "paths": { "/company/{domain}": { "get": { "description": "Returns a company by its domain, including its people and external links.", "parameters": [ { "description": "The domain of the company to fetch.", "in": "path", "name": "domain", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": false, "example": { "name": "Initech", "avatarUrl": "https://logo.clearbit.com/initech.com", "domain": "initech.com", "externalLinks": [ { "url": "https://initech.com", "objectType": "company", "type": "website" } ], "people": [ { "id": 1, "title": "Head of Operations", "companyId": 3, "companyName": "Initech", "email": "john@initech.com", "firstName": "John", "lastName": "Appleseed" }, { "id": 2, "title": "Office Manager", "companyId": 3, "companyName": "Initech", "email": "samantha@initech.com", "firstName": "Samantha", "lastName": "Grey" } ] }, "properties": { "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The company's name." }, "avatarUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The URL of the company's logo image." }, "domain": { "description": "The company's website domain.", "type": "string" }, "externalLinks": { "description": "Links to the company on external platforms and connected integrations.", "items": { "additionalProperties": false, "properties": { "url": { "description": "The URL of the external resource.", "type": "string" }, "objectType": { "description": "Whether the link refers to a person or a company.", "enum": [ "person", "company" ], "type": "string" }, "type": { "description": "The platform or integration the link points to.", "enum": [ "Attio", "HubSpot", "Linear", "Salesforce", "Zoho", "linkedin", "facebook", "instagram", "twitter", "website" ], "type": "string" } }, "required": [ "type", "objectType", "url" ], "type": "object" }, "type": "array" }, "people": { "description": "People at the company you have met with.", "items": { "additionalProperties": false, "example": { "id": 1, "title": "Head of Operations", "companyId": 3, "companyName": "Initech", "email": "john@initech.com", "firstName": "John", "lastName": "Appleseed" }, "properties": { "id": { "description": "The unique identifier of the person.", "exclusiveMinimum": 0, "type": "number" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's job title." }, "companyId": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "null" } ], "description": "The unique identifier of the company the person belongs to." }, "companyName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The name of the company the person belongs to." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's email address." }, "firstName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's first name." }, "lastName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's last name." } }, "required": [ "id", "email", "firstName", "lastName", "title", "companyName", "companyId" ], "type": "object" }, "type": "array" } }, "required": [ "domain", "people", "externalLinks" ], "type": "object" } } }, "description": "Successful response." }, "400": { "content": { "application/json": { "schema": { "additionalProperties": false, "properties": { "code": { "description": "A machine-readable code identifying the type of failure.", "type": "string" }, "error": { "description": "A human-readable message explaining why the request failed.", "type": "string" }, "issues": { "description": "The field-level validation issues found in an invalid request.", "items": { "additionalProperties": false, "properties": { "message": { "description": "A human-readable explanation of the validation failure.", "type": "string" }, "path": { "description": "The location of the request field that failed validation.", "type": "string" } }, "required": [ "path", "message" ], "type": "object" }, "type": "array" } }, "required": [ "error" ], "type": "object" } } }, "description": "The request failed validation." } }, "security": [ { "ApiKeyAuth": [] } ], "summary": "Get company", "tags": [ "Companies" ] } } } } ``` # Get meeting (/docs/api/meetings/get-meeting) ## OpenAPI ```json { "info": { "description": "The Circleback public REST API provides programmatic access to your meetings, notes, action items, transcripts, and more. Authenticate every request by sending your API key as a bearer token.", "title": "Circleback Public API", "version": "1.0.0" }, "openapi": "3.2.0", "servers": [ { "url": "https://circleback.ai/api" } ], "components": { "securitySchemes": { "ApiKeyAuth": { "bearerFormat": "cb_", "scheme": "bearer", "type": "http" } } }, "tags": [ { "description": "Access meetings along with their notes, transcripts, attendees, recordings, and search.", "name": "Meetings" } ], "paths": { "/meeting/{meetingId}": { "get": { "description": "Returns a meeting by its ID, including the notes, attendees, and recording details the caller has permission to view.", "parameters": [ { "description": "The unique identifier of the meeting.", "in": "path", "name": "meetingId", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": false, "example": { "id": "WRweb12iCBimU6Vo8cD7z", "name": "Event Venue Review", "createdAt": "2023-07-25T20:30:57.926Z", "updatedAt": "2023-07-25T20:30:57.926Z", "duration": 1306.09, "url": "https://meet.google.com/abc-defgh-xyz", "recordingUrl": "https://storage.googleapis.com/circleback-recordings/WRweb12iCBimU6Vo8cD7z.mp4", "tags": [ { "id": 1, "name": "Events", "description": "Company events and offsites." } ], "icalUid": "event-venue-review@google.com", "attendees": [ { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com", "isCalendarEventOrganizer": true, "isCalendarInvitee": true }, { "profileId": 2, "name": "Samantha Grey", "title": "Office Manager", "companyName": "Initech", "email": "samantha@initech.com", "isCalendarEventOrganizer": false, "isCalendarInvitee": true } ], "notes": "#### Overview\n* Several options for event venues were reviewed…", "privateNotes": "Ask Samantha about the Sunriver deposit before Friday.", "actionItems": [ { "id": 252, "title": "Contact event venues", "description": "Reach out to Sunriver Events and other potential event venues to see if they would be open to hosting the event this summer.", "assignee": { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com" }, "status": "PENDING" }, { "id": 253, "title": "Review and finalize venue options", "description": "Review pricing and availability of venues and pick a venue for the event.", "assignee": null, "status": "PENDING" } ], "insights": { "Customer details": [ { "speaker": "John Appleseed", "timestamp": 800, "insight": { "Company name": "Initech", "Number of employees": 120 } } ], "Questions": [ { "insight": "Is this thing on?", "speaker": "Samantha Grey", "timestamp": 49.15 }, { "insight": "When will the webhook integration be ready?", "speaker": "John Appleseed", "timestamp": 120.12 } ] }, "linkAccess": "Viewer", "calendarEvent": { "id": 91, "icalUid": "event-venue-review@google.com", "description": "Quarterly venue review", "platform": "GoogleCalendar", "platformId": "provider-event-id" } }, "properties": { "id": { "description": "Circleback meeting ID. Can be used to generate a link to the meeting (`https://circleback.ai/meetings/${id}`).", "type": "string" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Meeting name." }, "createdAt": { "description": "Meeting creation date, formatted as an ISO 8601 timestamp.", "format": "date-time", "type": "string" }, "updatedAt": { "description": "When the meeting was last updated.", "format": "date-time", "type": "string" }, "duration": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Meeting duration in seconds." }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "URL of the virtual meeting (Zoom, Google Meet, or Microsoft Teams)." }, "recordingUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "URL of the meeting recording file. Only valid for 24 hours, and only available if saving meeting recordings is enabled in settings." }, "tags": { "description": "Tags added to the meeting.", "items": { "additionalProperties": false, "properties": { "id": { "description": "The unique identifier of the tag.", "exclusiveMinimum": 0, "type": "number" }, "name": { "description": "The display name of the tag.", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "A description of the tag." } }, "required": [ "id", "name", "description" ], "type": "object" }, "type": "array" }, "icalUid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Unique identifier of the calendar event associated with the meeting." }, "attendees": { "description": "Meeting attendees.", "items": { "additionalProperties": false, "properties": { "profileId": { "description": "The unique identifier of the person's profile.", "exclusiveMinimum": 0, "type": "number" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Calendar event invitee name if associated with a calendar event, or the name of the meeting participant." }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's job title." }, "companyName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The name of the company the person belongs to." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Calendar event invitee email if associated with a calendar event." }, "isCalendarEventOrganizer": { "description": "Whether the attendee organized the calendar event.", "type": "boolean" }, "isCalendarInvitee": { "description": "Whether the attendee was invited on the calendar event.", "type": "boolean" } }, "required": [ "profileId", "name", "email", "title", "companyName", "isCalendarInvitee", "isCalendarEventOrganizer" ], "type": "object" }, "type": "array" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Circleback meeting notes with Markdown formatting." }, "privateNotes": { "description": "The authenticated user's private notes for the meeting.", "type": "string" }, "actionItems": { "description": "Action items created for the meeting.", "items": { "additionalProperties": false, "properties": { "id": { "description": "Circleback action item ID.", "exclusiveMinimum": 0, "type": "number" }, "title": { "description": "Action item title.", "type": "string" }, "description": { "description": "Action item description.", "type": "string" }, "assignee": { "description": "Action item assignee, or null if unassigned.", "anyOf": [ { "additionalProperties": false, "properties": { "profileId": { "description": "The unique identifier of the person's profile.", "exclusiveMinimum": 0, "type": "number" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's full name." }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's job title." }, "companyName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The name of the company the person belongs to." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's email address." } }, "required": [ "profileId", "name", "email", "title", "companyName" ], "type": "object" }, { "type": "null" } ], "example": { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com" } }, "status": { "description": "Action item status, one of 'PENDING' or 'DONE'.", "enum": [ "PENDING", "DONE" ], "type": "string" } }, "required": [ "id", "title", "description", "status", "assignee" ], "type": "object" }, "type": "array" }, "insights": { "additionalProperties": { "items": { "additionalProperties": false, "properties": { "speaker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Speaker the insight is associated with, if any." }, "timestamp": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Timestamp in seconds the insight is associated with, if any." }, "insight": { "anyOf": [ { "type": "string" }, { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, "propertyNames": { "type": "string" }, "type": "object" } ], "description": "The insight result. A string, or an object when the insight has custom fields." } }, "required": [ "speaker", "timestamp", "insight" ], "type": "object" }, "type": "array" }, "description": "Insight results for the meeting, keyed by the name of the user-created insight.", "propertyNames": { "type": "string" }, "type": "object" }, "linkAccess": { "anyOf": [ { "enum": [ "Editor", "Viewer", "LimitedViewer" ], "type": "string" }, { "type": "null" } ], "description": "Who can access the meeting through its shareable link." }, "calendarEvent": { "anyOf": [ { "additionalProperties": false, "properties": { "id": { "description": "The unique identifier of the calendar event.", "exclusiveMinimum": 0, "type": "number" }, "icalUid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The iCalendar unique identifier of the event." }, "description": { "description": "The description of the calendar event.", "type": "string" }, "platform": { "anyOf": [ { "enum": [ "GoogleCalendar", "MicrosoftOutlook" ], "type": "string" }, { "type": "null" } ], "description": "The calendar platform the event comes from." }, "platformId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The unique identifier of the event on the calendar platform." } }, "required": [ "id", "platform", "platformId", "description", "icalUid" ], "type": "object" }, { "type": "null" } ] } }, "required": [ "id", "linkAccess", "url", "createdAt", "updatedAt", "duration", "name", "notes", "icalUid", "recordingUrl", "tags", "attendees", "actionItems", "insights", "calendarEvent", "privateNotes" ], "type": "object" } } }, "description": "Successful response." }, "400": { "content": { "application/json": { "schema": { "additionalProperties": false, "properties": { "code": { "description": "A machine-readable code identifying the type of failure.", "type": "string" }, "error": { "description": "A human-readable message explaining why the request failed.", "type": "string" }, "issues": { "description": "The field-level validation issues found in an invalid request.", "items": { "additionalProperties": false, "properties": { "message": { "description": "A human-readable explanation of the validation failure.", "type": "string" }, "path": { "description": "The location of the request field that failed validation.", "type": "string" } }, "required": [ "path", "message" ], "type": "object" }, "type": "array" } }, "required": [ "error" ], "type": "object" } } }, "description": "The request failed validation." } }, "security": [ { "ApiKeyAuth": [] }, {} ], "summary": "Get meeting", "tags": [ "Meetings" ] } } } } ``` # Delete meeting (/docs/api/meetings/delete-meeting) ## OpenAPI ```json { "info": { "description": "The Circleback public REST API provides programmatic access to your meetings, notes, action items, transcripts, and more. Authenticate every request by sending your API key as a bearer token.", "title": "Circleback Public API", "version": "1.0.0" }, "openapi": "3.2.0", "servers": [ { "url": "https://circleback.ai/api" } ], "components": { "securitySchemes": { "ApiKeyAuth": { "bearerFormat": "cb_", "scheme": "bearer", "type": "http" } } }, "tags": [ { "description": "Access meetings along with their notes, transcripts, attendees, recordings, and search.", "name": "Meetings" } ], "paths": { "/meeting/{meetingId}": { "delete": { "description": "Deletes a meeting. Only the owner of the meeting can delete it. Returns the deleted meeting.", "parameters": [ { "description": "The unique identifier of the meeting.", "in": "path", "name": "meetingId", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": false, "example": { "id": "WRweb12iCBimU6Vo8cD7z", "name": "Event Venue Review", "createdAt": "2023-07-25T20:30:57.926Z", "updatedAt": "2023-07-25T20:30:57.926Z", "duration": 1306.09, "url": "https://meet.google.com/abc-defgh-xyz", "recordingUrl": "https://storage.googleapis.com/circleback-recordings/WRweb12iCBimU6Vo8cD7z.mp4", "tags": [ { "id": 1, "name": "Events", "description": "Company events and offsites." } ], "icalUid": "event-venue-review@google.com", "attendees": [ { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com", "isCalendarEventOrganizer": true, "isCalendarInvitee": true }, { "profileId": 2, "name": "Samantha Grey", "title": "Office Manager", "companyName": "Initech", "email": "samantha@initech.com", "isCalendarEventOrganizer": false, "isCalendarInvitee": true } ], "notes": "#### Overview\n* Several options for event venues were reviewed…", "privateNotes": "Ask Samantha about the Sunriver deposit before Friday.", "actionItems": [ { "id": 252, "title": "Contact event venues", "description": "Reach out to Sunriver Events and other potential event venues to see if they would be open to hosting the event this summer.", "assignee": { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com" }, "status": "PENDING" }, { "id": 253, "title": "Review and finalize venue options", "description": "Review pricing and availability of venues and pick a venue for the event.", "assignee": null, "status": "PENDING" } ], "insights": { "Customer details": [ { "speaker": "John Appleseed", "timestamp": 800, "insight": { "Company name": "Initech", "Number of employees": 120 } } ], "Questions": [ { "insight": "Is this thing on?", "speaker": "Samantha Grey", "timestamp": 49.15 }, { "insight": "When will the webhook integration be ready?", "speaker": "John Appleseed", "timestamp": 120.12 } ] }, "linkAccess": "Viewer", "calendarEvent": { "id": 91, "icalUid": "event-venue-review@google.com", "description": "Quarterly venue review", "platform": "GoogleCalendar", "platformId": "provider-event-id" } }, "properties": { "id": { "description": "Circleback meeting ID. Can be used to generate a link to the meeting (`https://circleback.ai/meetings/${id}`).", "type": "string" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Meeting name." }, "createdAt": { "description": "Meeting creation date, formatted as an ISO 8601 timestamp.", "format": "date-time", "type": "string" }, "updatedAt": { "description": "When the meeting was last updated.", "format": "date-time", "type": "string" }, "duration": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Meeting duration in seconds." }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "URL of the virtual meeting (Zoom, Google Meet, or Microsoft Teams)." }, "recordingUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "URL of the meeting recording file. Only valid for 24 hours, and only available if saving meeting recordings is enabled in settings." }, "tags": { "description": "Tags added to the meeting.", "items": { "additionalProperties": false, "properties": { "id": { "description": "The unique identifier of the tag.", "exclusiveMinimum": 0, "type": "number" }, "name": { "description": "The display name of the tag.", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "A description of the tag." } }, "required": [ "id", "name", "description" ], "type": "object" }, "type": "array" }, "icalUid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Unique identifier of the calendar event associated with the meeting." }, "attendees": { "description": "Meeting attendees.", "items": { "additionalProperties": false, "properties": { "profileId": { "description": "The unique identifier of the person's profile.", "exclusiveMinimum": 0, "type": "number" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Calendar event invitee name if associated with a calendar event, or the name of the meeting participant." }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's job title." }, "companyName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The name of the company the person belongs to." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Calendar event invitee email if associated with a calendar event." }, "isCalendarEventOrganizer": { "description": "Whether the attendee organized the calendar event.", "type": "boolean" }, "isCalendarInvitee": { "description": "Whether the attendee was invited on the calendar event.", "type": "boolean" } }, "required": [ "profileId", "name", "email", "title", "companyName", "isCalendarInvitee", "isCalendarEventOrganizer" ], "type": "object" }, "type": "array" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Circleback meeting notes with Markdown formatting." }, "privateNotes": { "description": "The authenticated user's private notes for the meeting.", "type": "string" }, "actionItems": { "description": "Action items created for the meeting.", "items": { "additionalProperties": false, "properties": { "id": { "description": "Circleback action item ID.", "exclusiveMinimum": 0, "type": "number" }, "title": { "description": "Action item title.", "type": "string" }, "description": { "description": "Action item description.", "type": "string" }, "assignee": { "description": "Action item assignee, or null if unassigned.", "anyOf": [ { "additionalProperties": false, "properties": { "profileId": { "description": "The unique identifier of the person's profile.", "exclusiveMinimum": 0, "type": "number" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's full name." }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's job title." }, "companyName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The name of the company the person belongs to." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's email address." } }, "required": [ "profileId", "name", "email", "title", "companyName" ], "type": "object" }, { "type": "null" } ], "example": { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com" } }, "status": { "description": "Action item status, one of 'PENDING' or 'DONE'.", "enum": [ "PENDING", "DONE" ], "type": "string" } }, "required": [ "id", "title", "description", "status", "assignee" ], "type": "object" }, "type": "array" }, "insights": { "additionalProperties": { "items": { "additionalProperties": false, "properties": { "speaker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Speaker the insight is associated with, if any." }, "timestamp": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Timestamp in seconds the insight is associated with, if any." }, "insight": { "anyOf": [ { "type": "string" }, { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, "propertyNames": { "type": "string" }, "type": "object" } ], "description": "The insight result. A string, or an object when the insight has custom fields." } }, "required": [ "speaker", "timestamp", "insight" ], "type": "object" }, "type": "array" }, "description": "Insight results for the meeting, keyed by the name of the user-created insight.", "propertyNames": { "type": "string" }, "type": "object" }, "linkAccess": { "anyOf": [ { "enum": [ "Editor", "Viewer", "LimitedViewer" ], "type": "string" }, { "type": "null" } ], "description": "Who can access the meeting through its shareable link." }, "calendarEvent": { "anyOf": [ { "additionalProperties": false, "properties": { "id": { "description": "The unique identifier of the calendar event.", "exclusiveMinimum": 0, "type": "number" }, "icalUid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The iCalendar unique identifier of the event." }, "description": { "description": "The description of the calendar event.", "type": "string" }, "platform": { "anyOf": [ { "enum": [ "GoogleCalendar", "MicrosoftOutlook" ], "type": "string" }, { "type": "null" } ], "description": "The calendar platform the event comes from." }, "platformId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The unique identifier of the event on the calendar platform." } }, "required": [ "id", "platform", "platformId", "description", "icalUid" ], "type": "object" }, { "type": "null" } ] } }, "required": [ "id", "linkAccess", "url", "createdAt", "updatedAt", "duration", "name", "notes", "icalUid", "recordingUrl", "tags", "attendees", "actionItems", "insights", "calendarEvent", "privateNotes" ], "type": "object" } } }, "description": "Successful response." }, "400": { "content": { "application/json": { "schema": { "additionalProperties": false, "properties": { "code": { "description": "A machine-readable code identifying the type of failure.", "type": "string" }, "error": { "description": "A human-readable message explaining why the request failed.", "type": "string" }, "issues": { "description": "The field-level validation issues found in an invalid request.", "items": { "additionalProperties": false, "properties": { "message": { "description": "A human-readable explanation of the validation failure.", "type": "string" }, "path": { "description": "The location of the request field that failed validation.", "type": "string" } }, "required": [ "path", "message" ], "type": "object" }, "type": "array" } }, "required": [ "error" ], "type": "object" } } }, "description": "The request failed validation." } }, "security": [ { "ApiKeyAuth": [] } ], "summary": "Delete meeting", "tags": [ "Meetings" ] } } } } ``` # Update meeting (/docs/api/meetings/update-meeting) ## OpenAPI ```json { "info": { "description": "The Circleback public REST API provides programmatic access to your meetings, notes, action items, transcripts, and more. Authenticate every request by sending your API key as a bearer token.", "title": "Circleback Public API", "version": "1.0.0" }, "openapi": "3.2.0", "servers": [ { "url": "https://circleback.ai/api" } ], "components": { "securitySchemes": { "ApiKeyAuth": { "bearerFormat": "cb_", "scheme": "bearer", "type": "http" } } }, "tags": [ { "description": "Access meetings along with their notes, transcripts, attendees, recordings, and search.", "name": "Meetings" } ], "paths": { "/meeting/{meetingId}": { "put": { "description": "Updates a meeting's name, notes, or private notes. Returns only the fields that were updated.", "parameters": [ { "description": "The unique identifier of the meeting.", "in": "path", "name": "meetingId", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "example": { "name": "Event Venue Review", "notes": "#### Overview\n* Several options for event venues were reviewed…", "privateNotes": "Ask Samantha about the Sunriver deposit before Friday." }, "properties": { "name": { "description": "The new name of the meeting.", "type": "string" }, "notes": { "description": "The new notes from the meeting.", "type": "string" }, "privateNotes": { "description": "The authenticated user's private notes for the meeting.", "type": "string" } }, "type": "object" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": false, "properties": { "id": { "description": "Circleback meeting ID. Can be used to generate a link to the meeting (`https://circleback.ai/meetings/${id}`).", "type": "string" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Meeting name." }, "createdAt": { "description": "Meeting creation date, formatted as an ISO 8601 timestamp.", "format": "date-time", "type": "string" }, "updatedAt": { "description": "When the meeting was last updated.", "format": "date-time", "type": "string" }, "duration": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Meeting duration in seconds." }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "URL of the virtual meeting (Zoom, Google Meet, or Microsoft Teams)." }, "recordingUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "URL of the meeting recording file. Only valid for 24 hours, and only available if saving meeting recordings is enabled in settings." }, "tags": { "description": "Tags added to the meeting.", "items": { "additionalProperties": false, "properties": { "id": { "description": "The unique identifier of the tag.", "exclusiveMinimum": 0, "type": "number" }, "name": { "description": "The display name of the tag.", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "A description of the tag." } }, "required": [ "id", "name", "description" ], "type": "object" }, "type": "array" }, "icalUid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Unique identifier of the calendar event associated with the meeting." }, "attendees": { "description": "Meeting attendees.", "items": { "additionalProperties": false, "properties": { "profileId": { "description": "The unique identifier of the person's profile.", "exclusiveMinimum": 0, "type": "number" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Calendar event invitee name if associated with a calendar event, or the name of the meeting participant." }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's job title." }, "companyName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The name of the company the person belongs to." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Calendar event invitee email if associated with a calendar event." }, "isCalendarEventOrganizer": { "description": "Whether the attendee organized the calendar event.", "type": "boolean" }, "isCalendarInvitee": { "description": "Whether the attendee was invited on the calendar event.", "type": "boolean" } }, "required": [ "profileId", "name", "email", "title", "companyName", "isCalendarInvitee", "isCalendarEventOrganizer" ], "type": "object" }, "type": "array" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Circleback meeting notes with Markdown formatting." }, "privateNotes": { "description": "The authenticated user's private notes for the meeting.", "type": "string" }, "actionItems": { "description": "Action items created for the meeting.", "items": { "additionalProperties": false, "properties": { "id": { "description": "Circleback action item ID.", "exclusiveMinimum": 0, "type": "number" }, "title": { "description": "Action item title.", "type": "string" }, "description": { "description": "Action item description.", "type": "string" }, "assignee": { "description": "Action item assignee, or null if unassigned.", "anyOf": [ { "additionalProperties": false, "properties": { "profileId": { "description": "The unique identifier of the person's profile.", "exclusiveMinimum": 0, "type": "number" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's full name." }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's job title." }, "companyName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The name of the company the person belongs to." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's email address." } }, "required": [ "profileId", "name", "email", "title", "companyName" ], "type": "object" }, { "type": "null" } ], "example": { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com" } }, "status": { "description": "Action item status, one of 'PENDING' or 'DONE'.", "enum": [ "PENDING", "DONE" ], "type": "string" } }, "required": [ "id", "title", "description", "status", "assignee" ], "type": "object" }, "type": "array" }, "insights": { "additionalProperties": { "items": { "additionalProperties": false, "properties": { "speaker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Speaker the insight is associated with, if any." }, "timestamp": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Timestamp in seconds the insight is associated with, if any." }, "insight": { "anyOf": [ { "type": "string" }, { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, "propertyNames": { "type": "string" }, "type": "object" } ], "description": "The insight result. A string, or an object when the insight has custom fields." } }, "required": [ "speaker", "timestamp", "insight" ], "type": "object" }, "type": "array" }, "description": "Insight results for the meeting, keyed by the name of the user-created insight.", "propertyNames": { "type": "string" }, "type": "object" }, "linkAccess": { "anyOf": [ { "enum": [ "Editor", "Viewer", "LimitedViewer" ], "type": "string" }, { "type": "null" } ], "description": "Who can access the meeting through its shareable link." }, "calendarEvent": { "anyOf": [ { "additionalProperties": false, "properties": { "id": { "description": "The unique identifier of the calendar event.", "exclusiveMinimum": 0, "type": "number" }, "icalUid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The iCalendar unique identifier of the event." }, "description": { "description": "The description of the calendar event.", "type": "string" }, "platform": { "anyOf": [ { "enum": [ "GoogleCalendar", "MicrosoftOutlook" ], "type": "string" }, { "type": "null" } ], "description": "The calendar platform the event comes from." }, "platformId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The unique identifier of the event on the calendar platform." } }, "required": [ "id", "platform", "platformId", "description", "icalUid" ], "type": "object" }, { "type": "null" } ] } }, "type": "object" } } }, "description": "Successful response." }, "400": { "content": { "application/json": { "schema": { "additionalProperties": false, "properties": { "code": { "description": "A machine-readable code identifying the type of failure.", "type": "string" }, "error": { "description": "A human-readable message explaining why the request failed.", "type": "string" }, "issues": { "description": "The field-level validation issues found in an invalid request.", "items": { "additionalProperties": false, "properties": { "message": { "description": "A human-readable explanation of the validation failure.", "type": "string" }, "path": { "description": "The location of the request field that failed validation.", "type": "string" } }, "required": [ "path", "message" ], "type": "object" }, "type": "array" } }, "required": [ "error" ], "type": "object" } } }, "description": "The request failed validation." } }, "security": [ { "ApiKeyAuth": [] } ], "summary": "Update meeting", "tags": [ "Meetings" ] } } } } ``` # Get meeting transcript (/docs/api/meetings/get-meeting-transcript) ## OpenAPI ```json { "info": { "description": "The Circleback public REST API provides programmatic access to your meetings, notes, action items, transcripts, and more. Authenticate every request by sending your API key as a bearer token.", "title": "Circleback Public API", "version": "1.0.0" }, "openapi": "3.2.0", "servers": [ { "url": "https://circleback.ai/api" } ], "components": { "securitySchemes": { "ApiKeyAuth": { "bearerFormat": "cb_", "scheme": "bearer", "type": "http" } } }, "tags": [ { "description": "Access meetings along with their notes, transcripts, attendees, recordings, and search.", "name": "Meetings" } ], "paths": { "/meeting/{meetingId}/transcript": { "get": { "description": "Returns the full transcript for a meeting.", "parameters": [ { "description": "The unique identifier of the meeting.", "in": "path", "name": "meetingId", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "description": "The segments of the transcript, in chronological order.", "example": [ { "speaker": "John Appleseed", "text": "Hey, how's it going?", "timestamp": 4.56 }, { "speaker": "Samantha Grey", "text": "Going well, just testing the Circleback API.", "timestamp": 18.32 } ], "items": { "additionalProperties": false, "properties": { "speaker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Speaker name." }, "text": { "description": "Words spoken.", "type": "string" }, "timestamp": { "description": "Timestamp in seconds that marks the beginning of the segment.", "type": "number" } }, "required": [ "speaker", "text", "timestamp" ], "type": "object" }, "type": "array" } } }, "description": "Successful response." }, "400": { "content": { "application/json": { "schema": { "additionalProperties": false, "properties": { "code": { "description": "A machine-readable code identifying the type of failure.", "type": "string" }, "error": { "description": "A human-readable message explaining why the request failed.", "type": "string" }, "issues": { "description": "The field-level validation issues found in an invalid request.", "items": { "additionalProperties": false, "properties": { "message": { "description": "A human-readable explanation of the validation failure.", "type": "string" }, "path": { "description": "The location of the request field that failed validation.", "type": "string" } }, "required": [ "path", "message" ], "type": "object" }, "type": "array" } }, "required": [ "error" ], "type": "object" } } }, "description": "The request failed validation." } }, "security": [ { "ApiKeyAuth": [] }, {} ], "summary": "Get meeting transcript", "tags": [ "Meetings" ] } } } } ``` # List meetings (/docs/api/meetings/list-meetings) ## OpenAPI ```json { "info": { "description": "The Circleback public REST API provides programmatic access to your meetings, notes, action items, transcripts, and more. Authenticate every request by sending your API key as a bearer token.", "title": "Circleback Public API", "version": "1.0.0" }, "openapi": "3.2.0", "servers": [ { "url": "https://circleback.ai/api" } ], "components": { "securitySchemes": { "ApiKeyAuth": { "bearerFormat": "cb_", "scheme": "bearer", "type": "http" } } }, "tags": [ { "description": "Access meetings along with their notes, transcripts, attendees, recordings, and search.", "name": "Meetings" } ], "paths": { "/meetings": { "get": { "description": "Returns a page of meetings for the authenticated user, optionally filtered by attendees, tags, ownership, and status.", "parameters": [ { "description": "Whether to return only meetings the user owns or all meetings the user can access.", "in": "query", "name": "ownership", "required": false, "schema": { "default": "Mine", "enum": [ "All", "Mine", "Shared" ], "type": "string" } }, { "description": "Meeting statuses to filter by.", "in": "query", "name": "statuses", "required": false, "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Cursor for the next page. Omit for the first page (RFC 8288).", "in": "query", "name": "cursor", "required": false, "schema": { "type": "string" } }, { "description": "Tag IDs to filter by.", "in": "query", "name": "tagIds", "required": false, "schema": { "items": { "exclusiveMinimum": 0, "type": "integer" }, "type": "array" } }, { "description": "Profile IDs of attendees to filter by.", "in": "query", "name": "attendeeProfileIds", "required": false, "schema": { "items": { "exclusiveMinimum": 0, "type": "integer" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "additionalProperties": false, "example": { "id": "WRweb12iCBimU6Vo8cD7z", "name": "Event Venue Review", "createdAt": "2023-07-25T20:30:57.926Z", "updatedAt": "2023-07-25T20:30:57.926Z", "duration": 1306.09, "url": "https://meet.google.com/abc-defgh-xyz", "recordingUrl": "https://storage.googleapis.com/circleback-recordings/WRweb12iCBimU6Vo8cD7z.mp4", "tags": [ { "id": 1, "name": "Events", "description": "Company events and offsites." } ], "icalUid": "event-venue-review@google.com", "attendees": [ { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com", "isCalendarEventOrganizer": true, "isCalendarInvitee": true }, { "profileId": 2, "name": "Samantha Grey", "title": "Office Manager", "companyName": "Initech", "email": "samantha@initech.com", "isCalendarEventOrganizer": false, "isCalendarInvitee": true } ], "notes": "#### Overview\n* Several options for event venues were reviewed…", "privateNotes": "Ask Samantha about the Sunriver deposit before Friday.", "actionItems": [ { "id": 252, "title": "Contact event venues", "description": "Reach out to Sunriver Events and other potential event venues to see if they would be open to hosting the event this summer.", "assignee": { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com" }, "status": "PENDING" }, { "id": 253, "title": "Review and finalize venue options", "description": "Review pricing and availability of venues and pick a venue for the event.", "assignee": null, "status": "PENDING" } ], "insights": { "Customer details": [ { "speaker": "John Appleseed", "timestamp": 800, "insight": { "Company name": "Initech", "Number of employees": 120 } } ], "Questions": [ { "insight": "Is this thing on?", "speaker": "Samantha Grey", "timestamp": 49.15 }, { "insight": "When will the webhook integration be ready?", "speaker": "John Appleseed", "timestamp": 120.12 } ] }, "linkAccess": "Viewer", "calendarEvent": { "id": 91, "icalUid": "event-venue-review@google.com", "description": "Quarterly venue review", "platform": "GoogleCalendar", "platformId": "provider-event-id" } }, "properties": { "id": { "description": "Circleback meeting ID. Can be used to generate a link to the meeting (`https://circleback.ai/meetings/${id}`).", "type": "string" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Meeting name." }, "createdAt": { "description": "Meeting creation date, formatted as an ISO 8601 timestamp.", "format": "date-time", "type": "string" }, "updatedAt": { "description": "When the meeting was last updated.", "format": "date-time", "type": "string" }, "duration": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Meeting duration in seconds." }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "URL of the virtual meeting (Zoom, Google Meet, or Microsoft Teams)." }, "recordingUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "URL of the meeting recording file. Only valid for 24 hours, and only available if saving meeting recordings is enabled in settings." }, "tags": { "description": "Tags added to the meeting.", "items": { "additionalProperties": false, "properties": { "id": { "description": "The unique identifier of the tag.", "exclusiveMinimum": 0, "type": "number" }, "name": { "description": "The display name of the tag.", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "A description of the tag." } }, "required": [ "id", "name", "description" ], "type": "object" }, "type": "array" }, "icalUid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Unique identifier of the calendar event associated with the meeting." }, "attendees": { "description": "Meeting attendees.", "items": { "additionalProperties": false, "properties": { "profileId": { "description": "The unique identifier of the person's profile.", "exclusiveMinimum": 0, "type": "number" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Calendar event invitee name if associated with a calendar event, or the name of the meeting participant." }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's job title." }, "companyName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The name of the company the person belongs to." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Calendar event invitee email if associated with a calendar event." }, "isCalendarEventOrganizer": { "description": "Whether the attendee organized the calendar event.", "type": "boolean" }, "isCalendarInvitee": { "description": "Whether the attendee was invited on the calendar event.", "type": "boolean" } }, "required": [ "profileId", "name", "email", "title", "companyName", "isCalendarInvitee", "isCalendarEventOrganizer" ], "type": "object" }, "type": "array" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Circleback meeting notes with Markdown formatting." }, "privateNotes": { "description": "The authenticated user's private notes for the meeting.", "type": "string" }, "actionItems": { "description": "Action items created for the meeting.", "items": { "additionalProperties": false, "properties": { "id": { "description": "Circleback action item ID.", "exclusiveMinimum": 0, "type": "number" }, "title": { "description": "Action item title.", "type": "string" }, "description": { "description": "Action item description.", "type": "string" }, "assignee": { "description": "Action item assignee, or null if unassigned.", "anyOf": [ { "additionalProperties": false, "properties": { "profileId": { "description": "The unique identifier of the person's profile.", "exclusiveMinimum": 0, "type": "number" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's full name." }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's job title." }, "companyName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The name of the company the person belongs to." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's email address." } }, "required": [ "profileId", "name", "email", "title", "companyName" ], "type": "object" }, { "type": "null" } ], "example": { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com" } }, "status": { "description": "Action item status, one of 'PENDING' or 'DONE'.", "enum": [ "PENDING", "DONE" ], "type": "string" } }, "required": [ "id", "title", "description", "status", "assignee" ], "type": "object" }, "type": "array" }, "insights": { "additionalProperties": { "items": { "additionalProperties": false, "properties": { "speaker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Speaker the insight is associated with, if any." }, "timestamp": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Timestamp in seconds the insight is associated with, if any." }, "insight": { "anyOf": [ { "type": "string" }, { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, "propertyNames": { "type": "string" }, "type": "object" } ], "description": "The insight result. A string, or an object when the insight has custom fields." } }, "required": [ "speaker", "timestamp", "insight" ], "type": "object" }, "type": "array" }, "description": "Insight results for the meeting, keyed by the name of the user-created insight.", "propertyNames": { "type": "string" }, "type": "object" }, "linkAccess": { "anyOf": [ { "enum": [ "Editor", "Viewer", "LimitedViewer" ], "type": "string" }, { "type": "null" } ], "description": "Who can access the meeting through its shareable link." }, "calendarEvent": { "anyOf": [ { "additionalProperties": false, "properties": { "id": { "description": "The unique identifier of the calendar event.", "exclusiveMinimum": 0, "type": "number" }, "icalUid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The iCalendar unique identifier of the event." }, "description": { "description": "The description of the calendar event.", "type": "string" }, "platform": { "anyOf": [ { "enum": [ "GoogleCalendar", "MicrosoftOutlook" ], "type": "string" }, { "type": "null" } ], "description": "The calendar platform the event comes from." }, "platformId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The unique identifier of the event on the calendar platform." } }, "required": [ "id", "platform", "platformId", "description", "icalUid" ], "type": "object" }, { "type": "null" } ] } }, "required": [ "id", "linkAccess", "url", "createdAt", "updatedAt", "duration", "name", "notes", "icalUid", "recordingUrl", "tags", "attendees", "actionItems", "insights", "calendarEvent", "privateNotes" ], "type": "object" }, "type": "array" } } }, "description": "Successful response." }, "400": { "content": { "application/json": { "schema": { "additionalProperties": false, "properties": { "code": { "description": "A machine-readable code identifying the type of failure.", "type": "string" }, "error": { "description": "A human-readable message explaining why the request failed.", "type": "string" }, "issues": { "description": "The field-level validation issues found in an invalid request.", "items": { "additionalProperties": false, "properties": { "message": { "description": "A human-readable explanation of the validation failure.", "type": "string" }, "path": { "description": "The location of the request field that failed validation.", "type": "string" } }, "required": [ "path", "message" ], "type": "object" }, "type": "array" } }, "required": [ "error" ], "type": "object" } } }, "description": "The request failed validation." } }, "security": [ { "ApiKeyAuth": [] } ], "summary": "List meetings", "tags": [ "Meetings" ] } } } } ``` # Search meetings (/docs/api/meetings/search-meetings) ## OpenAPI ```json { "info": { "description": "The Circleback public REST API provides programmatic access to your meetings, notes, action items, transcripts, and more. Authenticate every request by sending your API key as a bearer token.", "title": "Circleback Public API", "version": "1.0.0" }, "openapi": "3.2.0", "servers": [ { "url": "https://circleback.ai/api" } ], "components": { "securitySchemes": { "ApiKeyAuth": { "bearerFormat": "cb_", "scheme": "bearer", "type": "http" } } }, "tags": [ { "description": "Access meetings along with their notes, transcripts, attendees, recordings, and search.", "name": "Meetings" } ], "paths": { "/search": { "get": { "description": "Searches the authenticated user's meetings by name and content, with optional filters for specific meetings, tags, and people.", "parameters": [ { "description": "The text to search for across meeting names and content.", "in": "query", "name": "searchTerm", "required": false, "schema": { "type": "string" } }, { "description": "Restrict the search to the meetings with these IDs.", "in": "query", "name": "meetingIds", "required": false, "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "Restrict the search to meetings with these tag IDs.", "in": "query", "name": "tagIds", "required": false, "schema": { "items": { "exclusiveMinimum": 0, "type": "integer" }, "type": "array" } }, { "description": "Cursor for the next page. Omit for the first page (RFC 8288).", "in": "query", "name": "cursor", "required": false, "schema": { "type": "string" } }, { "description": "Restrict the search to meetings attended by the people with these profile IDs.", "in": "query", "name": "attendeeProfileIds", "required": false, "schema": { "items": { "exclusiveMinimum": 0, "type": "integer" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "description": "The meetings that match the search query.", "example": [ { "id": "WRweb12iCBimU6Vo8cD7z", "name": "Event Venue Review", "createdAt": "2023-07-25T20:30:57.926Z", "updatedAt": "2023-07-25T20:30:57.926Z", "duration": 1306.09, "url": "https://meet.google.com/abc-defgh-xyz", "recordingUrl": "https://storage.googleapis.com/circleback-recordings/WRweb12iCBimU6Vo8cD7z.mp4", "tags": [ { "id": 1, "name": "Events", "description": "Company events and offsites." } ], "icalUid": "event-venue-review@google.com", "attendees": [ { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com", "isCalendarEventOrganizer": true, "isCalendarInvitee": true }, { "profileId": 2, "name": "Samantha Grey", "title": "Office Manager", "companyName": "Initech", "email": "samantha@initech.com", "isCalendarEventOrganizer": false, "isCalendarInvitee": true } ], "notes": "#### Overview\n* Several options for event venues were reviewed…", "privateNotes": "Ask Samantha about the Sunriver deposit before Friday.", "actionItems": [ { "id": 252, "title": "Contact event venues", "description": "Reach out to Sunriver Events and other potential event venues to see if they would be open to hosting the event this summer.", "assignee": { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com" }, "status": "PENDING" }, { "id": 253, "title": "Review and finalize venue options", "description": "Review pricing and availability of venues and pick a venue for the event.", "assignee": null, "status": "PENDING" } ], "insights": { "Customer details": [ { "speaker": "John Appleseed", "timestamp": 800, "insight": { "Company name": "Initech", "Number of employees": 120 } } ], "Questions": [ { "insight": "Is this thing on?", "speaker": "Samantha Grey", "timestamp": 49.15 }, { "insight": "When will the webhook integration be ready?", "speaker": "John Appleseed", "timestamp": 120.12 } ] }, "linkAccess": "Viewer", "calendarEvent": { "id": 91, "icalUid": "event-venue-review@google.com", "description": "Quarterly venue review", "platform": "GoogleCalendar", "platformId": "provider-event-id" } } ], "items": { "additionalProperties": false, "example": { "id": "WRweb12iCBimU6Vo8cD7z", "name": "Event Venue Review", "createdAt": "2023-07-25T20:30:57.926Z", "updatedAt": "2023-07-25T20:30:57.926Z", "duration": 1306.09, "url": "https://meet.google.com/abc-defgh-xyz", "recordingUrl": "https://storage.googleapis.com/circleback-recordings/WRweb12iCBimU6Vo8cD7z.mp4", "tags": [ { "id": 1, "name": "Events", "description": "Company events and offsites." } ], "icalUid": "event-venue-review@google.com", "attendees": [ { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com", "isCalendarEventOrganizer": true, "isCalendarInvitee": true }, { "profileId": 2, "name": "Samantha Grey", "title": "Office Manager", "companyName": "Initech", "email": "samantha@initech.com", "isCalendarEventOrganizer": false, "isCalendarInvitee": true } ], "notes": "#### Overview\n* Several options for event venues were reviewed…", "privateNotes": "Ask Samantha about the Sunriver deposit before Friday.", "actionItems": [ { "id": 252, "title": "Contact event venues", "description": "Reach out to Sunriver Events and other potential event venues to see if they would be open to hosting the event this summer.", "assignee": { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com" }, "status": "PENDING" }, { "id": 253, "title": "Review and finalize venue options", "description": "Review pricing and availability of venues and pick a venue for the event.", "assignee": null, "status": "PENDING" } ], "insights": { "Customer details": [ { "speaker": "John Appleseed", "timestamp": 800, "insight": { "Company name": "Initech", "Number of employees": 120 } } ], "Questions": [ { "insight": "Is this thing on?", "speaker": "Samantha Grey", "timestamp": 49.15 }, { "insight": "When will the webhook integration be ready?", "speaker": "John Appleseed", "timestamp": 120.12 } ] }, "linkAccess": "Viewer", "calendarEvent": { "id": 91, "icalUid": "event-venue-review@google.com", "description": "Quarterly venue review", "platform": "GoogleCalendar", "platformId": "provider-event-id" } }, "properties": { "id": { "description": "Circleback meeting ID. Can be used to generate a link to the meeting (`https://circleback.ai/meetings/${id}`).", "type": "string" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Meeting name." }, "createdAt": { "description": "Meeting creation date, formatted as an ISO 8601 timestamp.", "format": "date-time", "type": "string" }, "updatedAt": { "description": "When the meeting was last updated.", "format": "date-time", "type": "string" }, "duration": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Meeting duration in seconds." }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "URL of the virtual meeting (Zoom, Google Meet, or Microsoft Teams)." }, "recordingUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "URL of the meeting recording file. Only valid for 24 hours, and only available if saving meeting recordings is enabled in settings." }, "tags": { "description": "Tags added to the meeting.", "items": { "additionalProperties": false, "properties": { "id": { "description": "The unique identifier of the tag.", "exclusiveMinimum": 0, "type": "number" }, "name": { "description": "The display name of the tag.", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "A description of the tag." } }, "required": [ "id", "name", "description" ], "type": "object" }, "type": "array" }, "icalUid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Unique identifier of the calendar event associated with the meeting." }, "attendees": { "description": "Meeting attendees.", "items": { "additionalProperties": false, "properties": { "profileId": { "description": "The unique identifier of the person's profile.", "exclusiveMinimum": 0, "type": "number" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Calendar event invitee name if associated with a calendar event, or the name of the meeting participant." }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's job title." }, "companyName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The name of the company the person belongs to." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Calendar event invitee email if associated with a calendar event." }, "isCalendarEventOrganizer": { "description": "Whether the attendee organized the calendar event.", "type": "boolean" }, "isCalendarInvitee": { "description": "Whether the attendee was invited on the calendar event.", "type": "boolean" } }, "required": [ "profileId", "name", "email", "title", "companyName", "isCalendarInvitee", "isCalendarEventOrganizer" ], "type": "object" }, "type": "array" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Circleback meeting notes with Markdown formatting." }, "privateNotes": { "description": "The authenticated user's private notes for the meeting.", "type": "string" }, "actionItems": { "description": "Action items created for the meeting.", "items": { "additionalProperties": false, "properties": { "id": { "description": "Circleback action item ID.", "exclusiveMinimum": 0, "type": "number" }, "title": { "description": "Action item title.", "type": "string" }, "description": { "description": "Action item description.", "type": "string" }, "assignee": { "description": "Action item assignee, or null if unassigned.", "anyOf": [ { "additionalProperties": false, "properties": { "profileId": { "description": "The unique identifier of the person's profile.", "exclusiveMinimum": 0, "type": "number" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's full name." }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's job title." }, "companyName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The name of the company the person belongs to." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's email address." } }, "required": [ "profileId", "name", "email", "title", "companyName" ], "type": "object" }, { "type": "null" } ], "example": { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com" } }, "status": { "description": "Action item status, one of 'PENDING' or 'DONE'.", "enum": [ "PENDING", "DONE" ], "type": "string" } }, "required": [ "id", "title", "description", "status", "assignee" ], "type": "object" }, "type": "array" }, "insights": { "additionalProperties": { "items": { "additionalProperties": false, "properties": { "speaker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Speaker the insight is associated with, if any." }, "timestamp": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Timestamp in seconds the insight is associated with, if any." }, "insight": { "anyOf": [ { "type": "string" }, { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, "propertyNames": { "type": "string" }, "type": "object" } ], "description": "The insight result. A string, or an object when the insight has custom fields." } }, "required": [ "speaker", "timestamp", "insight" ], "type": "object" }, "type": "array" }, "description": "Insight results for the meeting, keyed by the name of the user-created insight.", "propertyNames": { "type": "string" }, "type": "object" }, "linkAccess": { "anyOf": [ { "enum": [ "Editor", "Viewer", "LimitedViewer" ], "type": "string" }, { "type": "null" } ], "description": "Who can access the meeting through its shareable link." }, "calendarEvent": { "anyOf": [ { "additionalProperties": false, "properties": { "id": { "description": "The unique identifier of the calendar event.", "exclusiveMinimum": 0, "type": "number" }, "icalUid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The iCalendar unique identifier of the event." }, "description": { "description": "The description of the calendar event.", "type": "string" }, "platform": { "anyOf": [ { "enum": [ "GoogleCalendar", "MicrosoftOutlook" ], "type": "string" }, { "type": "null" } ], "description": "The calendar platform the event comes from." }, "platformId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The unique identifier of the event on the calendar platform." } }, "required": [ "id", "platform", "platformId", "description", "icalUid" ], "type": "object" }, { "type": "null" } ] } }, "required": [ "id", "linkAccess", "url", "createdAt", "updatedAt", "duration", "name", "notes", "icalUid", "recordingUrl", "tags", "attendees", "actionItems", "insights", "calendarEvent", "privateNotes" ], "type": "object" }, "type": "array" } } }, "description": "Successful response." }, "400": { "content": { "application/json": { "schema": { "additionalProperties": false, "properties": { "code": { "description": "A machine-readable code identifying the type of failure.", "type": "string" }, "error": { "description": "A human-readable message explaining why the request failed.", "type": "string" }, "issues": { "description": "The field-level validation issues found in an invalid request.", "items": { "additionalProperties": false, "properties": { "message": { "description": "A human-readable explanation of the validation failure.", "type": "string" }, "path": { "description": "The location of the request field that failed validation.", "type": "string" } }, "required": [ "path", "message" ], "type": "object" }, "type": "array" } }, "required": [ "error" ], "type": "object" } } }, "description": "The request failed validation." } }, "security": [ { "ApiKeyAuth": [] } ], "summary": "Search meetings", "tags": [ "Meetings" ] } } } } ``` # List people (/docs/api/people/list-people) ## OpenAPI ```json { "info": { "description": "The Circleback public REST API provides programmatic access to your meetings, notes, action items, transcripts, and more. Authenticate every request by sending your API key as a bearer token.", "title": "Circleback Public API", "version": "1.0.0" }, "openapi": "3.2.0", "servers": [ { "url": "https://circleback.ai/api" } ], "components": { "securitySchemes": { "ApiKeyAuth": { "bearerFormat": "cb_", "scheme": "bearer", "type": "http" } } }, "tags": [ { "description": "Look up the people who attend your meetings.", "name": "People" } ], "paths": { "/people": { "get": { "description": "Returns the people who attend the authenticated user's meetings, ordered by most recent meeting, with optional company and tag filters.", "parameters": [ { "description": "Filter people to those associated with any of these company domains.", "in": "query", "name": "domains", "required": false, "schema": { "items": { "type": "string" }, "type": "array" } }, { "description": "The maximum number of people to return.", "in": "query", "name": "limit", "required": false, "schema": { "exclusiveMinimum": 0, "type": "integer" } }, { "description": "Cursor for the next page. Omit for the first page (RFC 8288).", "in": "query", "name": "cursor", "required": false, "schema": { "type": "string" } }, { "description": "Filter people to attendees of meetings with these tag IDs.", "in": "query", "name": "tagIds", "required": false, "schema": { "items": { "exclusiveMinimum": 0, "type": "integer" }, "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "additionalProperties": false, "example": { "id": 1, "title": "Head of Operations", "companyId": 3, "companyName": "Initech", "email": "john@initech.com", "firstName": "John", "lastName": "Appleseed" }, "properties": { "id": { "description": "The unique identifier of the person.", "exclusiveMinimum": 0, "type": "number" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's job title." }, "companyId": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "null" } ], "description": "The unique identifier of the company the person belongs to." }, "companyName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The name of the company the person belongs to." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's email address." }, "firstName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's first name." }, "lastName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's last name." } }, "required": [ "id", "email", "firstName", "lastName", "title", "companyName", "companyId" ], "type": "object" }, "type": "array" } } }, "description": "Successful response." }, "400": { "content": { "application/json": { "schema": { "additionalProperties": false, "properties": { "code": { "description": "A machine-readable code identifying the type of failure.", "type": "string" }, "error": { "description": "A human-readable message explaining why the request failed.", "type": "string" }, "issues": { "description": "The field-level validation issues found in an invalid request.", "items": { "additionalProperties": false, "properties": { "message": { "description": "A human-readable explanation of the validation failure.", "type": "string" }, "path": { "description": "The location of the request field that failed validation.", "type": "string" } }, "required": [ "path", "message" ], "type": "object" }, "type": "array" } }, "required": [ "error" ], "type": "object" } } }, "description": "The request failed validation." } }, "security": [ { "ApiKeyAuth": [] } ], "summary": "List people", "tags": [ "People" ] } } } } ``` # Get person (/docs/api/people/get-person) ## OpenAPI ```json { "info": { "description": "The Circleback public REST API provides programmatic access to your meetings, notes, action items, transcripts, and more. Authenticate every request by sending your API key as a bearer token.", "title": "Circleback Public API", "version": "1.0.0" }, "openapi": "3.2.0", "servers": [ { "url": "https://circleback.ai/api" } ], "components": { "securitySchemes": { "ApiKeyAuth": { "bearerFormat": "cb_", "scheme": "bearer", "type": "http" } } }, "tags": [ { "description": "Look up the people who attend your meetings.", "name": "People" } ], "paths": { "/person/{profileId}": { "get": { "description": "Returns a person by their profile ID, including their profile details and external links.", "parameters": [ { "description": "The unique identifier of the person's profile.", "in": "path", "name": "profileId", "required": true, "schema": { "exclusiveMinimum": 0, "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": false, "example": { "id": 1, "title": "Head of Operations", "companyId": 3, "companyName": "Initech", "email": "john@initech.com", "firstName": "John", "lastName": "Appleseed", "externalLinks": [ { "url": "https://www.linkedin.com/in/john-appleseed", "objectType": "person", "type": "linkedin" } ] }, "properties": { "id": { "description": "The unique identifier of the person.", "exclusiveMinimum": 0, "type": "number" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's job title." }, "companyId": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "null" } ], "description": "The unique identifier of the company the person belongs to." }, "companyName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The name of the company the person belongs to." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's email address." }, "firstName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's first name." }, "lastName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's last name." }, "externalLinks": { "description": "Links to the person on external platforms and connected integrations.", "items": { "additionalProperties": false, "properties": { "url": { "description": "The URL of the external resource.", "type": "string" }, "objectType": { "description": "Whether the link refers to a person or a company.", "enum": [ "person", "company" ], "type": "string" }, "type": { "description": "The platform or integration the link points to.", "enum": [ "Attio", "HubSpot", "Linear", "Salesforce", "Zoho", "linkedin", "facebook", "instagram", "twitter", "website" ], "type": "string" } }, "required": [ "type", "objectType", "url" ], "type": "object" }, "type": "array" } }, "required": [ "id", "email", "firstName", "lastName", "title", "companyName", "companyId", "externalLinks" ], "type": "object" } } }, "description": "Successful response." }, "400": { "content": { "application/json": { "schema": { "additionalProperties": false, "properties": { "code": { "description": "A machine-readable code identifying the type of failure.", "type": "string" }, "error": { "description": "A human-readable message explaining why the request failed.", "type": "string" }, "issues": { "description": "The field-level validation issues found in an invalid request.", "items": { "additionalProperties": false, "properties": { "message": { "description": "A human-readable explanation of the validation failure.", "type": "string" }, "path": { "description": "The location of the request field that failed validation.", "type": "string" } }, "required": [ "path", "message" ], "type": "object" }, "type": "array" } }, "required": [ "error" ], "type": "object" } } }, "description": "The request failed validation." } }, "security": [ { "ApiKeyAuth": [] } ], "summary": "Get person", "tags": [ "People" ] } } } } ``` # List tags (/docs/api/tags/list-tags) ## OpenAPI ```json { "info": { "description": "The Circleback public REST API provides programmatic access to your meetings, notes, action items, transcripts, and more. Authenticate every request by sending your API key as a bearer token.", "title": "Circleback Public API", "version": "1.0.0" }, "openapi": "3.2.0", "servers": [ { "url": "https://circleback.ai/api" } ], "components": { "securitySchemes": { "ApiKeyAuth": { "bearerFormat": "cb_", "scheme": "bearer", "type": "http" } } }, "tags": [ { "description": "Organize meetings with tags and manage tag assignments.", "name": "Tags" } ], "paths": { "/tag": { "get": { "description": "Returns every tag available to the authenticated user.", "responses": { "200": { "content": { "application/json": { "schema": { "items": { "additionalProperties": false, "example": { "id": 1, "name": "Events", "description": "Company events and offsites." }, "properties": { "id": { "description": "The unique identifier of the tag.", "exclusiveMinimum": 0, "type": "number" }, "name": { "description": "The display name of the tag.", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "A description of the tag." } }, "required": [ "id", "name", "description" ], "type": "object" }, "type": "array" } } }, "description": "Successful response." }, "400": { "content": { "application/json": { "schema": { "additionalProperties": false, "properties": { "code": { "description": "A machine-readable code identifying the type of failure.", "type": "string" }, "error": { "description": "A human-readable message explaining why the request failed.", "type": "string" }, "issues": { "description": "The field-level validation issues found in an invalid request.", "items": { "additionalProperties": false, "properties": { "message": { "description": "A human-readable explanation of the validation failure.", "type": "string" }, "path": { "description": "The location of the request field that failed validation.", "type": "string" } }, "required": [ "path", "message" ], "type": "object" }, "type": "array" } }, "required": [ "error" ], "type": "object" } } }, "description": "The request failed validation." } }, "security": [ { "ApiKeyAuth": [] } ], "summary": "List tags", "tags": [ "Tags" ] } } } } ``` # Create tag (/docs/api/tags/create-tag) ## OpenAPI ```json { "info": { "description": "The Circleback public REST API provides programmatic access to your meetings, notes, action items, transcripts, and more. Authenticate every request by sending your API key as a bearer token.", "title": "Circleback Public API", "version": "1.0.0" }, "openapi": "3.2.0", "servers": [ { "url": "https://circleback.ai/api" } ], "components": { "securitySchemes": { "ApiKeyAuth": { "bearerFormat": "cb_", "scheme": "bearer", "type": "http" } } }, "tags": [ { "description": "Organize meetings with tags and manage tag assignments.", "name": "Tags" } ], "paths": { "/tag": { "post": { "description": "Creates a new tag. If a tag with the same name already exists, a conflict error is returned.", "requestBody": { "content": { "application/json": { "schema": { "example": { "name": "Events", "description": "Company events and offsites." }, "properties": { "name": { "description": "The display name of the tag.", "type": "string" }, "description": { "anyOf": [ { "maxLength": 1000, "type": "string" }, { "type": "null" } ], "description": "A description of the tag." } }, "required": [ "name" ], "type": "object" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": false, "example": { "id": 1, "name": "Events", "description": "Company events and offsites." }, "properties": { "id": { "description": "The unique identifier of the tag.", "exclusiveMinimum": 0, "type": "number" }, "name": { "description": "The display name of the tag.", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "A description of the tag." } }, "required": [ "id", "name", "description" ], "type": "object" } } }, "description": "Successful response." }, "400": { "content": { "application/json": { "schema": { "additionalProperties": false, "properties": { "code": { "description": "A machine-readable code identifying the type of failure.", "type": "string" }, "error": { "description": "A human-readable message explaining why the request failed.", "type": "string" }, "issues": { "description": "The field-level validation issues found in an invalid request.", "items": { "additionalProperties": false, "properties": { "message": { "description": "A human-readable explanation of the validation failure.", "type": "string" }, "path": { "description": "The location of the request field that failed validation.", "type": "string" } }, "required": [ "path", "message" ], "type": "object" }, "type": "array" } }, "required": [ "error" ], "type": "object" } } }, "description": "The request failed validation." } }, "security": [ { "ApiKeyAuth": [] } ], "summary": "Create tag", "tags": [ "Tags" ] } } } } ``` # Remove tag from meetings (/docs/api/tags/remove-tag-from-meetings) ## OpenAPI ```json { "info": { "description": "The Circleback public REST API provides programmatic access to your meetings, notes, action items, transcripts, and more. Authenticate every request by sending your API key as a bearer token.", "title": "Circleback Public API", "version": "1.0.0" }, "openapi": "3.2.0", "servers": [ { "url": "https://circleback.ai/api" } ], "components": { "securitySchemes": { "ApiKeyAuth": { "bearerFormat": "cb_", "scheme": "bearer", "type": "http" } } }, "tags": [ { "description": "Organize meetings with tags and manage tag assignments.", "name": "Tags" } ], "paths": { "/tag": { "delete": { "description": "Removes a tag from one or more meetings and returns the updated meetings.", "requestBody": { "content": { "application/json": { "schema": { "properties": { "tagId": { "description": "The ID of the tag.", "exclusiveMinimum": 0, "type": "integer" }, "meetingIds": { "description": "The IDs of the meetings to update.", "items": { "description": "The unique identifier of the meeting.", "type": "string" }, "type": "array" } }, "required": [ "tagId" ], "type": "object" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "items": { "additionalProperties": false, "example": { "id": "WRweb12iCBimU6Vo8cD7z", "name": "Event Venue Review", "createdAt": "2023-07-25T20:30:57.926Z", "updatedAt": "2023-07-25T20:30:57.926Z", "duration": 1306.09, "url": "https://meet.google.com/abc-defgh-xyz", "recordingUrl": "https://storage.googleapis.com/circleback-recordings/WRweb12iCBimU6Vo8cD7z.mp4", "tags": [ { "id": 1, "name": "Events", "description": "Company events and offsites." } ], "icalUid": "event-venue-review@google.com", "attendees": [ { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com", "isCalendarEventOrganizer": true, "isCalendarInvitee": true }, { "profileId": 2, "name": "Samantha Grey", "title": "Office Manager", "companyName": "Initech", "email": "samantha@initech.com", "isCalendarEventOrganizer": false, "isCalendarInvitee": true } ], "notes": "#### Overview\n* Several options for event venues were reviewed…", "privateNotes": "Ask Samantha about the Sunriver deposit before Friday.", "actionItems": [ { "id": 252, "title": "Contact event venues", "description": "Reach out to Sunriver Events and other potential event venues to see if they would be open to hosting the event this summer.", "assignee": { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com" }, "status": "PENDING" }, { "id": 253, "title": "Review and finalize venue options", "description": "Review pricing and availability of venues and pick a venue for the event.", "assignee": null, "status": "PENDING" } ], "insights": { "Customer details": [ { "speaker": "John Appleseed", "timestamp": 800, "insight": { "Company name": "Initech", "Number of employees": 120 } } ], "Questions": [ { "insight": "Is this thing on?", "speaker": "Samantha Grey", "timestamp": 49.15 }, { "insight": "When will the webhook integration be ready?", "speaker": "John Appleseed", "timestamp": 120.12 } ] }, "linkAccess": "Viewer", "calendarEvent": { "id": 91, "icalUid": "event-venue-review@google.com", "description": "Quarterly venue review", "platform": "GoogleCalendar", "platformId": "provider-event-id" } }, "properties": { "id": { "description": "Circleback meeting ID. Can be used to generate a link to the meeting (`https://circleback.ai/meetings/${id}`).", "type": "string" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Meeting name." }, "createdAt": { "description": "Meeting creation date, formatted as an ISO 8601 timestamp.", "format": "date-time", "type": "string" }, "updatedAt": { "description": "When the meeting was last updated.", "format": "date-time", "type": "string" }, "duration": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Meeting duration in seconds." }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "URL of the virtual meeting (Zoom, Google Meet, or Microsoft Teams)." }, "recordingUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "URL of the meeting recording file. Only valid for 24 hours, and only available if saving meeting recordings is enabled in settings." }, "tags": { "description": "Tags added to the meeting.", "items": { "additionalProperties": false, "properties": { "id": { "description": "The unique identifier of the tag.", "exclusiveMinimum": 0, "type": "number" }, "name": { "description": "The display name of the tag.", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "A description of the tag." } }, "required": [ "id", "name", "description" ], "type": "object" }, "type": "array" }, "icalUid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Unique identifier of the calendar event associated with the meeting." }, "attendees": { "description": "Meeting attendees.", "items": { "additionalProperties": false, "properties": { "profileId": { "description": "The unique identifier of the person's profile.", "exclusiveMinimum": 0, "type": "number" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Calendar event invitee name if associated with a calendar event, or the name of the meeting participant." }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's job title." }, "companyName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The name of the company the person belongs to." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Calendar event invitee email if associated with a calendar event." }, "isCalendarEventOrganizer": { "description": "Whether the attendee organized the calendar event.", "type": "boolean" }, "isCalendarInvitee": { "description": "Whether the attendee was invited on the calendar event.", "type": "boolean" } }, "required": [ "profileId", "name", "email", "title", "companyName", "isCalendarInvitee", "isCalendarEventOrganizer" ], "type": "object" }, "type": "array" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Circleback meeting notes with Markdown formatting." }, "privateNotes": { "description": "The authenticated user's private notes for the meeting.", "type": "string" }, "actionItems": { "description": "Action items created for the meeting.", "items": { "additionalProperties": false, "properties": { "id": { "description": "Circleback action item ID.", "exclusiveMinimum": 0, "type": "number" }, "title": { "description": "Action item title.", "type": "string" }, "description": { "description": "Action item description.", "type": "string" }, "assignee": { "description": "Action item assignee, or null if unassigned.", "anyOf": [ { "additionalProperties": false, "properties": { "profileId": { "description": "The unique identifier of the person's profile.", "exclusiveMinimum": 0, "type": "number" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's full name." }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's job title." }, "companyName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The name of the company the person belongs to." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's email address." } }, "required": [ "profileId", "name", "email", "title", "companyName" ], "type": "object" }, { "type": "null" } ], "example": { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com" } }, "status": { "description": "Action item status, one of 'PENDING' or 'DONE'.", "enum": [ "PENDING", "DONE" ], "type": "string" } }, "required": [ "id", "title", "description", "status", "assignee" ], "type": "object" }, "type": "array" }, "insights": { "additionalProperties": { "items": { "additionalProperties": false, "properties": { "speaker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Speaker the insight is associated with, if any." }, "timestamp": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Timestamp in seconds the insight is associated with, if any." }, "insight": { "anyOf": [ { "type": "string" }, { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, "propertyNames": { "type": "string" }, "type": "object" } ], "description": "The insight result. A string, or an object when the insight has custom fields." } }, "required": [ "speaker", "timestamp", "insight" ], "type": "object" }, "type": "array" }, "description": "Insight results for the meeting, keyed by the name of the user-created insight.", "propertyNames": { "type": "string" }, "type": "object" }, "linkAccess": { "anyOf": [ { "enum": [ "Editor", "Viewer", "LimitedViewer" ], "type": "string" }, { "type": "null" } ], "description": "Who can access the meeting through its shareable link." }, "calendarEvent": { "anyOf": [ { "additionalProperties": false, "properties": { "id": { "description": "The unique identifier of the calendar event.", "exclusiveMinimum": 0, "type": "number" }, "icalUid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The iCalendar unique identifier of the event." }, "description": { "description": "The description of the calendar event.", "type": "string" }, "platform": { "anyOf": [ { "enum": [ "GoogleCalendar", "MicrosoftOutlook" ], "type": "string" }, { "type": "null" } ], "description": "The calendar platform the event comes from." }, "platformId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The unique identifier of the event on the calendar platform." } }, "required": [ "id", "platform", "platformId", "description", "icalUid" ], "type": "object" }, { "type": "null" } ] } }, "required": [ "id", "linkAccess", "url", "createdAt", "updatedAt", "duration", "name", "notes", "icalUid", "recordingUrl", "tags", "attendees", "actionItems", "insights", "calendarEvent", "privateNotes" ], "type": "object" }, "type": "array" } } }, "description": "Successful response." }, "400": { "content": { "application/json": { "schema": { "additionalProperties": false, "properties": { "code": { "description": "A machine-readable code identifying the type of failure.", "type": "string" }, "error": { "description": "A human-readable message explaining why the request failed.", "type": "string" }, "issues": { "description": "The field-level validation issues found in an invalid request.", "items": { "additionalProperties": false, "properties": { "message": { "description": "A human-readable explanation of the validation failure.", "type": "string" }, "path": { "description": "The location of the request field that failed validation.", "type": "string" } }, "required": [ "path", "message" ], "type": "object" }, "type": "array" } }, "required": [ "error" ], "type": "object" } } }, "description": "The request failed validation." } }, "security": [ { "ApiKeyAuth": [] } ], "summary": "Remove tag from meetings", "tags": [ "Tags" ] } } } } ``` # Add tag to meetings (/docs/api/tags/add-tag-to-meetings) ## OpenAPI ```json { "info": { "description": "The Circleback public REST API provides programmatic access to your meetings, notes, action items, transcripts, and more. Authenticate every request by sending your API key as a bearer token.", "title": "Circleback Public API", "version": "1.0.0" }, "openapi": "3.2.0", "servers": [ { "url": "https://circleback.ai/api" } ], "components": { "securitySchemes": { "ApiKeyAuth": { "bearerFormat": "cb_", "scheme": "bearer", "type": "http" } } }, "tags": [ { "description": "Organize meetings with tags and manage tag assignments.", "name": "Tags" } ], "paths": { "/tag": { "put": { "description": "Applies an existing tag to one or more meetings and returns the updated meetings.", "requestBody": { "content": { "application/json": { "schema": { "properties": { "tagId": { "description": "The ID of the tag.", "exclusiveMinimum": 0, "type": "integer" }, "meetingIds": { "description": "The IDs of the meetings to update.", "items": { "description": "The unique identifier of the meeting.", "type": "string" }, "type": "array" } }, "required": [ "tagId" ], "type": "object" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "items": { "additionalProperties": false, "example": { "id": "WRweb12iCBimU6Vo8cD7z", "name": "Event Venue Review", "createdAt": "2023-07-25T20:30:57.926Z", "updatedAt": "2023-07-25T20:30:57.926Z", "duration": 1306.09, "url": "https://meet.google.com/abc-defgh-xyz", "recordingUrl": "https://storage.googleapis.com/circleback-recordings/WRweb12iCBimU6Vo8cD7z.mp4", "tags": [ { "id": 1, "name": "Events", "description": "Company events and offsites." } ], "icalUid": "event-venue-review@google.com", "attendees": [ { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com", "isCalendarEventOrganizer": true, "isCalendarInvitee": true }, { "profileId": 2, "name": "Samantha Grey", "title": "Office Manager", "companyName": "Initech", "email": "samantha@initech.com", "isCalendarEventOrganizer": false, "isCalendarInvitee": true } ], "notes": "#### Overview\n* Several options for event venues were reviewed…", "privateNotes": "Ask Samantha about the Sunriver deposit before Friday.", "actionItems": [ { "id": 252, "title": "Contact event venues", "description": "Reach out to Sunriver Events and other potential event venues to see if they would be open to hosting the event this summer.", "assignee": { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com" }, "status": "PENDING" }, { "id": 253, "title": "Review and finalize venue options", "description": "Review pricing and availability of venues and pick a venue for the event.", "assignee": null, "status": "PENDING" } ], "insights": { "Customer details": [ { "speaker": "John Appleseed", "timestamp": 800, "insight": { "Company name": "Initech", "Number of employees": 120 } } ], "Questions": [ { "insight": "Is this thing on?", "speaker": "Samantha Grey", "timestamp": 49.15 }, { "insight": "When will the webhook integration be ready?", "speaker": "John Appleseed", "timestamp": 120.12 } ] }, "linkAccess": "Viewer", "calendarEvent": { "id": 91, "icalUid": "event-venue-review@google.com", "description": "Quarterly venue review", "platform": "GoogleCalendar", "platformId": "provider-event-id" } }, "properties": { "id": { "description": "Circleback meeting ID. Can be used to generate a link to the meeting (`https://circleback.ai/meetings/${id}`).", "type": "string" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Meeting name." }, "createdAt": { "description": "Meeting creation date, formatted as an ISO 8601 timestamp.", "format": "date-time", "type": "string" }, "updatedAt": { "description": "When the meeting was last updated.", "format": "date-time", "type": "string" }, "duration": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Meeting duration in seconds." }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "URL of the virtual meeting (Zoom, Google Meet, or Microsoft Teams)." }, "recordingUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "URL of the meeting recording file. Only valid for 24 hours, and only available if saving meeting recordings is enabled in settings." }, "tags": { "description": "Tags added to the meeting.", "items": { "additionalProperties": false, "properties": { "id": { "description": "The unique identifier of the tag.", "exclusiveMinimum": 0, "type": "number" }, "name": { "description": "The display name of the tag.", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "A description of the tag." } }, "required": [ "id", "name", "description" ], "type": "object" }, "type": "array" }, "icalUid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Unique identifier of the calendar event associated with the meeting." }, "attendees": { "description": "Meeting attendees.", "items": { "additionalProperties": false, "properties": { "profileId": { "description": "The unique identifier of the person's profile.", "exclusiveMinimum": 0, "type": "number" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Calendar event invitee name if associated with a calendar event, or the name of the meeting participant." }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's job title." }, "companyName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The name of the company the person belongs to." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Calendar event invitee email if associated with a calendar event." }, "isCalendarEventOrganizer": { "description": "Whether the attendee organized the calendar event.", "type": "boolean" }, "isCalendarInvitee": { "description": "Whether the attendee was invited on the calendar event.", "type": "boolean" } }, "required": [ "profileId", "name", "email", "title", "companyName", "isCalendarInvitee", "isCalendarEventOrganizer" ], "type": "object" }, "type": "array" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Circleback meeting notes with Markdown formatting." }, "privateNotes": { "description": "The authenticated user's private notes for the meeting.", "type": "string" }, "actionItems": { "description": "Action items created for the meeting.", "items": { "additionalProperties": false, "properties": { "id": { "description": "Circleback action item ID.", "exclusiveMinimum": 0, "type": "number" }, "title": { "description": "Action item title.", "type": "string" }, "description": { "description": "Action item description.", "type": "string" }, "assignee": { "description": "Action item assignee, or null if unassigned.", "anyOf": [ { "additionalProperties": false, "properties": { "profileId": { "description": "The unique identifier of the person's profile.", "exclusiveMinimum": 0, "type": "number" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's full name." }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's job title." }, "companyName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The name of the company the person belongs to." }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The person's email address." } }, "required": [ "profileId", "name", "email", "title", "companyName" ], "type": "object" }, { "type": "null" } ], "example": { "profileId": 1, "name": "John Appleseed", "title": "Head of Operations", "companyName": "Initech", "email": "john@initech.com" } }, "status": { "description": "Action item status, one of 'PENDING' or 'DONE'.", "enum": [ "PENDING", "DONE" ], "type": "string" } }, "required": [ "id", "title", "description", "status", "assignee" ], "type": "object" }, "type": "array" }, "insights": { "additionalProperties": { "items": { "additionalProperties": false, "properties": { "speaker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Speaker the insight is associated with, if any." }, "timestamp": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Timestamp in seconds the insight is associated with, if any." }, "insight": { "anyOf": [ { "type": "string" }, { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] }, "propertyNames": { "type": "string" }, "type": "object" } ], "description": "The insight result. A string, or an object when the insight has custom fields." } }, "required": [ "speaker", "timestamp", "insight" ], "type": "object" }, "type": "array" }, "description": "Insight results for the meeting, keyed by the name of the user-created insight.", "propertyNames": { "type": "string" }, "type": "object" }, "linkAccess": { "anyOf": [ { "enum": [ "Editor", "Viewer", "LimitedViewer" ], "type": "string" }, { "type": "null" } ], "description": "Who can access the meeting through its shareable link." }, "calendarEvent": { "anyOf": [ { "additionalProperties": false, "properties": { "id": { "description": "The unique identifier of the calendar event.", "exclusiveMinimum": 0, "type": "number" }, "icalUid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The iCalendar unique identifier of the event." }, "description": { "description": "The description of the calendar event.", "type": "string" }, "platform": { "anyOf": [ { "enum": [ "GoogleCalendar", "MicrosoftOutlook" ], "type": "string" }, { "type": "null" } ], "description": "The calendar platform the event comes from." }, "platformId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The unique identifier of the event on the calendar platform." } }, "required": [ "id", "platform", "platformId", "description", "icalUid" ], "type": "object" }, { "type": "null" } ] } }, "required": [ "id", "linkAccess", "url", "createdAt", "updatedAt", "duration", "name", "notes", "icalUid", "recordingUrl", "tags", "attendees", "actionItems", "insights", "calendarEvent", "privateNotes" ], "type": "object" }, "type": "array" } } }, "description": "Successful response." }, "400": { "content": { "application/json": { "schema": { "additionalProperties": false, "properties": { "code": { "description": "A machine-readable code identifying the type of failure.", "type": "string" }, "error": { "description": "A human-readable message explaining why the request failed.", "type": "string" }, "issues": { "description": "The field-level validation issues found in an invalid request.", "items": { "additionalProperties": false, "properties": { "message": { "description": "A human-readable explanation of the validation failure.", "type": "string" }, "path": { "description": "The location of the request field that failed validation.", "type": "string" } }, "required": [ "path", "message" ], "type": "object" }, "type": "array" } }, "required": [ "error" ], "type": "object" } } }, "description": "The request failed validation." } }, "security": [ { "ApiKeyAuth": [] } ], "summary": "Add tag to meetings", "tags": [ "Tags" ] } } } } ``` # Delete tag (/docs/api/tags/delete-tag-delete-tagtagid) ## OpenAPI ```json { "info": { "description": "The Circleback public REST API provides programmatic access to your meetings, notes, action items, transcripts, and more. Authenticate every request by sending your API key as a bearer token.", "title": "Circleback Public API", "version": "1.0.0" }, "openapi": "3.2.0", "servers": [ { "url": "https://circleback.ai/api" } ], "components": { "securitySchemes": { "ApiKeyAuth": { "bearerFormat": "cb_", "scheme": "bearer", "type": "http" } } }, "tags": [ { "description": "Organize meetings with tags and manage tag assignments.", "name": "Tags" } ], "paths": { "/tag/{tagId}": { "delete": { "description": "Permanently deletes a tag and removes it from every meeting it was applied to.", "parameters": [ { "description": "The ID of the tag.", "in": "path", "name": "tagId", "required": true, "schema": { "exclusiveMinimum": 0, "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": false, "example": { "id": 1, "name": "Events", "description": "Company events and offsites." }, "properties": { "id": { "description": "The unique identifier of the tag.", "exclusiveMinimum": 0, "type": "number" }, "name": { "description": "The display name of the tag.", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "A description of the tag." } }, "required": [ "id", "name", "description" ], "type": "object" } } }, "description": "Successful response." }, "400": { "content": { "application/json": { "schema": { "additionalProperties": false, "properties": { "code": { "description": "A machine-readable code identifying the type of failure.", "type": "string" }, "error": { "description": "A human-readable message explaining why the request failed.", "type": "string" }, "issues": { "description": "The field-level validation issues found in an invalid request.", "items": { "additionalProperties": false, "properties": { "message": { "description": "A human-readable explanation of the validation failure.", "type": "string" }, "path": { "description": "The location of the request field that failed validation.", "type": "string" } }, "required": [ "path", "message" ], "type": "object" }, "type": "array" } }, "required": [ "error" ], "type": "object" } } }, "description": "The request failed validation." } }, "security": [ { "ApiKeyAuth": [] } ], "summary": "Delete tag", "tags": [ "Tags" ] } } } } ``` # Update tag (/docs/api/tags/update-tag) ## OpenAPI ```json { "info": { "description": "The Circleback public REST API provides programmatic access to your meetings, notes, action items, transcripts, and more. Authenticate every request by sending your API key as a bearer token.", "title": "Circleback Public API", "version": "1.0.0" }, "openapi": "3.2.0", "servers": [ { "url": "https://circleback.ai/api" } ], "components": { "securitySchemes": { "ApiKeyAuth": { "bearerFormat": "cb_", "scheme": "bearer", "type": "http" } } }, "tags": [ { "description": "Organize meetings with tags and manage tag assignments.", "name": "Tags" } ], "paths": { "/tag/{tagId}": { "put": { "description": "Updates a tag's name or description.", "parameters": [ { "description": "The ID of the tag.", "in": "path", "name": "tagId", "required": true, "schema": { "exclusiveMinimum": 0, "type": "integer" } } ], "requestBody": { "content": { "application/json": { "schema": { "properties": { "name": { "description": "The display name of the tag.", "type": "string" }, "description": { "anyOf": [ { "maxLength": 1000, "type": "string" }, { "type": "null" } ], "description": "A description of the tag." } }, "type": "object" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": false, "example": { "id": 1, "name": "Events", "description": "Company events and offsites." }, "properties": { "id": { "description": "The unique identifier of the tag.", "exclusiveMinimum": 0, "type": "number" }, "name": { "description": "The display name of the tag.", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "A description of the tag." } }, "required": [ "id", "name", "description" ], "type": "object" } } }, "description": "Successful response." }, "400": { "content": { "application/json": { "schema": { "additionalProperties": false, "properties": { "code": { "description": "A machine-readable code identifying the type of failure.", "type": "string" }, "error": { "description": "A human-readable message explaining why the request failed.", "type": "string" }, "issues": { "description": "The field-level validation issues found in an invalid request.", "items": { "additionalProperties": false, "properties": { "message": { "description": "A human-readable explanation of the validation failure.", "type": "string" }, "path": { "description": "The location of the request field that failed validation.", "type": "string" } }, "required": [ "path", "message" ], "type": "object" }, "type": "array" } }, "required": [ "error" ], "type": "object" } } }, "description": "The request failed validation." } }, "security": [ { "ApiKeyAuth": [] } ], "summary": "Update tag", "tags": [ "Tags" ] } } } } ```