openapi: 3.2.0 info: description: Close CRM REST API title: Close Activities.calls API version: 1.0.0 servers: - url: https://api.close.com/api/v1 security: - ApiKeyAuth: [] - OAuth2: [] tags: - name: activities.calls externalDocs: url: https://developer.close.com/api/resources/activities/calls paths: /activity/call/: get: operationId: activities.calls_list tags: - activities.calls summary: List or filter all Call activities parameters: - $ref: '#/components/parameters/LimitParam' - $ref: '#/components/parameters/SkipParam' - $ref: '#/components/parameters/ActivityFilters_IdInParam' - $ref: '#/components/parameters/ActivityFilters_LeadIdParam' - $ref: '#/components/parameters/ActivityFilters_ContactIdParam' - $ref: '#/components/parameters/ActivityFilters_UserIdParam' - $ref: '#/components/parameters/ActivityFilters_OrganizationIdParam' - $ref: '#/components/parameters/ActivityFilters_TypeParam' - $ref: '#/components/parameters/ActivityFilters_DateCreatedGteParam' - $ref: '#/components/parameters/ActivityFilters_DateCreatedLteParam' - $ref: '#/components/parameters/ActivityFilters_DateCreatedGtParam' - $ref: '#/components/parameters/ActivityFilters_DateCreatedLtParam' - $ref: '#/components/parameters/ActivityFilters_ActivityAtGteParam' - $ref: '#/components/parameters/ActivityFilters_ActivityAtLteParam' - $ref: '#/components/parameters/ActivityFilters_ActivityAtGtParam' - $ref: '#/components/parameters/ActivityFilters_ActivityAtLtParam' - $ref: '#/components/parameters/FieldsParam' responses: '200': content: application/json: example: data: - _type: Call activity_at: '2013-02-01T00:51:33+00:00' call_method: regular contact_id: cont_q4xYmlGhA3060dEl0NDJuHRxPMuVjqLn30AFSzh1fRk cost: '2' created_by: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA date_created: '2013-02-20T06:34:33.637000+00:00' date_updated: '2013-02-20T06:34:35.656000+00:00' dialer_id: null dialer_saved_search_id: null direction: outbound disposition: answered duration: 10 id: acti_Ay0QqN91HKAHVQUesISYV8QlhDobGfWb1Ui3TE75pJR lead_id: lead_s6vHFTK1TSRoH6otXOexWDO9jM4xyb1kELHDoU7Fdsp local_country_iso: US local_phone: '+16505556666' local_phone_formatted: +1 650-555-6666 note: '' note_html:

organization_id: orga_RbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH outcome_id: outcome_031uY9IKV1JxfNKM9n2qCw phone: '+16503334444' recording_url: null remote_country_iso: US remote_phone: '+16503334444' remote_phone_formatted: +1 650-333-4444 source: Close.io status: completed updated_by: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA user_id: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA users: [] voicemail_duration: null voicemail_url: null has_more: false schema: type: object properties: data: items: $ref: '#/components/schemas/CallActivity' type: array has_more: type: boolean required: - data - has_more description: Successful response '400': description: Bad request '401': description: Unauthorized '404': description: Not found post: operationId: activities.calls_create tags: - activities.calls summary: Log an external Call activity description: 'Use this endpoint to log calls made outside of the Close built-in VoIP system. *status*: defaults to `completed` *direction* (optional): `outbound` or `inbound` *recording_url*: you can post a URL pointing to the MP3 recording of your call. For security reasons, we require the URL to be secure (i.e. starting with https://)' requestBody: content: application/json: example: contact_id: cont_bulY73zoaAwTCLdjHrKzGkzZ942OwtEelJR7kNku9RK created_by: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA direction: outbound duration: 153 lead_id: lead_fioU1Nk5LC0H0iei9XBGHW2CFZU0yeP2zZCJQP9pC4m note_html:

call notes go here

phone: '+16505551234' status: completed user_id: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA schema: $ref: '#/components/schemas/CreateCallActivity' required: true responses: '200': content: application/json: example: _type: Call activity_at: '2013-02-01T00:51:33+00:00' call_method: external contact_id: cont_bulY73zoaAwTCLdjHrKzGkzZ942OwtEelJR7kNku9RK cost: '0' created_by: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA created_by_name: Stefan Wójcik date_created: '2014-05-22T17:39:04.509000+00:00' date_updated: '2014-05-22T17:39:04.509000+00:00' dialer_id: null dialer_saved_search_id: null direction: outbound disposition: answered duration: 153 id: acti_wJGiBIXXBCpBAQacZ7axeOhgTS7TWxyU7ml4WqAswOb lead_id: lead_fioU1Nk5LC0H0iei9XBGHW2CFZU0yeP2zZCJQP9pC4m local_country_iso: US note: call notes go here note_html:

call notes go here

organization_id: orga_RbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH outcome_id: null phone: '+16505551234' recording_url: null remote_country_iso: US remote_phone: '+16505551234' remote_phone_formatted: +1 650-555-1234 source: External status: completed updated_by: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA updated_by_name: Phil Freo user_id: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA user_name: Stefan Wójcik users: [] voicemail_url: null schema: $ref: '#/components/schemas/CallActivity' description: Successful response '400': description: Bad request '401': description: Unauthorized '404': description: Not found /activity/call/{id}/: get: operationId: activities.calls_get tags: - activities.calls summary: Get a single Call activity parameters: - in: path name: id required: true schema: type: string - $ref: '#/components/parameters/FieldsParam' responses: '200': content: application/json: example: _type: Call activity_at: '2013-02-01T00:51:33+00:00' call_method: regular contact_id: cont_q4xYmlGhA3060dEl0NDJuHRxPMuVjqLn30AFSzh1fRk cost: '2' created_by: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA date_created: '2013-02-20T06:34:33.637000+00:00' date_updated: '2013-02-20T06:34:35.656000+00:00' dialer_id: null dialer_saved_search_id: null direction: outbound disposition: answered duration: 10 id: acti_Ay0QqN91HKAHVQUesISYV8QlhDobGfWb1Ui3TE75pJR lead_id: lead_s6vHFTK1TSRoH6otXOexWDO9jM4xyb1kELHDoU7Fdsp local_country_iso: US local_phone: '+16505556666' local_phone_formatted: +1 650-555-6666 note: '' note_html:

organization_id: orga_RbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH outcome_id: outcome_031uY9IKV1JxfNKM9n2qCw phone: '+16503334444' recording_url: null remote_country_iso: US remote_phone: '+16503334444' remote_phone_formatted: +1 650-333-4444 source: Close.io status: completed updated_by: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA user_id: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA users: [] voicemail_duration: null voicemail_url: null schema: $ref: '#/components/schemas/CallActivity' description: Successful response '400': description: Bad request '401': description: Unauthorized '404': description: Not found put: operationId: activities.calls_update tags: - activities.calls summary: Update a Call activity description: 'Most commonly used to update `note_html` or `outcome_id`. Some fields (`status`, `duration`, `direction`) cannot be updated for internal calls made through Close''s VoIP system. **`note_html` and `note`**: setting one overwrites the other. If both are provided, `note_html` takes precedence. `note_html` supports rich-text HTML; `note` is plaintext only. **Deleting recordings**: for internal calls, changing or clearing `recording_url` or `voicemail_url`, or setting `recording_transcript` to `null`, permanently deletes the corresponding recording, voicemail, or transcript. This requires the `delete_own_activities` permission for your own calls, or `manage_others_activities` for other users'' calls and calls not assigned to a user. Without the required permission the request fails with a `400` error.' parameters: - in: path name: id required: true schema: type: string requestBody: content: application/json: example: note_html:

This is some new call note.

outcome_id: outcome_031uY9IKV1JxfNKM9n2qCw schema: $ref: '#/components/schemas/UpdateCallActivity' required: true responses: '200': content: application/json: example: _type: Call activity_at: '2013-02-01T00:51:33+00:00' call_method: regular contact_id: cont_q4xYmlGhA3060dEl0NDJuHRxPMuVjqLn30AFSzh1fRk cost: '2' created_by: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA date_created: '2013-02-20T06:34:33.637000+00:00' date_updated: '2013-02-20T06:34:35.656000+00:00' dialer_id: null dialer_saved_search_id: null direction: outbound disposition: answered duration: 10 id: acti_Ay0QqN91HKAHVQUesISYV8QlhDobGfWb1Ui3TE75pJR lead_id: lead_s6vHFTK1TSRoH6otXOexWDO9jM4xyb1kELHDoU7Fdsp local_country_iso: US local_phone: '+16505556666' local_phone_formatted: +1 650-555-6666 note: This is some new call note. note_html:

This is some new call note.

organization_id: orga_RbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH outcome_id: outcome_031uY9IKV1JxfNKM9n2qCw phone: '+16503334444' recording_url: null remote_country_iso: US remote_phone: '+16503334444' remote_phone_formatted: +1 650-333-4444 source: Close.io status: completed updated_by: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA user_id: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA users: [] voicemail_duration: null voicemail_url: null schema: $ref: '#/components/schemas/CallActivity' description: Successful response '400': description: Bad request '401': description: Unauthorized '404': description: Not found delete: operationId: activities.calls_delete tags: - activities.calls summary: Delete a Call activity parameters: - in: path name: id required: true schema: type: string responses: '200': description: Successful response '400': description: Bad request '401': description: Unauthorized '404': description: Not found components: parameters: ActivityFilters_DateCreatedGteParam: in: query name: date_created__gte required: false schema: title: Date Created (>=) anyOf: - type: string format: date-time - type: string format: date ActivityFilters_ActivityAtLteParam: in: query name: activity_at__lte required: false schema: title: Activity At (<=) anyOf: - type: string format: date-time - type: string format: date ActivityFilters_TypeParam: description: Filter by activity type, e.g. Call (comma-separated) in: query name: _type required: false schema: title: Type default: null anyOf: - type: array items: type: string - type: 'null' ActivityFilters_OrganizationIdParam: in: query name: organization_id required: false schema: title: Organization ID default: null anyOf: - type: string - type: 'null' ActivityFilters_LeadIdParam: description: Filter by lead IDs (comma-separated) in: query name: lead_id required: false schema: title: Lead ID default: null anyOf: - type: array items: type: string - type: 'null' ActivityFilters_ActivityAtLtParam: in: query name: activity_at__lt required: false schema: title: Activity At (<) anyOf: - type: string format: date-time - type: string format: date ActivityFilters_ActivityAtGteParam: in: query name: activity_at__gte required: false schema: title: Activity At (>=) anyOf: - type: string format: date-time - type: string format: date ActivityFilters_UserIdParam: description: Filter by user IDs (comma-separated) in: query name: user_id required: false schema: title: User ID default: null anyOf: - type: array items: type: string - type: 'null' ActivityFilters_ContactIdParam: description: Filter by contact IDs (comma-separated) in: query name: contact_id required: false schema: title: Contact ID default: null anyOf: - type: array items: type: string - type: 'null' LimitParam: description: Number of results to return. in: query name: _limit required: false schema: default: 100 type: integer SkipParam: description: Number of results to skip before returning, for pagination. in: query name: _skip required: false schema: default: 0 type: integer ActivityFilters_IdInParam: description: Filter by activity IDs (comma-separated) in: query name: id__in required: false schema: title: ID In default: null anyOf: - type: array items: type: string - type: 'null' FieldsParam: description: Comma-separated list of fields to include in the response. in: query name: _fields required: false schema: type: string ActivityFilters_DateCreatedLtParam: in: query name: date_created__lt required: false schema: title: Date Created (<) anyOf: - type: string format: date-time - type: string format: date ActivityFilters_ActivityAtGtParam: in: query name: activity_at__gt required: false schema: title: Activity At (>) anyOf: - type: string format: date-time - type: string format: date ActivityFilters_DateCreatedGtParam: in: query name: date_created__gt required: false schema: title: Date Created (>) anyOf: - type: string format: date-time - type: string format: date ActivityFilters_DateCreatedLteParam: in: query name: date_created__lte required: false schema: title: Date Created (<=) anyOf: - type: string format: date-time - type: string format: date schemas: CreateCallActivity: type: object properties: activity_at: type: - 'null' - string format: date-time contact_id: type: - 'null' - string conversation_type_id: type: - 'null' - string created_by: type: - 'null' - string date_created: type: - 'null' - string format: date-time direction: type: - 'null' - string enum: - inbound - outbound - null duration: type: - integer - 'null' maximum: 604800 lead_id: type: - 'null' - string note: type: - 'null' - string note_html: type: - 'null' - string organization_id: type: - 'null' - string outcome_id: type: - 'null' - string phone: description: Phone number in E.164 format type: - 'null' - string playbook_id: type: - 'null' - string quality_info: type: - 'null' - string recording_url: type: - 'null' - string format: uri source: type: - 'null' - string enum: - Close.io - External - null status: type: - 'null' - string enum: - created - in-progress - completed - cancel - no-answer - busy - failed - timeout - null user_id: type: - 'null' - string voicemail_url: type: - 'null' - string format: uri additionalProperties: false patternProperties: ^custom\.: not: type: object CallStatus: title: CallStatus description: Current status of the call. type: string enum: - created - in-progress - completed - cancel - no-answer - busy - failed - timeout PhoneActivitySource: title: PhoneActivitySource description: Source of a phone activity. Describes whether the phone activity (such as a call or an SMS) was handled by Close's telephony provider or handled externally by a 3rd party and is merely logged in Close. type: string enum: - Close.io - External UpdateCallActivity: type: object properties: activity_at: type: - 'null' - string format: date-time contact_id: type: - 'null' - string conversation_type_id: type: - 'null' - string duration: type: - integer - 'null' maximum: 604800 lead_id: type: - 'null' - string note: type: - 'null' - string note_html: type: - 'null' - string outcome_id: type: - 'null' - string phone: description: Phone number in E.164 format type: - 'null' - string playbook_id: type: - 'null' - string quality_info: type: - 'null' - string recording_url: type: - 'null' - string format: uri status: type: - 'null' - string enum: - created - in-progress - completed - cancel - no-answer - busy - failed - timeout - null user_id: type: - 'null' - string voicemail_url: type: - 'null' - string format: uri additionalProperties: false patternProperties: ^custom\.: not: type: object CallActivity: title: CallActivity type: object properties: _type: title: Type type: string activity_at: title: Activity At anyOf: - type: string format: date-time - type: 'null' contact_id: title: Contact ID anyOf: - type: string - type: 'null' created_by: title: Created By anyOf: - type: string - type: 'null' created_by_name: title: Created By Name default: null anyOf: - type: string - type: 'null' date_created: title: Date Created type: string format: date-time date_updated: title: Date Updated type: string format: date-time id: title: ID type: string lead_id: title: Lead ID anyOf: - type: string - type: 'null' organization_id: title: Organization ID type: string outcome_id: title: Outcome ID anyOf: - type: string - type: 'null' sequence_id: title: Sequence ID default: null anyOf: - type: string - type: 'null' sequence_name: title: Sequence Name default: null anyOf: - type: string - type: 'null' sequence_subscription_id: title: Sequence Subscription ID default: null anyOf: - type: string - type: 'null' source: $ref: '#/components/schemas/PhoneActivitySource' status: $ref: '#/components/schemas/CallStatus' updated_by: title: Updated By anyOf: - type: string - type: 'null' updated_by_name: title: Updated By Name default: null anyOf: - type: string - type: 'null' user_id: title: User ID anyOf: - type: string - type: 'null' user_name: title: User Name default: null anyOf: - type: string - type: 'null' users: title: Users type: array items: type: string required: - _type - activity_at - contact_id - created_by - date_created - date_updated - id - lead_id - organization_id - outcome_id - source - status - updated_by - user_id - users securitySchemes: ApiKeyAuth: description: Use your API key as the username and leave the password empty. scheme: basic type: http OAuth2: flows: authorizationCode: authorizationUrl: https://app.close.com/oauth2/authorize/ scopes: all.full_access: Full access to all resources offline_access: Request a refresh token tokenUrl: https://api.close.com/oauth2/token/ type: oauth2