openapi: 3.1.0 info: title: API Endpoints subpackage_activities subpackage_contacts API version: 1.0.0 servers: - url: https://api.close.com/api/v1 tags: - name: subpackage_contacts paths: /contact/: get: operationId: list summary: List contacts tags: - subpackage_contacts parameters: - name: _limit in: query description: Number of results to return. required: false schema: type: integer default: 100 - name: _skip in: query description: Number of results to skip before returning, for pagination. required: false schema: type: integer default: 0 - name: _fields in: query description: Comma-separated list of fields to include in the response. required: false schema: type: string - name: lead_id in: query required: false schema: type: string - name: Authorization in: header description: Use your API key as the username and leave the password empty. required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/contacts_list_Response_200' '400': description: Bad request content: application/json: schema: description: Any type '401': description: Unauthorized content: application/json: schema: description: Any type '404': description: Not found content: application/json: schema: description: Any type post: operationId: create summary: Create a new contact description: Contacts belong to exactly one Lead (specified by `lead_id`). If you do not provide a `lead_id` then a new lead will be created, named after the contact. tags: - subpackage_contacts parameters: - name: _fields in: query description: Comma-separated list of fields to include in the response. required: false schema: type: string - name: Authorization in: header description: Use your API key as the username and leave the password empty. required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Contact' '400': description: Bad request content: application/json: schema: description: Any type '401': description: Unauthorized content: application/json: schema: description: Any type '404': description: Not found content: application/json: schema: description: Any type requestBody: content: application/json: schema: description: Any type /contact/{id}/: get: operationId: get summary: Fetch a single contact tags: - subpackage_contacts parameters: - name: id in: path required: true schema: type: string - name: _fields in: query description: Comma-separated list of fields to include in the response. required: false schema: type: string - name: Authorization in: header description: Use your API key as the username and leave the password empty. required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Contact' '400': description: Bad request content: application/json: schema: description: Any type '401': description: Unauthorized content: application/json: schema: description: Any type '404': description: Not found content: application/json: schema: description: Any type put: operationId: update summary: Update an existing contact description: 'Update a contact''s information. If you''re trying to update a custom field and that custom field accepts multiple values, you can specify `.add` or `.remove` as part of the field key to add/remove a single value to/from a list of values, e.g.: ```json { "custom.cf_v6S011I6MqcbVvB2FA5Nk8dr5MkL8sWuCiG8cUleO9c.add": "Wednesday" } ``` adds "Wednesday" to the list of values which already exist on the given contact.' tags: - subpackage_contacts parameters: - name: id in: path required: true schema: type: string - name: _fields in: query description: Comma-separated list of fields to include in the response. required: false schema: type: string - name: Authorization in: header description: Use your API key as the username and leave the password empty. required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Contact' '400': description: Bad request content: application/json: schema: description: Any type '401': description: Unauthorized content: application/json: schema: description: Any type '404': description: Not found content: application/json: schema: description: Any type requestBody: content: application/json: schema: description: Any type delete: operationId: delete summary: Delete a contact tags: - subpackage_contacts parameters: - name: id in: path required: true schema: type: string - name: Authorization in: header description: Use your API key as the username and leave the password empty. required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/contacts_delete_Response_200' '400': description: Bad request content: application/json: schema: description: Any type '401': description: Unauthorized content: application/json: schema: description: Any type '404': description: Not found content: application/json: schema: description: Any type components: schemas: BasicSubscriptionInfoForContact: type: object properties: contact_email: type: - string - 'null' date_created: type: string format: date-time initial_email_id: type: - string - 'null' sequence_id: type: string sequence_name: type: string sequence_status: $ref: '#/components/schemas/WorkflowStatus' start_date: type: - string - 'null' format: date-time subscription_id: type: string subscription_status: $ref: '#/components/schemas/WorkflowRunStatus' subscription_status_reason: oneOf: - $ref: '#/components/schemas/StatusReason' - type: 'null' required: - contact_email - date_created - initial_email_id - sequence_id - sequence_name - sequence_status - start_date - subscription_id - subscription_status - subscription_status_reason title: BasicSubscriptionInfoForContact contacts_delete_Response_200: type: object properties: {} description: Empty response body title: contacts_delete_Response_200 ContactPhone: type: object properties: country: type: - string - 'null' outbound_sms_blocked: type: boolean phone: type: string phone_formatted: type: string type: type: string tz_ids: type: array items: type: string required: - phone - type title: ContactPhone WorkflowRunStatus: type: string enum: - active - paused - finished - goal - error title: WorkflowRunStatus ContactUrl: type: object properties: type: type: string url: type: string required: - type - url title: ContactUrl WorkflowStatus: type: string enum: - active - paused - draft title: WorkflowStatus RenderedIntegrationLink: type: object properties: name: type: string url: type: string required: - name - url title: RenderedIntegrationLink ContactRecentCall: type: object properties: dialer_id: type: - string - 'null' duration: type: integer finish_timestamp: type: string format: date-time id: type: string status: $ref: '#/components/schemas/CallStatus' required: - dialer_id - duration - finish_timestamp - id - status title: ContactRecentCall ContactEmail: type: object properties: email: type: string is_unsubscribed: type: boolean type: type: string required: - email - is_unsubscribed - type title: ContactEmail StatusReason: type: string enum: - manual - pending-call-timed-out - bulk-action - rate-limited - sequence-deleted - workflow-paused - filter-not-matched - reply-received - call-answered - meeting-booked - lead-status-changed - outcome-met - account-invalid - account-failures - sending-throttled-too-long - membership-inactive - send-as-error - email-bounced - call-failed - sms-failed - no-user-phone - billing-error - assignment-field-invalid - lead-status-field-invalid - assignees-missing - run-as-disabled - lead-not-visible - internal-error - field-mapping-error - filter-config-invalid - email-ai-generation-failed description: Reason for each higher level status on a Workflow run. title: StatusReason CallStatus: type: string enum: - created - in-progress - completed - cancel - no-answer - busy - failed - timeout description: Current status of the call. title: CallStatus Contact: type: object properties: created_by: type: - string - 'null' date_created: type: string format: date-time date_updated: type: string format: date-time display_name: type: string emails: type: array items: $ref: '#/components/schemas/ContactEmail' id: type: string integration_links: type: array items: $ref: '#/components/schemas/RenderedIntegrationLink' lead_id: type: - string - 'null' lead_suggestions_operation_id: type: - string - 'null' name: type: - string - 'null' organization_id: type: string phones: type: array items: $ref: '#/components/schemas/ContactPhone' recent_calls: type: array items: $ref: '#/components/schemas/ContactRecentCall' subscriptions: type: array items: $ref: '#/components/schemas/BasicSubscriptionInfoForContact' timezone: type: - string - 'null' timezone_source: type: - string - 'null' title: type: - string - 'null' updated_by: type: - string - 'null' urls: type: array items: $ref: '#/components/schemas/ContactUrl' required: - created_by - date_created - date_updated - display_name - id - name - organization_id - title - updated_by title: Contact contacts_list_Response_200: type: object properties: data: type: array items: $ref: '#/components/schemas/Contact' has_more: type: boolean required: - data - has_more title: contacts_list_Response_200 securitySchemes: ApiKeyAuth: type: http scheme: basic description: Use your API key as the username and leave the password empty. OAuth2: type: http scheme: bearer