openapi: 3.2.0 info: description: Close CRM REST API title: Close Outcomes API version: 1.0.0 servers: - url: https://api.close.com/api/v1 security: - ApiKeyAuth: [] - OAuth2: [] tags: - name: outcomes externalDocs: url: https://developer.close.com/api/resources/outcomes paths: /outcome/: get: operationId: outcomes_list tags: - outcomes summary: List or filter outcomes description: Fetch a list of outcomes. parameters: - $ref: '#/components/parameters/LimitParam' - $ref: '#/components/parameters/SkipParam' - $ref: '#/components/parameters/FieldsParam' responses: '200': content: application/json: example: data: - applies_to: - calls - meetings created_by: user_A6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA date_created: '2025-07-29T10:30:00.000000+00:00' date_updated: '2025-07-29T10:30:00.000000+00:00' description: Prospect is qualified and booked a demo of our software. id: outcome_03oUxZfoO6e2vHmcz1DiHR name: Demo Booked organization_id: orga_AbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH type: custom updated_by: user_A6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA - applies_to: - calls created_by: user_A6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA date_created: '2025-07-29T10:30:00.000000+00:00' date_updated: '2025-07-29T10:30:00.000000+00:00' description: Call went to voicemail and a pre-recorded voicemail message was dropped. id: outcome_030Xl5QwKi7tPRLRtnuef3 name: Left Pre-Recorded Voicemail organization_id: orga_RbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH type: vm-dropped updated_by: user_A6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA has_more: false schema: type: object properties: data: items: $ref: '#/components/schemas/Outcome' 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: outcomes_create tags: - outcomes summary: Create an outcome description: Create a new outcome for the organization. requestBody: content: application/json: example: description: Prospect declined our offer name: Not Interested type: custom schema: $ref: '#/components/schemas/CreateOutcome' required: true responses: '201': content: application/json: example: applies_to: - calls - meetings created_by: user_a6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA date_created: '2025-07-29T10:30:00.000000+00:00' date_updated: '2025-07-29T10:30:00.000000+00:00' description: Prospect declined our offer id: outcome_03oUxZfoO6e2vHmcz1DiHR name: Not Interested organization_id: orga_rbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH type: custom updated_by: user_a6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA schema: $ref: '#/components/schemas/Outcome' description: Successful response '400': description: Bad request '401': description: Unauthorized '404': description: Not found /outcome/{id}/: get: operationId: outcomes_get tags: - outcomes summary: Fetch a single outcome parameters: - in: path name: id required: true schema: type: string - $ref: '#/components/parameters/FieldsParam' responses: '200': content: application/json: example: applies_to: - calls created_by: user_a6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA date_created: '2025-07-29T10:30:00.000000+00:00' date_updated: '2025-07-29T10:30:00.000000+00:00' description: We reached a gatekeeper and couldn't get past them. id: outcome_03oUxZfoO6e2vHmcz1DiHR name: Gatekeeper Reached organization_id: orga_RbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH type: custom updated_by: user_a6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA schema: $ref: '#/components/schemas/Outcome' description: Successful response '400': description: Bad request '401': description: Unauthorized '404': description: Not found put: operationId: outcomes_update tags: - outcomes summary: Update an outcome description: Update an existing outcome. parameters: - in: path name: id required: true schema: type: string requestBody: content: application/json: example: name: Very Interested description: Prospect is very interested and wants to proceed. schema: $ref: '#/components/schemas/UpdateOutcome' required: true responses: '200': content: application/json: example: applies_to: - calls - meetings created_by: user_a6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA date_created: '2025-07-29T10:30:00.000000+00:00' date_updated: '2025-07-29T11:45:00.000000+00:00' description: Prospect is very interested and wants to proceed id: outcome_03oUxZfoO6e2vHmcz1DiHR name: Very Interested organization_id: orga_RbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH type: custom updated_by: user_a6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA schema: $ref: '#/components/schemas/Outcome' description: Successful response '400': description: Bad request '401': description: Unauthorized '404': description: Not found delete: operationId: outcomes_delete tags: - outcomes summary: Delete an outcome description: 'Delete an existing outcome. All of the calls and/or meetings associated with this outcome will still retain that reference, but you won''t be able to set that outcome on any new calls & meetings nor find its definition in the API.' 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: schemas: UpdateOutcome: title: UpdateOutcome type: object properties: applies_to: title: Applies To description: 'Deprecated. This field will be derived from `type` in a future update: `custom` applies to calls and meetings, `vm-dropped` applies to calls only.' deprecated: true default: null anyOf: - type: array items: $ref: '#/components/schemas/OutcomeAppliesTo' - type: 'null' description: title: Description description: Explain what the outcome means and when it should be used. default: null anyOf: - type: string - type: 'null' name: title: Name description: Displayed to users wherever outcomes can be selected. default: null anyOf: - type: string - type: 'null' type: description: Set to `vm-dropped` if this outcome should be automatically set on calls whenever a team member performs a Voicemail Drop. Otherwise, leave empty or explicitly set to `custom` (default). default: null anyOf: - $ref: '#/components/schemas/OutcomeType' - type: 'null' additionalProperties: false CreateOutcome: title: CreateOutcome type: object properties: applies_to: title: Applies To description: 'Deprecated. This field will be derived from `type` in a future update: `custom` applies to calls and meetings, `vm-dropped` applies to calls only.' deprecated: true default: null anyOf: - type: array items: $ref: '#/components/schemas/OutcomeAppliesTo' - type: 'null' description: title: Description description: Explain what the outcome means and when it should be used. default: null anyOf: - type: string - type: 'null' name: title: Name description: Displayed to users wherever outcomes can be selected. type: string type: description: Set to `vm-dropped` if this outcome should be automatically set on calls whenever a team member performs a Voicemail Drop. Otherwise, leave empty or explicitly set to `custom` (default). default: custom $ref: '#/components/schemas/OutcomeType' required: - name additionalProperties: false Outcome: title: Outcome type: object properties: applies_to: title: Applies To type: array items: $ref: '#/components/schemas/OutcomeAppliesTo' created_by: title: Created By 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 description: title: Description anyOf: - type: string - type: 'null' id: title: ID type: string name: title: Name type: string organization_id: title: Organization ID type: string type: $ref: '#/components/schemas/OutcomeType' updated_by: title: Updated By anyOf: - type: string - type: 'null' required: - applies_to - created_by - date_created - date_updated - description - id - name - organization_id - type - updated_by OutcomeType: title: OutcomeType type: string enum: - vm-dropped - custom OutcomeAppliesTo: title: OutcomeAppliesTo type: string enum: - calls - meetings parameters: FieldsParam: description: Comma-separated list of fields to include in the response. in: query name: _fields required: false schema: type: string 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 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