openapi: 3.2.0 info: title: Infusionsoft Opportunity API license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 version: '1.0' description: 'Operations tagged Opportunity across 7 of this provider''s published API definitions: infusionsoft-keap-sdk-v2-swagger-original.yml, infusionsoft-rest-v1-2025-11-05-openapi-original.json, infusionsoft-rest-v1-openapi-original.json, infusionsoft-rest-v1-openapi.json, infusionsoft-rest-v2-2025-11-05-openapi-original.json, infusionsoft-rest-v2-openapi-original.json, infusionsoft-rest-v2-openapi.json. Each path carries the servers of the definition it was published in.' servers: - url: https://api.keap.com/crm - url: https://api.infusionsoft.com/crm/rest - url: https://api.infusionsoft.com/crm tags: - name: Opportunity paths: /rest/v2/opportunities: get: tags: - Opportunity summary: List Opportunities description: Retrieves a list of all Opportunities. operationId: listOpportunities parameters: - name: fields in: query description: 'Comma-delimited list of optional Opportunities properties to include in the response. Legacy field names are supported for optional fields only if legacy opportunities feature is enabled. Allowed optional values: custom_fields,created_by,last_updated_by,status_id. Allowed legacy optional values: monthly_revenue,order_revenue,objection,status,stage_entrance_time' required: false schema: type: array items: type: string enum: - custom_fields - created_by - last_updated_by - status_id - monthly_revenue - order_revenue - objection - status - stage_entrance_time uniqueItems: true - name: filter in: query description: 'Filter to apply, allowed fields are: - (String) `stage_id` - (String) `user_id` - (String) `contact_id` - (String) `opportunity_title` — supports wildcard prefix search (e.g. `opportunity_title==Deal*`) - (String) `lead_source_name` — supports wildcard prefix search (e.g. `lead_source_name==Web*`) - (String) `affiliate_id` — exact match only (e.g. `affiliate_id==123`) - (String) `opportunity_id` — supports comparison operators: `==`, `>`, `<`, `>=`, `<=` - (String) `ids` — comma-separated list of opportunity IDs (e.g. `ids==1,2,3`), maximum 100 IDs - (String) `contact_phone` — matches the contact''s phone. By default it is an exact match against the stored value, including any formatting characters (e.g. `contact_phone==(480) 123-4567`); it does not normalize or search across an unformatted number. Supports wildcard prefix search for partial matches (e.g. `contact_phone==480*`) - (String) `contact_city` — matches the contact''s city; supports wildcard prefix search (e.g. `contact_city==Chand*`) - (String) `contact_state` — matches the contact''s state; supports wildcard prefix search (e.g. `contact_state==AZ*`) - (String) `projected_revenue_high` — projected revenue high; supports comparison operators: `==`, `>`, `<`, `>=`, `<=` (e.g. `projected_revenue_high>=1000`) - (String) `projected_revenue_low` — projected revenue low; supports comparison operators: `==`, `>`, `<`, `>=`, `<=` (e.g. `projected_revenue_low<=500`) Note: `opportunity_id` and `ids` cannot be used together in the same request. **Custom fields:** opportunities may also be filtered by any custom field defined on the Opportunity record, referenced by its field name (e.g. `cf_priority==10`). Both indexed and non-indexed custom fields are filterable. The supported operator and value depend on the field''s data type: - Text-like fields (Text, Text Area, Name, Email, Website, Phone, Social Security Number) and choice fields with text options (Dropdown, Radio, State) — equals (`==`) and prefix wildcard (e.g. `cf_company==Acme*`) - Numeric fields (Whole Number, Decimal, Currency, Percent, Year, Month, Day of Week, User) — equals and comparison (`==`, `>`, `<`, `>=`, `<=`) - Date and Date/Time fields — equals and comparison; the value must be a full ISO-8601 date-time with milliseconds and a timezone offset (e.g. `cf_renewDate<=2026-01-01T00:00:00.000Z`). Date-only values such as `2026-01-01` are rejected - Yes/No fields — equals only, value `0` (No) or `1` (Yes) - Drilldown fields — equals only, integer value - Multi-select fields (List Box, User List Box) — equals only, matched as a contains search over the stored selections (e.g. `cf_tags==red`) A custom field that does not exist, an operator unsupported for the field''s type, or a value that does not match the field''s type returns `400 Bad Request`. ' required: false schema: type: string - name: order_by in: query description: 'Attribute and direction to opportunities items. One of the following fields: - `next_action_time` - `contact_name` - `opportunity_title` - `created_time` - `update_time` One of the following directions: - `asc` - `desc`' required: false schema: type: string - name: page_size in: query description: Total number of items to return per page required: false schema: type: integer format: int32 maximum: 1000 minimum: 0 example: 0 - name: page_token in: query description: Page token required: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListOpportunitiesResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] post: tags: - Opportunity summary: Create an Opportunity description: Creates a new opportunity as the authenticated user. operationId: createOpportunity parameters: - name: fields in: query description: 'Comma-delimited list of optional Opportunities properties to include in the response. Legacy field names are supported for optional fields only if legacy opportunities feature is enabled. Allowed optional values: custom_fields,created_by,last_updated_by,status_id. Allowed legacy optional values: monthly_revenue,order_revenue,objection,status,stage_entrance_time' required: false schema: type: array items: type: string enum: - custom_fields - created_by - last_updated_by - status_id - monthly_revenue - order_revenue - objection - status - stage_entrance_time uniqueItems: true requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateOpportunityRequest' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/RestV2Opportunity' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] servers: - url: https://api.keap.com/crm /rest/v2/opportunities/stages: get: tags: - Opportunity summary: List of Opportunity Stages description: Retrieves a list of Opportunity Stages. operationId: listOpportunityStages parameters: - name: filter in: query description: 'Filter to apply, allowed fields are: - (String) `opportunity_stage_name` — supports wildcard prefix search (e.g. `opportunity_stage_name==Qualified*`) - (String) `opportunity_stage_id` — supports comparison operators: `==`, `>`, `<`, `>=`, `<=` (e.g. `opportunity_stage_id>5`) ' required: false schema: type: string - name: order_by in: query description: 'Attribute and direction to order stage items. One of the following fields: - `stage_order` One of the following directions: - `asc` - `desc`' required: false schema: type: string - name: page_size in: query description: Total number of items to return per page required: false schema: type: integer format: int32 maximum: 1000 minimum: 0 example: 0 - name: page_token in: query description: Page token required: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListOpportunityStagesResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] post: tags: - Opportunity summary: Create an Opportunity Stage description: Creates a new Opportunity Stage operationId: createOpportunityStage requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateOpportunityStageRequest' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/RestOpportunityStage' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] servers: - url: https://api.keap.com/crm /rest/v2/opportunities/model/customFields: post: tags: - Opportunity summary: Create an Opportunity Custom Field description: Creates a custom field of the specified type and options to the Opportunity object operationId: createOpportunityCustomFields requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateCustomFieldRequest' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/CustomFieldMetaData' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] servers: - url: https://api.keap.com/crm /rest/v2/opportunities/model/customFields/tabs: get: tags: - Opportunity summary: List Opportunity Custom Field Tabs description: Retrieves a list of custom field tabs for the Opportunity record type. operationId: listOpportunityCustomFieldTabs responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListCustomFieldTabsResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] post: tags: - Opportunity summary: Create an Opportunity Custom Field Tab description: Creates a new custom field tab for the Opportunity record type. operationId: createOpportunityCustomFieldTab requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateCustomFieldTabRequest' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/CustomFieldTab' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] servers: - url: https://api.keap.com/crm /rest/v2/opportunities/model/customFields/groups: get: tags: - Opportunity summary: List Opportunity Custom Field Groups description: Retrieves a list of custom field groups for the Opportunity record type. Optionally filter by tab_id to scope to a specific tab. operationId: listOpportunityCustomFieldGroups parameters: - name: tab_id in: query description: Optional tab id to scope groups to a single tab required: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListCustomFieldGroupsResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] post: tags: - Opportunity summary: Create an Opportunity Custom Field Group description: Creates a new custom field group for the Opportunity record type. If `tab_id` is omitted, the group is added to the default 'Custom Fields' tab. operationId: createOpportunityCustomFieldGroup requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateCustomFieldGroupRequest' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/CustomFieldGroup' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] servers: - url: https://api.keap.com/crm /rest/v2/opportunities/{opportunity_id}: get: tags: - Opportunity summary: Retrieve a Opportunity description: Retrieves the specified Opportunity operationId: getOpportunity parameters: - name: opportunity_id in: path required: true schema: type: string - name: fields in: query description: 'Comma-delimited list of optional Opportunities properties to include in the response. Legacy field names are supported for optional fields only if legacy opportunities feature is enabled. Allowed optional values: custom_fields,created_by,last_updated_by,status_id. Allowed legacy optional values: monthly_revenue,order_revenue,objection,status,stage_entrance_time' required: false schema: type: array items: type: string enum: - custom_fields - created_by - last_updated_by - status_id - monthly_revenue - order_revenue - objection - status - stage_entrance_time uniqueItems: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RestV2Opportunity' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] delete: tags: - Opportunity summary: Delete an Opportunity description: Deletes the specified Opportunity operationId: deleteOpportunity parameters: - name: opportunity_id in: path required: true schema: type: string responses: '204': description: No Content '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] patch: tags: - Opportunity summary: Update an opportunity description: Updates specified values of a given opportunity operationId: updateOpportunity parameters: - name: opportunity_id in: path required: true schema: type: string - name: update_mask in: query description: An optional list of properties to be updated. If set, only the provided properties will be updated and others will be skipped. required: false schema: type: array items: type: string enum: - opportunity_title - next_action_time - next_action_notes - opportunity_notes - estimated_close_time - include_in_forecast - projected_revenue_low - projected_revenue_high - contact_id - stage_id - user_id - custom_fields - affiliate_id uniqueItems: true - name: fields in: query description: 'Comma-delimited list of optional Opportunities properties to include in the response. Legacy field names are supported for optional fields only if legacy opportunities feature is enabled. Allowed optional values: custom_fields,created_by,last_updated_by,status_id. Allowed legacy optional values: monthly_revenue,order_revenue,objection,status,stage_entrance_time' required: false schema: type: array items: type: string enum: - custom_fields - created_by - last_updated_by - status_id - monthly_revenue - order_revenue - objection - status - stage_entrance_time uniqueItems: true requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateOpportunityRequestV2' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RestV2Opportunity' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] servers: - url: https://api.keap.com/crm /rest/v2/opportunities/stages/{stage_id}: get: tags: - Opportunity summary: Retrieve an Opportunity Stage description: Retrieves the specified Opportunity Stage operationId: getOpportunityStage parameters: - name: stage_id in: path required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RestOpportunityStage' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] delete: tags: - Opportunity summary: Delete an Opportunity Stage description: Deletes the specified Opportunity Stage operationId: deleteOpportunityStage parameters: - name: stage_id in: path required: true schema: type: string responses: '204': description: No Content '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] patch: tags: - Opportunity summary: Update an Opportunity Stage description: Updates specified values of a given Opportunity Stage operationId: updateOpportunityStage parameters: - name: stage_id in: path required: true schema: type: string - name: update_mask in: query description: An optional list of properties to be updated. If set, only the provided properties will be updated and others will be skipped. required: false schema: type: array items: type: string enum: - name - order - target_number_days - probability - checklist_items uniqueItems: true requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateOpportunityStageRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RestOpportunityStage' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] servers: - url: https://api.keap.com/crm /rest/v2/opportunities/model/customFields/{custom_field_id}: delete: tags: - Opportunity summary: Delete an Opportunity Custom Field description: Deletes a Custom Field from Opportunity. operationId: deleteOpportunitiesCustomField parameters: - name: custom_field_id in: path required: true schema: type: string responses: '204': description: No Content '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] patch: tags: - Opportunity summary: Update a Opportunity's Custom Field description: Updates a custom field of the specified type and options to the Opportunity object. operationId: updateOpportunityCustomField parameters: - name: custom_field_id in: path required: true schema: type: string - name: update_mask in: query description: An optional list of properties to be updated. If set, only the provided properties will be updated and others will be skipped. required: false schema: type: array items: type: string enum: - group_id - label - options uniqueItems: true requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateCustomFieldMetaDataRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CustomFieldMetaData' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] servers: - url: https://api.keap.com/crm /rest/v2/opportunities/model/customFields/tabs/{tab_id}: get: tags: - Opportunity summary: Retrieve an Opportunity Custom Field Tab description: Retrieves a single custom field tab by id for the Opportunity record type. operationId: getOpportunityCustomFieldTab parameters: - name: tab_id in: path required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CustomFieldTab' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] delete: tags: - Opportunity summary: Delete an Opportunity Custom Field Tab description: Deletes a custom field tab. Returns 409 Conflict if the tab still contains groups. operationId: deleteOpportunityCustomFieldTab parameters: - name: tab_id in: path required: true schema: type: string responses: '204': description: No Content '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] patch: tags: - Opportunity summary: Update an Opportunity Custom Field Tab description: Updates an existing custom field tab. Only fields listed in `update_mask` are applied. operationId: updateOpportunityCustomFieldTab parameters: - name: tab_id in: path required: true schema: type: string - name: update_mask in: query description: Comma-separated list of fields to update required: true schema: type: array items: type: string enum: - name - order uniqueItems: true requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateCustomFieldTabRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CustomFieldTab' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] servers: - url: https://api.keap.com/crm /rest/v2/opportunities/model/customFields/groups/{group_id}: get: tags: - Opportunity summary: Retrieve an Opportunity Custom Field Group description: Retrieves a single custom field group by id for the Opportunity record type. operationId: getOpportunityCustomFieldGroup parameters: - name: group_id in: path required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CustomFieldGroup' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] delete: tags: - Opportunity summary: Delete an Opportunity Custom Field Group description: Deletes a custom field group. Returns 409 Conflict if the group still contains custom fields. operationId: deleteOpportunityCustomFieldGroup parameters: - name: group_id in: path required: true schema: type: string responses: '204': description: No Content '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] patch: tags: - Opportunity summary: Update an Opportunity Custom Field Group description: Updates an existing custom field group. Only fields listed in `update_mask` are applied. operationId: updateOpportunityCustomFieldGroup parameters: - name: group_id in: path required: true schema: type: string - name: update_mask in: query description: Comma-separated list of fields to update required: true schema: type: array items: type: string enum: - name - tab_id - order uniqueItems: true requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateCustomFieldGroupRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CustomFieldGroup' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] servers: - url: https://api.keap.com/crm /rest/v2/opportunities/stageMoves: get: tags: - Opportunity summary: List Opportunity Stage Moves description: Returns a paginated list of historical stage-move records. operationId: listOpportunityStageMoves parameters: - name: filter in: query description: 'Filter to apply. Allowed fields: - (Id) `opportunity_id` — supports `==` - (Id) `user_id` — supports `==` Separate multiple filters with semicolons: `opportunity_id==7;user_id==1` ' required: false schema: type: string - name: page_token in: query description: Page token required: false schema: type: string - name: order_by in: query description: 'Field and direction to order results. Supported fields: `move_date`, `id` Directions: `asc` | `desc` Example: `move_date desc` ' required: false schema: type: string - name: page_size in: query description: Total number of items to return per page required: false schema: type: integer format: int32 maximum: 1000 minimum: 0 example: 0 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListOpportunityStageMoveResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] servers: - url: https://api.keap.com/crm /rest/v2/opportunities/stageMoves/{stage_move_id}: get: tags: - Opportunity summary: Retrieve an Opportunity Stage Move description: Retrieves a single historical record of an opportunity being moved from one pipeline stage to another. operationId: getOpportunityStageMove parameters: - name: stage_move_id in: path required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/OpportunityStageMove' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] servers: - url: https://api.keap.com/crm /rest/v2/opportunities/model: get: tags: - Opportunity summary: Retrieve Opportunity Custom Field Model description: Get the custom fields for the Opportunity object operationId: retrieveOpportunityCustomFieldModel responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ObjectModel' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' security: - oauth2: [] servers: - url: https://api.keap.com/crm /v1/opportunities: get: tags: - Opportunity summary: List Opportunities description: 'Retrieves a list of all opportunities. Please note: the sample response erroneously shows properties, such as _stage reasons_, that are unavailable through the list endpoint. Such properties are only available through the retrieve operation. Future versions of the Opportunity resource will correct the oversight.' operationId: listOpportunitiesUsingGET parameters: - name: limit in: query description: Sets a total of items to return schema: type: integer format: int32 example: 0 - name: offset in: query description: Sets a beginning range of items to return schema: type: integer format: int32 example: 0 - name: order in: query description: Attribute to order items by schema: type: string enum: - next_action - opportunity_name - contact_name - date_created - name: search_term in: query description: Returns opportunities that match any of the contact's `given_name`, `family_name`, `company_name`, and `email_addresses` (searches `EMAIL1` only) fields as well as `opportunity_title` schema: type: string - name: stage_id in: query description: Returns opportunities for the provided stage id schema: type: integer format: int64 example: 0 - name: user_id in: query description: Returns opportunities for the provided user id schema: type: integer format: int64 example: 0 responses: '200': description: OK content: application/json: schema: title: OpportunityList type: object properties: count: type: integer format: int32 next: type: string opportunities: type: array items: title: Opportunity required: - contact - opportunity_title - stage type: object properties: affiliate_id: type: integer format: int64 contact: title: OpportunityContact required: - id type: object properties: company_name: type: string email: type: string first_name: type: string id: type: integer format: int64 example: 0 job_title: type: string last_name: type: string phone_number: type: string custom_fields: type: array items: title: CustomFieldValue type: object properties: content: type: object id: type: integer format: int64 date_created: type: string format: date-time estimated_close_date: type: string format: date-time id: type: integer format: int64 include_in_forecast: type: integer format: int32 last_updated: type: string format: date-time next_action_date: type: string format: date-time next_action_notes: type: string opportunity_notes: type: string opportunity_title: type: string projected_revenue_high: type: number format: double projected_revenue_low: type: number format: double stage: title: SimpleOpportunityStage required: - id type: object properties: details: title: StageDetails type: object properties: check_list_items: type: array items: title: CheckListItemDetails type: object properties: description: type: string done_date: type: string format: date-time id: type: integer format: int64 instance_id: type: integer format: int64 item_order: type: integer format: int32 required: type: boolean probability: type: integer format: int32 stage_order: type: integer format: int32 target_num_days: type: integer format: int32 id: type: integer format: int64 example: 0 name: type: string reasons: type: array items: type: string user: title: SimpleUser type: object properties: first_name: type: string id: type: integer format: int64 last_name: type: string previous: type: string '401': description: Unauthorized content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '403': description: Forbidden content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '404': description: Not Found content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '500': description: Internal Server Error content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' deprecated: false put: tags: - Opportunity summary: Replace an Opportunity description: Replaces all values of a given opportunity operationId: updateOpportunityUsingPUT requestBody: description: opportunity content: application/json: schema: title: UpdateOpportunityRequest required: - contact - opportunity_title - stage type: object properties: affiliate_id: type: integer format: int64 contact: title: OpportunityContact required: - id type: object properties: company_name: type: string email: type: string first_name: type: string id: type: integer format: int64 example: 0 job_title: type: string last_name: type: string phone_number: type: string custom_fields: type: array items: title: CustomFieldValue type: object properties: content: type: object id: type: integer format: int64 date_created: type: string format: date-time estimated_close_date: type: string id: type: integer format: int64 include_in_forecast: type: integer format: int32 last_updated: type: string format: date-time next_action_date: type: string next_action_notes: type: string opportunity_notes: type: string opportunity_title: type: string projected_revenue_high: type: number format: double projected_revenue_low: type: number format: double stage: title: SimpleOpportunityStage required: - id type: object properties: details: title: StageDetails type: object properties: check_list_items: type: array items: title: CheckListItemDetails type: object properties: description: type: string done_date: type: string format: date-time id: type: integer format: int64 instance_id: type: integer format: int64 item_order: type: integer format: int32 required: type: boolean probability: type: integer format: int32 stage_order: type: integer format: int32 target_num_days: type: integer format: int32 id: type: integer format: int64 example: 0 name: type: string reasons: type: array items: type: string user: title: SimpleUser type: object properties: first_name: type: string id: type: integer format: int64 last_name: type: string required: false responses: '200': description: OK content: application/json: schema: title: Opportunity required: - contact - opportunity_title - stage type: object properties: affiliate_id: type: integer format: int64 contact: title: OpportunityContact required: - id type: object properties: company_name: type: string email: type: string first_name: type: string id: type: integer format: int64 example: 0 job_title: type: string last_name: type: string phone_number: type: string custom_fields: type: array items: title: CustomFieldValue type: object properties: content: type: object id: type: integer format: int64 date_created: type: string format: date-time estimated_close_date: type: string format: date-time id: type: integer format: int64 include_in_forecast: type: integer format: int32 last_updated: type: string format: date-time next_action_date: type: string format: date-time next_action_notes: type: string opportunity_notes: type: string opportunity_title: type: string projected_revenue_high: type: number format: double projected_revenue_low: type: number format: double stage: title: SimpleOpportunityStage required: - id type: object properties: details: title: StageDetails type: object properties: check_list_items: type: array items: title: CheckListItemDetails type: object properties: description: type: string done_date: type: string format: date-time id: type: integer format: int64 instance_id: type: integer format: int64 item_order: type: integer format: int32 required: type: boolean probability: type: integer format: int32 stage_order: type: integer format: int32 target_num_days: type: integer format: int32 id: type: integer format: int64 example: 0 name: type: string reasons: type: array items: type: string user: title: SimpleUser type: object properties: first_name: type: string id: type: integer format: int64 last_name: type: string '401': description: Unauthorized content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '403': description: Forbidden content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '404': description: Not Found content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '500': description: Internal Server Error content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' deprecated: false x-codegen-request-body-name: opportunity post: tags: - Opportunity summary: Create an Opportunity description: Creates a new opportunity as the authenticated user. operationId: createOpportunityUsingPOST requestBody: description: opportunity content: application/json: schema: title: UpdateOpportunityRequest required: - contact - opportunity_title - stage type: object properties: affiliate_id: type: integer format: int64 contact: title: OpportunityContact required: - id type: object properties: company_name: type: string email: type: string first_name: type: string id: type: integer format: int64 example: 0 job_title: type: string last_name: type: string phone_number: type: string custom_fields: type: array items: title: CustomFieldValue type: object properties: content: type: object id: type: integer format: int64 date_created: type: string format: date-time estimated_close_date: type: string id: type: integer format: int64 include_in_forecast: type: integer format: int32 last_updated: type: string format: date-time next_action_date: type: string next_action_notes: type: string opportunity_notes: type: string opportunity_title: type: string projected_revenue_high: type: number format: double projected_revenue_low: type: number format: double stage: title: SimpleOpportunityStage required: - id type: object properties: details: title: StageDetails type: object properties: check_list_items: type: array items: title: CheckListItemDetails type: object properties: description: type: string done_date: type: string format: date-time id: type: integer format: int64 instance_id: type: integer format: int64 item_order: type: integer format: int32 required: type: boolean probability: type: integer format: int32 stage_order: type: integer format: int32 target_num_days: type: integer format: int32 id: type: integer format: int64 example: 0 name: type: string reasons: type: array items: type: string user: title: SimpleUser type: object properties: first_name: type: string id: type: integer format: int64 last_name: type: string required: false responses: '200': description: OK content: application/json: schema: title: Opportunity required: - contact - opportunity_title - stage type: object properties: affiliate_id: type: integer format: int64 contact: title: OpportunityContact required: - id type: object properties: company_name: type: string email: type: string first_name: type: string id: type: integer format: int64 example: 0 job_title: type: string last_name: type: string phone_number: type: string custom_fields: type: array items: title: CustomFieldValue type: object properties: content: type: object id: type: integer format: int64 date_created: type: string format: date-time estimated_close_date: type: string format: date-time id: type: integer format: int64 include_in_forecast: type: integer format: int32 last_updated: type: string format: date-time next_action_date: type: string format: date-time next_action_notes: type: string opportunity_notes: type: string opportunity_title: type: string projected_revenue_high: type: number format: double projected_revenue_low: type: number format: double stage: title: SimpleOpportunityStage required: - id type: object properties: details: title: StageDetails type: object properties: check_list_items: type: array items: title: CheckListItemDetails type: object properties: description: type: string done_date: type: string format: date-time id: type: integer format: int64 instance_id: type: integer format: int64 item_order: type: integer format: int32 required: type: boolean probability: type: integer format: int32 stage_order: type: integer format: int32 target_num_days: type: integer format: int32 id: type: integer format: int64 example: 0 name: type: string reasons: type: array items: type: string user: title: SimpleUser type: object properties: first_name: type: string id: type: integer format: int64 last_name: type: string '401': description: Unauthorized content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '403': description: Forbidden content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '500': description: Internal Server Error content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' deprecated: false x-codegen-request-body-name: opportunity servers: - url: https://api.infusionsoft.com/crm/rest /v1/opportunities/model: get: tags: - Opportunity summary: Retrieve Opportunity Model description: Get the custom fields for the Opportunity object operationId: retrieveOpportunityModelUsingGET responses: '200': description: OK content: application/json: schema: title: ObjectModel type: object properties: custom_fields: type: array items: title: CustomFieldMetaData type: object properties: default_value: type: string field_name: type: string field_type: type: string enum: - Currency - Date - DateTime - DayOfWeek - Drilldown - Email - Month - ListBox - Name - WholeNumber - DecimalNumber - Percent - PhoneNumber - Radio - Dropdown - SocialSecurityNumber - State - Text - TextArea - User - UserListBox - Website - Year - YesNo id: type: integer format: int64 label: type: string options: type: array items: title: CustomFieldOption type: object properties: id: type: string label: type: string options: type: array items: $ref: '#/components/schemas/CustomFieldOption_2' record_type: type: string enum: - CONTACT - REFERRAL_PARTNER - OPPORTUNITY - TASK_NOTE_APPOINTMENT - COMPANY - ORDER - SUBSCRIPTION optional_properties: type: array items: type: string '401': description: Unauthorized content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '403': description: Forbidden content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '404': description: Not Found content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '500': description: Internal Server Error content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' deprecated: false servers: - url: https://api.infusionsoft.com/crm/rest /v1/opportunities/{opportunityId}: get: tags: - Opportunity summary: Retrieve an Opportunity description: Retrives a single opportunity operationId: getOpportunityUsingGET parameters: - name: opportunityId in: path description: opportunityId required: true schema: type: integer format: int64 - name: optional_properties in: query description: Comma-delimited list of Opportunity properties to include in the response. (Some fields such as `custom_fields` aren't included, by default.) style: form explode: true schema: type: array items: type: string responses: '200': description: OK content: application/json: schema: title: Opportunity required: - contact - opportunity_title - stage type: object properties: affiliate_id: type: integer format: int64 contact: title: OpportunityContact required: - id type: object properties: company_name: type: string email: type: string first_name: type: string id: type: integer format: int64 example: 0 job_title: type: string last_name: type: string phone_number: type: string custom_fields: type: array items: title: CustomFieldValue type: object properties: content: type: object id: type: integer format: int64 date_created: type: string format: date-time estimated_close_date: type: string format: date-time id: type: integer format: int64 include_in_forecast: type: integer format: int32 last_updated: type: string format: date-time next_action_date: type: string format: date-time next_action_notes: type: string opportunity_notes: type: string opportunity_title: type: string projected_revenue_high: type: number format: double projected_revenue_low: type: number format: double stage: title: SimpleOpportunityStage required: - id type: object properties: details: title: StageDetails type: object properties: check_list_items: type: array items: title: CheckListItemDetails type: object properties: description: type: string done_date: type: string format: date-time id: type: integer format: int64 instance_id: type: integer format: int64 item_order: type: integer format: int32 required: type: boolean probability: type: integer format: int32 stage_order: type: integer format: int32 target_num_days: type: integer format: int32 id: type: integer format: int64 example: 0 name: type: string reasons: type: array items: type: string user: title: SimpleUser type: object properties: first_name: type: string id: type: integer format: int64 last_name: type: string '401': description: Unauthorized content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '403': description: Forbidden content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '404': description: Not Found content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '500': description: Internal Server Error content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' deprecated: false patch: tags: - Opportunity summary: Update an Opportunity description: "Updates an opportunity with only the values provided in the request. \n \n*Note:* The POST payload for this request is identical to ['Replace an Opportunity'](https://developer.infusionsoft.com/docs/rest/#operation/updateOpportunityUsingPUT) operation." operationId: updatePropertiesOnOpportunityUsingPATCH parameters: - name: opportunityId in: path description: opportunityId required: true schema: type: integer format: int64 responses: '200': description: OK content: application/json: schema: title: Opportunity required: - contact - opportunity_title - stage type: object properties: affiliate_id: type: integer format: int64 contact: title: OpportunityContact required: - id type: object properties: company_name: type: string email: type: string first_name: type: string id: type: integer format: int64 example: 0 job_title: type: string last_name: type: string phone_number: type: string custom_fields: type: array items: title: CustomFieldValue type: object properties: content: type: object id: type: integer format: int64 date_created: type: string format: date-time estimated_close_date: type: string format: date-time id: type: integer format: int64 include_in_forecast: type: integer format: int32 last_updated: type: string format: date-time next_action_date: type: string format: date-time next_action_notes: type: string opportunity_notes: type: string opportunity_title: type: string projected_revenue_high: type: number format: double projected_revenue_low: type: number format: double stage: title: SimpleOpportunityStage required: - id type: object properties: details: title: StageDetails type: object properties: check_list_items: type: array items: title: CheckListItemDetails type: object properties: description: type: string done_date: type: string format: date-time id: type: integer format: int64 instance_id: type: integer format: int64 item_order: type: integer format: int32 required: type: boolean probability: type: integer format: int32 stage_order: type: integer format: int32 target_num_days: type: integer format: int32 id: type: integer format: int64 example: 0 name: type: string reasons: type: array items: type: string user: title: SimpleUser type: object properties: first_name: type: string id: type: integer format: int64 last_name: type: string '401': description: Unauthorized content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '403': description: Forbidden content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '404': description: Not Found content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '500': description: Internal Server Error content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' deprecated: false servers: - url: https://api.infusionsoft.com/crm/rest /v1/opportunity/stage_pipeline: get: tags: - Opportunity summary: List Opportunity Stage Pipeline description: Retrieves a list of all opportunity stages with pipeline details operationId: listOpportunityStagePipelinesUsingGET responses: '200': description: OK content: application/json: schema: type: array items: title: SalesPipeline type: object properties: end_stage: type: boolean is_default: type: boolean stage_count: type: integer format: int32 stage_id: type: integer format: int64 stage_name: type: string stage_order: type: integer format: int32 '401': description: Unauthorized content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '403': description: Forbidden content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '404': description: Not Found content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '500': description: Internal Server Error content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' deprecated: false servers: - url: https://api.infusionsoft.com/crm/rest /rest/v1/opportunities: get: tags: - Opportunity summary: List Opportunities description: 'Retrieves a list of all opportunities. Please note: the sample response erroneously shows properties, such as _stage reasons_, that are unavailable through the list endpoint. Such properties are only available through the retrieve operation. Future versions of the Opportunity resource will correct the oversight.' operationId: listOpportunities parameters: - name: searchCommand in: query required: true schema: $ref: '#/components/schemas/OpportunitySearchCommand' responses: '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '501': description: Not Implemented content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '406': description: Not Acceptable content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '412': description: Precondition Failed content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '200': description: OK content: application/json: schema: $ref: '#/components/schemas/OpportunityList' security: - oauth2: [] put: tags: - Opportunity summary: Replace an Opportunity description: Replaces all values of a given opportunity operationId: updateOpportunity requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateOpportunityRequest' required: true responses: '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '501': description: Not Implemented content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '406': description: Not Acceptable content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '412': description: Precondition Failed content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Opportunity' security: - oauth2: [] post: tags: - Opportunity summary: Create an Opportunity description: Creates a new opportunity as the authenticated user. operationId: createOpportunity requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateOpportunityRequest' required: true responses: '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '501': description: Not Implemented content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '406': description: Not Acceptable content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '412': description: Precondition Failed content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Opportunity' security: - oauth2: [] servers: - url: https://api.infusionsoft.com/crm /rest/v1/opportunities/{opportunityId}: get: tags: - Opportunity summary: Retrieve an Opportunity description: Retrives a single opportunity operationId: getOpportunity parameters: - name: opportunityId in: path required: true schema: type: integer format: int64 - name: optional_properties in: query description: Comma-delimited list of Opportunity properties to include in the response. (Some fields such as `custom_fields` aren't included, by default.) schema: type: string responses: '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '501': description: Not Implemented content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '406': description: Not Acceptable content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '412': description: Precondition Failed content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Opportunity' security: - oauth2: [] patch: tags: - Opportunity summary: Update an Opportunity description: "Updates an opportunity with only the values provided in the request. \n \n*Note:* The POST payload for this request is identical to ['Replace an Opportunity'](https://developer.infusionsoft.com/docs/rest/#operation/updateOpportunityUsingPUT) operation." operationId: updatePropertiesOnOpportunity parameters: - name: opportunityId in: path required: true schema: type: integer format: int64 responses: '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '501': description: Not Implemented content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '406': description: Not Acceptable content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '412': description: Precondition Failed content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Opportunity' security: - oauth2: [] servers: - url: https://api.infusionsoft.com/crm /rest/v1/opportunity/stage_pipeline: get: tags: - Opportunity summary: List Opportunity Stage Pipeline description: Retrieves a list of all opportunity stages with pipeline details operationId: listOpportunityStagePipelines responses: '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '501': description: Not Implemented content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '406': description: Not Acceptable content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '412': description: Precondition Failed content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/SalesPipeline' security: - oauth2: [] servers: - url: https://api.infusionsoft.com/crm /rest/v1/opportunities/model: get: tags: - Opportunity summary: Retrieve Opportunity Model description: Get the custom fields for the Opportunity object operationId: retrieveOpportunityModel responses: '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '501': description: Not Implemented content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '406': description: Not Acceptable content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '412': description: Precondition Failed content: application/json: schema: $ref: '#/components/schemas/ModelAndView' '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ObjectModel_2' security: - oauth2: [] servers: - url: https://api.infusionsoft.com/crm /v2/opportunities: get: tags: - Opportunity summary: List Opportunities description: Retrieves a list of all Opportunities. operationId: listOpportunitiesUsingGET_1 parameters: - name: fields in: query description: fields style: form explode: true schema: type: array items: type: string - name: filter in: query description: 'Filter to apply, allowed fields are: - (String) `stage_id` - (String) `user_id` ' schema: type: string - name: order_by in: query description: 'Attribute and direction to opportunities items. One of the following fields: - `next_action_time` - `contact_name` - `opportunity_name` - `created_time` One of the following directions: - `asc` - `desc`' schema: type: string - name: page_size in: query description: Total number of items to return per page schema: maximum: 1000 minimum: 1 type: integer format: int32 example: 0 - name: page_token in: query description: Page token schema: type: string responses: '200': description: OK content: application/json: schema: title: ListOpportunitiesResponse type: object properties: next_page_token: type: string opportunities: type: array items: title: RestV2Opportunity required: - contact - opportunity_title - stage type: object properties: affiliate_id: type: string contact: title: OpportunityContact required: - id type: object properties: company_name: type: string email: type: string first_name: type: string id: type: string example: '0' job_title: type: string last_name: type: string phone_number: type: string created_time: type: string custom_fields: type: array items: title: CustomField type: object properties: content: type: object id: type: string estimated_close_time: type: string id: type: string include_in_forecast: type: boolean last_updated_time: type: string next_action_notes: type: string next_action_time: type: string opportunity_notes: type: string opportunity_title: type: string projected_revenue_high: type: number format: double projected_revenue_low: type: number format: double stage: title: OpportunityStage required: - id type: object properties: details: title: StageDetails type: object properties: checklist_items: type: array items: title: CheckListItemDetails type: object properties: description: type: string done_date: type: string format: date-time id: type: integer format: int64 instance_id: type: integer format: int64 item_order: type: integer format: int32 required: type: boolean probability: type: integer format: int32 stage_order: type: integer format: int32 target_num_days: type: integer format: int32 id: type: string example: '0' name: type: string reasons: type: array items: type: string user: title: RestV2User type: object properties: first_name: type: string id: type: string last_name: type: string '401': description: Unauthorized content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '403': description: Forbidden content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '404': description: Not Found content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '500': description: Internal Server Error content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' deprecated: false post: tags: - Opportunity summary: Create an Opportunity description: Creates a new opportunity as the authenticated user. operationId: createOpportunityUsingPOST_1 requestBody: description: opportunity content: application/json: schema: title: CreateOpportunityRequest required: - opportunity_title type: object properties: affiliate_id: type: string contact_id: type: string custom_fields: type: array items: title: CustomField type: object properties: content: type: object id: type: string estimated_close_time: type: string include_in_forecast: type: boolean next_action_notes: type: string next_action_time: type: string opportunity_notes: type: string opportunity_title: type: string projected_revenue_high: type: number format: double projected_revenue_low: type: number format: double stage_id: type: string user_id: type: string required: false responses: '201': description: Created content: application/json: schema: title: RestV2Opportunity required: - contact - opportunity_title - stage type: object properties: affiliate_id: type: string contact: title: OpportunityContact required: - id type: object properties: company_name: type: string email: type: string first_name: type: string id: type: string example: '0' job_title: type: string last_name: type: string phone_number: type: string created_time: type: string custom_fields: type: array items: title: CustomField type: object properties: content: type: object id: type: string estimated_close_time: type: string id: type: string include_in_forecast: type: boolean last_updated_time: type: string next_action_notes: type: string next_action_time: type: string opportunity_notes: type: string opportunity_title: type: string projected_revenue_high: type: number format: double projected_revenue_low: type: number format: double stage: title: OpportunityStage required: - id type: object properties: details: title: StageDetails type: object properties: checklist_items: type: array items: title: CheckListItemDetails type: object properties: description: type: string done_date: type: string format: date-time id: type: integer format: int64 instance_id: type: integer format: int64 item_order: type: integer format: int32 required: type: boolean probability: type: integer format: int32 stage_order: type: integer format: int32 target_num_days: type: integer format: int32 id: type: string example: '0' name: type: string reasons: type: array items: type: string user: title: RestV2User type: object properties: first_name: type: string id: type: string last_name: type: string '401': description: Unauthorized content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '403': description: Forbidden content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '500': description: Internal Server Error content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' deprecated: false x-codegen-request-body-name: opportunity servers: - url: https://api.infusionsoft.com/crm/rest /v2/opportunities/model/customFields: post: tags: - Opportunity summary: Create an Opportunity Custom Field description: Creates a custom field of the specified type and options to the Opportunity object operationId: createOpportunityCustomFieldsUsingPOST requestBody: description: customField content: application/json: schema: title: CreateCustomFieldRequest required: - field_type - label type: object properties: field_type: type: string enum: - CURRENCY - DATE - DATE_TIME - DAY_OF_WEEK - DECIMAL_NUMBER - DRILLDOWN - DROPDOWN - EMAIL - LIST_BOX - MONTH - NAME - PERCENT - PHONE_NUMBER - RADIO - SOCIAL_SECURITY_NUMBER - STATE - TEXT - TEXT_AREA - USER - USER_LIST_BOX - WEBSITE - WHOLE_NUMBER - YEAR - YES_NO group_id: type: string description: An optional tab group to place the field under in the interface. If not specified, will default to the 'Custom Fields' tab. label: type: string options: type: array items: title: CreateCustomFieldOptionRequest type: object properties: label: type: string options: type: array items: $ref: '#/components/schemas/CreateCustomFieldOptionRequest_2' user_group_id: type: string description: An optional user group to choose from when selecting values for User or UserListBox fields. required: true responses: '201': description: Created content: application/json: schema: title: CustomFieldMetaData type: object properties: default_value: type: string field_name: type: string field_type: type: string enum: - CURRENCY - DATE - DATE_TIME - DAY_OF_WEEK - DECIMAL_NUMBER - DRILLDOWN - DROPDOWN - EMAIL - LIST_BOX - MONTH - NAME - PERCENT - PHONE_NUMBER - RADIO - SOCIAL_SECURITY_NUMBER - STATE - TEXT - TEXT_AREA - USER - USER_LIST_BOX - WEBSITE - WHOLE_NUMBER - YEAR - YES_NO group_id: type: string id: type: string label: type: string options: type: array items: title: CustomFieldOption type: object properties: id: type: string label: type: string options: type: array items: $ref: '#/components/schemas/CustomFieldOption_3' record_type: type: string enum: - CONTACT - REFERRAL_PARTNER - OPPORTUNITY - TASK_NOTE_APPOINTMENT - COMPANY - ORDER - SUBSCRIPTION '401': description: Unauthorized content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '403': description: Forbidden content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '500': description: Internal Server Error content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' deprecated: false x-codegen-request-body-name: customField servers: - url: https://api.infusionsoft.com/crm/rest /v2/opportunities/model/customFields/{custom_field_id}: patch: tags: - Opportunity summary: Update a Opportunity's Custom Field description: Updates a custom field of the specified type and options to the Opportunity object. operationId: updateOpportunityCustomFieldUsingPATCH parameters: - name: custom_field_id in: path description: custom_field_id required: true schema: type: string - name: update_mask in: query description: An optional list of properties to be updated. If set, only the provided properties will be updated and others will be skipped. allowEmptyValue: false style: form explode: true schema: type: array items: type: string enum: - group_id - label - options requestBody: description: request content: application/json: schema: title: UpdateCustomFieldMetaDataRequest required: - group_id type: object properties: group_id: type: string label: type: string options: type: array items: title: CustomFieldOption type: object properties: id: type: string label: type: string options: type: array items: $ref: '#/components/schemas/CustomFieldOption_3' required: true responses: '200': description: OK content: application/json: schema: title: CustomFieldMetaData type: object properties: default_value: type: string field_name: type: string field_type: type: string enum: - CURRENCY - DATE - DATE_TIME - DAY_OF_WEEK - DECIMAL_NUMBER - DRILLDOWN - DROPDOWN - EMAIL - LIST_BOX - MONTH - NAME - PERCENT - PHONE_NUMBER - RADIO - SOCIAL_SECURITY_NUMBER - STATE - TEXT - TEXT_AREA - USER - USER_LIST_BOX - WEBSITE - WHOLE_NUMBER - YEAR - YES_NO group_id: type: string id: type: string label: type: string options: type: array items: title: CustomFieldOption type: object properties: id: type: string label: type: string options: type: array items: $ref: '#/components/schemas/CustomFieldOption_3' record_type: type: string enum: - CONTACT - REFERRAL_PARTNER - OPPORTUNITY - TASK_NOTE_APPOINTMENT - COMPANY - ORDER - SUBSCRIPTION '401': description: Unauthorized content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '403': description: Forbidden content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '404': description: Not Found content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '500': description: Internal Server Error content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' deprecated: false x-codegen-request-body-name: request servers: - url: https://api.infusionsoft.com/crm/rest /v2/opportunities/stages: get: tags: - Opportunity summary: List of Opportunity Stages description: Retrieves a list of Opportunity Stages. operationId: listOpportunityStagesUsingGET parameters: - name: filter in: query description: Search filter to apply to results schema: type: string - name: order_by in: query description: 'Attribute and direction to order stage items. One of the following fields: - `stage_order` One of the following directions: - `asc` - `desc`' schema: type: string - name: page_size in: query description: Total number of items to return per page schema: maximum: 1000 minimum: 1 type: integer format: int32 example: 0 - name: page_token in: query description: Page token schema: type: string responses: '200': description: OK content: application/json: schema: title: ListOpportunityStagesResponse type: object properties: next_page_token: type: string stages: type: array items: title: RestOpportunityStage type: object properties: checklist_items: type: array items: title: ChecklistItem type: object properties: description: type: string id: type: string order: type: integer format: int32 required: type: boolean created_time: type: string id: type: string name: type: string order: type: integer format: int32 probability: type: integer format: int32 target_number_days: type: integer format: int32 updated_time: type: string '401': description: Unauthorized content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '403': description: Forbidden content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '404': description: Not Found content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '500': description: Internal Server Error content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' deprecated: false post: tags: - Opportunity summary: Create an Opportunity Stage description: Creates a new Opportunity Stage operationId: createOpportunityStageUsingPOST requestBody: description: opportunity content: application/json: schema: title: CreateOpportunityStageRequest required: - name - order - probability - target_number_days type: object properties: checklist_items: type: array items: title: CreateOpportunityStageChecklistItem required: - description - order - required type: object properties: description: type: string order: type: integer format: int32 required: type: boolean example: false name: type: string example: Won order: type: integer format: int32 probability: type: integer format: int32 target_number_days: type: integer format: int32 required: false responses: '201': description: Created content: application/json: schema: title: RestOpportunityStage type: object properties: checklist_items: type: array items: title: ChecklistItem type: object properties: description: type: string id: type: string order: type: integer format: int32 required: type: boolean created_time: type: string id: type: string name: type: string order: type: integer format: int32 probability: type: integer format: int32 target_number_days: type: integer format: int32 updated_time: type: string '401': description: Unauthorized content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '403': description: Forbidden content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '500': description: Internal Server Error content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' deprecated: false x-codegen-request-body-name: opportunityStage servers: - url: https://api.infusionsoft.com/crm/rest /v2/opportunities/stages/{stage_id}: get: tags: - Opportunity summary: Retrieve an Opportunity Stage description: Retrieves the specified Opportunity Stage operationId: getOpportunityStageUsingGET parameters: - name: stage_id in: path description: stage_id required: true schema: type: string responses: '200': description: OK content: application/json: schema: title: RestOpportunityStage type: object properties: checklist_items: type: array items: title: ChecklistItem type: object properties: description: type: string id: type: string order: type: integer format: int32 required: type: boolean created_time: type: string id: type: string name: type: string order: type: integer format: int32 probability: type: integer format: int32 target_number_days: type: integer format: int32 updated_time: type: string '401': description: Unauthorized content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '403': description: Forbidden content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '404': description: Not Found content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '500': description: Internal Server Error content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' deprecated: false delete: tags: - Opportunity summary: Delete an Opportunity Stage description: Deletes the specified Opportunity Stage operationId: deleteOpportunityStageUsingDELETE parameters: - name: stage_id in: path description: stage_id required: true schema: type: string responses: '204': description: No Content '401': description: Unauthorized content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '403': description: Forbidden content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '404': description: Not Found content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '500': description: Internal Server Error content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' deprecated: false patch: tags: - Opportunity summary: Update an Opportunity Stage description: Updates specified values of a given Opportunity Stage operationId: updateOpportunityStageUsingPATCH parameters: - name: stage_id in: path description: stage_id required: true schema: type: string - name: update_mask in: query description: An optional list of properties to be updated. If set, only the provided properties will be updated and others will be skipped. allowEmptyValue: false style: form explode: true schema: type: array items: type: string enum: - name - order - target_number_days - probability - checklist_items requestBody: description: request content: application/json: schema: title: UpdateOpportunityStageRequest type: object properties: checklist_items: type: array items: title: UpdateOpportunityStageChecklistItem type: object properties: description: type: string id: type: string order: type: integer format: int32 required: type: boolean name: type: string example: Qualified order: type: integer format: int32 probability: type: integer description: must be an integer between 0 and 100. format: int32 example: 2 target_number_days: type: integer description: Value should be >=0. format: int32 required: true responses: '200': description: OK content: application/json: schema: title: RestOpportunityStage type: object properties: checklist_items: type: array items: title: ChecklistItem type: object properties: description: type: string id: type: string order: type: integer format: int32 required: type: boolean created_time: type: string id: type: string name: type: string order: type: integer format: int32 probability: type: integer format: int32 target_number_days: type: integer format: int32 updated_time: type: string '401': description: Unauthorized content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '403': description: Forbidden content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '404': description: Not Found content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '500': description: Internal Server Error content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' deprecated: false x-codegen-request-body-name: request servers: - url: https://api.infusionsoft.com/crm/rest /v2/opportunities/{opportunity_id}: get: tags: - Opportunity summary: Retrieve a Opportunity description: Retrieves the specified Opportunity operationId: getOpportunityUsingGET_1 parameters: - name: opportunity_id in: path description: opportunity_id required: true schema: type: string responses: '200': description: OK content: application/json: schema: title: RestV2Opportunity required: - contact - opportunity_title - stage type: object properties: affiliate_id: type: string contact: title: OpportunityContact required: - id type: object properties: company_name: type: string email: type: string first_name: type: string id: type: string example: '0' job_title: type: string last_name: type: string phone_number: type: string created_time: type: string custom_fields: type: array items: title: CustomField type: object properties: content: type: object id: type: string estimated_close_time: type: string id: type: string include_in_forecast: type: boolean last_updated_time: type: string next_action_notes: type: string next_action_time: type: string opportunity_notes: type: string opportunity_title: type: string projected_revenue_high: type: number format: double projected_revenue_low: type: number format: double stage: title: OpportunityStage required: - id type: object properties: details: title: StageDetails type: object properties: checklist_items: type: array items: title: CheckListItemDetails type: object properties: description: type: string done_date: type: string format: date-time id: type: integer format: int64 instance_id: type: integer format: int64 item_order: type: integer format: int32 required: type: boolean probability: type: integer format: int32 stage_order: type: integer format: int32 target_num_days: type: integer format: int32 id: type: string example: '0' name: type: string reasons: type: array items: type: string user: title: RestV2User type: object properties: first_name: type: string id: type: string last_name: type: string '401': description: Unauthorized content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '403': description: Forbidden content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '404': description: Not Found content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '500': description: Internal Server Error content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' deprecated: false delete: tags: - Opportunity summary: Delete an Opportunity description: Deletes the specified Opportunity operationId: deleteOpportunityUsingDELETE parameters: - name: opportunity_id in: path description: opportunity_id required: true schema: type: string responses: '204': description: No Content '401': description: Unauthorized content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '403': description: Forbidden content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '404': description: Not Found content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '500': description: Internal Server Error content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' deprecated: false patch: tags: - Opportunity summary: Update an opportunity description: Updates specified values of a given opportunity operationId: updateOpportunityUsingPATCH parameters: - name: opportunity_id in: path description: opportunity_id required: true schema: type: string - name: update_mask in: query description: An optional list of properties to be updated. If set, only the provided properties will be updated and others will be skipped. allowEmptyValue: false style: form explode: true schema: type: array items: type: string enum: - opportunity_title - next_action_time - next_action_notes - opportunity_notes - estimated_close_time - include_in_forecast - projected_revenue_low - projected_revenue_high - contact_id - stage_id - user_id - custom_fields - affiliate_id requestBody: description: request content: application/json: schema: title: UpdateOpportunityRequestV2 type: object properties: affiliate_id: type: string contact_id: type: string custom_fields: type: array items: title: CustomField type: object properties: content: type: object id: type: string estimated_close_time: type: string include_in_forecast: type: boolean next_action_notes: type: string next_action_time: type: string opportunity_notes: type: string opportunity_title: type: string projected_revenue_high: type: number format: double projected_revenue_low: type: number format: double stage_id: type: string user_id: type: string required: true responses: '200': description: OK content: application/json: schema: title: RestV2Opportunity required: - contact - opportunity_title - stage type: object properties: affiliate_id: type: string contact: title: OpportunityContact required: - id type: object properties: company_name: type: string email: type: string first_name: type: string id: type: string example: '0' job_title: type: string last_name: type: string phone_number: type: string created_time: type: string custom_fields: type: array items: title: CustomField type: object properties: content: type: object id: type: string estimated_close_time: type: string id: type: string include_in_forecast: type: boolean last_updated_time: type: string next_action_notes: type: string next_action_time: type: string opportunity_notes: type: string opportunity_title: type: string projected_revenue_high: type: number format: double projected_revenue_low: type: number format: double stage: title: OpportunityStage required: - id type: object properties: details: title: StageDetails type: object properties: checklist_items: type: array items: title: CheckListItemDetails type: object properties: description: type: string done_date: type: string format: date-time id: type: integer format: int64 instance_id: type: integer format: int64 item_order: type: integer format: int32 required: type: boolean probability: type: integer format: int32 stage_order: type: integer format: int32 target_num_days: type: integer format: int32 id: type: string example: '0' name: type: string reasons: type: array items: type: string user: title: RestV2User type: object properties: first_name: type: string id: type: string last_name: type: string '401': description: Unauthorized content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '403': description: Forbidden content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '404': description: Not Found content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' '500': description: Internal Server Error content: application/json: schema: title: Error type: object properties: cause: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' deprecated: false x-codegen-request-body-name: request servers: - url: https://api.infusionsoft.com/crm/rest components: schemas: RestV2Opportunity: type: object properties: id: type: string description: Opportunity ID example: 123 contact: $ref: '#/components/schemas/OpportunityContact' stage: $ref: '#/components/schemas/OpportunityStage' user: $ref: '#/components/schemas/RestV2User' opportunity_title: type: string description: Opportunity title example: New Business Deal next_action_time: type: string description: Next action timestamp (ISO-8601) example: '2024-03-20T10:00:00Z' next_action_notes: type: string description: Notes for next action example: Follow up with decision maker opportunity_notes: type: string description: General notes example: High-value prospect from trade show estimated_close_time: type: string description: Estimated close timestamp (ISO-8601) example: '2024-04-15T00:00:00Z' include_in_forecast: type: boolean description: Include in sales forecast example: true projected_revenue_low: type: number format: double description: Low revenue estimate example: 5000 projected_revenue_high: type: number format: double description: High revenue estimate example: 10000 custom_fields: type: array items: $ref: '#/components/schemas/CustomField' created_time: type: string description: Creation timestamp (ISO-8601) example: '2024-01-10T08:00:00Z' last_updated_time: type: string description: Last update timestamp (ISO-8601) example: '2024-03-15T14:30:00Z' affiliate_id: type: string description: Affiliate ID example: 456 lead_source: type: string description: Lead source example: Web Form monthly_revenue: type: number format: double description: Monthly recurring revenue example: 500 order_revenue: type: number format: double description: Order revenue example: 2500 objection: type: string description: Objection reason example: Price status: type: string description: Status name example: Active status_id: type: string description: Status ID example: 123 stage_entrance_time: type: string description: Timestamp when the opportunity entered its current stage (ISO-8601) example: '2024-03-20T10:00:00Z' last_updated_by: type: string description: User who last updated the opportunity record example: 945 created_by: type: string description: User who created the opportunity record example: 852 required: - contact - opportunity_title - stage CustomField: type: object properties: content: {} id: type: string UpdateCustomFieldTabRequest: type: object properties: name: type: string order: type: integer format: int32 OpportunityContact: type: object properties: id: type: string description: Contact ID example: 1001 email: type: string description: Email address example: john.smith@example.com city: type: string description: City example: Chandler state: type: string description: State example: AZ first_name: type: string description: First name example: John last_name: type: string description: Last name example: Smith company_name: type: string description: Company name example: Acme Corp job_title: type: string description: Job title example: Sales Manager phone_number: type: string description: Phone number example: 5551234567 required: - id CreateCustomFieldGroupRequest: type: object properties: name: type: string tab_id: type: string CustomFieldGroup: type: object properties: id: type: string name: type: string order: type: integer format: int32 tab_id: type: string record_type: type: string enum: - CONTACT - REFERRAL_PARTNER - OPPORTUNITY - TASK_NOTE_APPOINTMENT - COMPANY - ORDER - SUBSCRIPTION OpportunityStage: type: object properties: id: type: string description: Stage ID example: 1 name: type: string description: Stage name example: Qualified details: $ref: '#/components/schemas/StageDetails' description: Stage details reasons: type: array description: Stage change reasons items: type: string required: - id ChecklistItem: type: object properties: id: type: string description: Checklist item ID example: 101 description: type: string description: Item description example: Send proposal document required: type: boolean description: Whether item is required example: true order: type: integer format: int32 description: Display order example: 1 CustomFieldOption: type: object properties: id: type: string label: type: string ListCustomFieldTabsResponse: type: object properties: tabs: type: array items: $ref: '#/components/schemas/CustomFieldTab' UpdateOpportunityStageRequest: type: object properties: name: type: string example: Qualified order: type: integer format: int32 probability: type: integer format: int32 description: must be an integer between 0 and 100. example: 2 target_number_days: type: integer format: int32 description: Value should be >=0. checklist_items: type: array items: $ref: '#/components/schemas/UpdateOpportunityStageChecklistItem' ListOpportunityStagesResponse: type: object properties: stages: type: array items: $ref: '#/components/schemas/RestOpportunityStage' next_page_token: type: string UpdateCustomFieldGroupRequest: type: object properties: name: type: string order: type: integer format: int32 tab_id: type: string CustomFieldTab: type: object properties: id: type: string description: The unique identifier of the custom field tab example: 123 name: type: string description: The name of the custom field tab example: Personal Info order: type: integer format: int32 description: The display order of the tab example: 1 record_type: type: string description: The record type this tab belongs to (e.g., CONTACT, COMPANY, OPPORTUNITY, REFERRAL_PARTNER, ORDER, SUBSCRIPTION, TASK_NOTE_APPOINTMENT) enum: - CONTACT - REFERRAL_PARTNER - OPPORTUNITY - TASK_NOTE_APPOINTMENT - COMPANY - ORDER - SUBSCRIPTION example: CONTACT UpdateOpportunityStageChecklistItem: type: object properties: id: type: string description: Checklist item ID example: 101 description: type: string description: Item description example: Review contract terms required: type: boolean description: Whether item is required example: true order: type: integer format: int32 description: Display order position example: 1 required: - description - order - required RestOpportunityStage: type: object properties: id: type: string description: Stage ID example: 1 name: type: string description: Stage name example: Qualified order: type: integer format: int32 description: Stage order in pipeline example: 2 target_number_days: type: integer format: int32 description: Target days in stage example: 14 probability: type: integer format: int32 description: Win probability (0-100) example: 50 created_time: type: string description: Creation timestamp (ISO-8601) example: '2024-01-10T08:00:00Z' updated_time: type: string description: Last update timestamp (ISO-8601) example: '2024-03-15T10:30:00Z' checklist_items: type: array description: Stage checklist items items: $ref: '#/components/schemas/ChecklistItem' Error: type: object properties: code: type: integer format: int32 message: type: string status: type: string details: type: array items: $ref: '#/components/schemas/ErrorDetails' CustomFieldMetaData: type: object description: Metadata describing a custom field, including its type and options properties: id: type: string description: The unique identifier of the custom field example: 123 label: type: string description: The display label of the custom field example: Favorite Color options: type: array description: The list of available options for select/radio/multiselect/drilldown field types items: $ref: '#/components/schemas/CustomFieldOption' record_type: type: string description: The entity type this custom field belongs to (e.g. CONTACT, COMPANY) enum: - CONTACT - REFERRAL_PARTNER - OPPORTUNITY - TASK_NOTE_APPOINTMENT - COMPANY - ORDER - SUBSCRIPTION field_type: type: string description: The data type of the custom field (e.g. Text, Number, Date, Select) enum: - CURRENCY - DATE - DATE_TIME - DAY_OF_WEEK - DECIMAL_NUMBER - DRILLDOWN - DROPDOWN - EMAIL - LIST_BOX - MONTH - NAME - PERCENT - PHONE_NUMBER - RADIO - SOCIAL_SECURITY_NUMBER - STATE - TEXT - TEXT_AREA - USER - USER_LIST_BOX - WEBSITE - WHOLE_NUMBER - YEAR - YES_NO default_value: type: string description: The default value for this custom field, if any group_id: type: string description: The ID of the group this custom field belongs to example: 45 group_name: type: string description: The name of the group this custom field belongs to example: Personal Info field_name: type: string description: The database column name for this custom field. Use this value when filtering contacts (e.g. for field_name 'firstName1', filter with 'firstName1==John'). example: firstName1 CheckListItemDetails: type: object properties: id: type: integer format: int64 description: type: string required: type: boolean instance_id: type: integer format: int64 item_order: type: integer format: int32 done_date: type: string format: date-time CreateCustomFieldOptionRequest: type: object properties: label: type: string StageDetails: type: object properties: probability: type: integer format: int32 description: Win probability (0-100) example: 50 stage_order: type: integer format: int32 description: Stage order in pipeline example: 2 target_num_days: type: integer format: int32 description: Target days in stage example: 14 checklist_items: type: array description: Stage checklist items items: $ref: '#/components/schemas/CheckListItemDetails' ListOpportunitiesResponse: type: object properties: opportunities: type: array items: $ref: '#/components/schemas/RestV2Opportunity' next_page_token: type: string CreateOpportunityStageRequest: type: object description: opportunity properties: name: type: string example: Won order: type: integer format: int32 example: 5 target_number_days: type: integer format: int32 example: 10 minimum: 0 probability: type: integer format: int32 example: 42 maximum: 100 minimum: 0 checklist_items: type: array items: $ref: '#/components/schemas/CreateOpportunityStageChecklistItem' required: - name - order - probability - target_number_days CreateCustomFieldTabRequest: type: object properties: name: type: string CreateOpportunityRequest: type: object description: opportunity properties: opportunity_title: type: string description: Opportunity title example: New Business Deal next_action_time: type: string description: Next action timestamp (ISO-8601) example: '2024-03-20T10:00:00Z' next_action_notes: type: string description: Notes for next action example: Schedule demo call opportunity_notes: type: string description: General notes example: Prospect from website inquiry estimated_close_time: type: string description: Estimated close timestamp (ISO-8601) example: '2024-04-15T00:00:00Z' include_in_forecast: type: boolean description: Include in sales forecast example: true projected_revenue_low: type: number format: double description: Low revenue estimate example: 5000 projected_revenue_high: type: number format: double description: High revenue estimate example: 10000 contact_id: type: string description: Associated contact ID example: 1001 stage_id: type: string description: Pipeline stage ID example: 2 user_id: type: string description: Assigned user ID example: 456 custom_fields: type: array items: $ref: '#/components/schemas/CustomField' affiliate_id: type: string description: Affiliate ID example: 789 required: - contact_id - opportunity_title - stage_id ObjectModel: type: object properties: custom_fields: type: array items: $ref: '#/components/schemas/CustomFieldMetaData' optional_properties: type: array description: These fields are not transmitted by default on this model, but can be requested by specifying them in a comma-separated list in the optional_properties query parameter. items: type: string uniqueItems: true ErrorDetails: type: object properties: domain: type: string resource: type: string CreateOpportunityStageChecklistItem: type: object properties: description: type: string required: type: boolean example: true order: type: integer format: int32 description: Must be Numeric could be negative values as well for ordering examples: - '-2' - '1' required: - description - order - required RestV2User: type: object properties: id: type: string description: User ID example: 456 first_name: type: string description: First name example: Jane last_name: type: string description: Last name example: Doe OpportunityStageMove: type: object description: Historical record of an opportunity moving from one pipeline stage to another properties: id: type: string description: Unique ID of this stage-move record example: 42 opportunity_id: type: string description: ID of the opportunity that was moved example: 7 move_time: type: string description: Date-time when the move occurred (ISO-8601 UTC) example: 2024-03-15T10:30:00.000+0000 move_from_stage_id: type: string description: ID of the stage moved FROM. 0 = no previous stage (first move) example: 3 move_to_stage_id: type: string description: ID of the stage moved TO example: 5 prev_stage_move_time: type: string description: Date-time of the previous stage-move (ISO-8601 UTC). Null if first move. example: 2024-02-10T08:00:00.000+0000 user_id: type: string description: ID of the user associated with this move example: 1 created_by: type: string description: ID of the user who created this record example: 1 create_time: type: string description: Date-time this record was created (ISO-8601 UTC) example: 2024-03-15T10:30:00.000+0000 UpdateOpportunityRequestV2: type: object properties: opportunity_title: type: string description: Opportunity title example: New Business Deal next_action_time: type: string description: Next action timestamp (ISO-8601) example: '2024-03-20T10:00:00Z' next_action_notes: type: string description: Notes for next action example: Schedule demo call opportunity_notes: type: string description: General notes example: Prospect from website inquiry estimated_close_time: type: string description: Estimated close timestamp (ISO-8601) example: '2024-04-15T00:00:00Z' include_in_forecast: type: boolean description: Include in sales forecast example: true projected_revenue_low: type: number format: double description: Low revenue estimate example: 5000 projected_revenue_high: type: number format: double description: High revenue estimate example: 10000 contact_id: type: string description: Associated contact ID example: 1001 stage_id: type: string description: Pipeline stage ID example: 2 user_id: type: string description: Assigned user ID example: 456 custom_fields: type: array items: $ref: '#/components/schemas/CustomField' affiliate_id: type: string description: Affiliate ID example: 789 ListOpportunityStageMoveResponse: type: object properties: stage_moves: type: array items: $ref: '#/components/schemas/OpportunityStageMove' next_page_token: type: string CreateCustomFieldRequest: type: object properties: label: type: string options: type: array items: $ref: '#/components/schemas/CreateCustomFieldOptionRequest' field_type: type: string enum: - CURRENCY - DATE - DATE_TIME - DAY_OF_WEEK - DECIMAL_NUMBER - DRILLDOWN - DROPDOWN - EMAIL - LIST_BOX - MONTH - NAME - PERCENT - PHONE_NUMBER - RADIO - SOCIAL_SECURITY_NUMBER - STATE - TEXT - TEXT_AREA - USER - USER_LIST_BOX - WEBSITE - WHOLE_NUMBER - YEAR - YES_NO group_id: type: string description: An optional tab group to place the field under in the interface. If not specified, will default to the 'Custom Fields' tab. user_group_id: type: string description: An optional user group to choose from when selecting values for User or UserListBox fields. required: - field_type - label UpdateCustomFieldMetaDataRequest: type: object properties: label: type: string options: type: array items: $ref: '#/components/schemas/CustomFieldOption' group_id: type: string required: - group_id ListCustomFieldGroupsResponse: type: object properties: groups: type: array items: $ref: '#/components/schemas/CustomFieldGroup' CustomFieldOption_2: title: CustomFieldOption type: object properties: id: type: string label: type: string options: type: array items: $ref: '#/components/schemas/CustomFieldOption_2' Throwable: title: Throwable type: object properties: cause: $ref: '#/components/schemas/Throwable' localizedMessage: type: string message: type: string stackTrace: type: array items: title: StackTraceElement type: object properties: classLoaderName: type: string className: type: string fileName: type: string lineNumber: type: integer format: int32 methodName: type: string moduleName: type: string moduleVersion: type: string nativeMethod: type: boolean suppressed: type: array items: $ref: '#/components/schemas/Throwable' OpportunityContact_2: type: object properties: id: type: integer format: int64 example: 0 email: type: string city: type: string state: type: string first_name: type: string last_name: type: string company_name: type: string job_title: type: string phone_number: type: string required: - id View: type: object properties: contentType: type: string SimpleOpportunityStage: type: object properties: id: type: integer format: int64 example: 0 name: type: string details: $ref: '#/components/schemas/StageDetails_2' reasons: type: array items: type: string required: - id SalesPipeline: type: object properties: stage_id: type: integer format: int64 stage_name: type: string stage_count: type: integer format: int32 stage_order: type: integer format: int32 end_stage: type: boolean is_default: type: boolean CustomFieldMetaData_2: type: object properties: id: type: integer format: int64 label: type: string options: type: array items: $ref: '#/components/schemas/CustomFieldOption' record_type: type: string enum: - CONTACT - REFERRAL_PARTNER - OPPORTUNITY - TASK_NOTE_APPOINTMENT - COMPANY - ORDER - SUBSCRIPTION field_type: type: string enum: - Currency - Date - DateTime - DayOfWeek - Drilldown - Email - Month - ListBox - Name - WholeNumber - DecimalNumber - Percent - PhoneNumber - Radio - Dropdown - SocialSecurityNumber - State - Text - TextArea - User - UserListBox - Website - Year - YesNo field_name: type: string default_value: type: string SimpleUser: type: object properties: id: type: integer format: int64 first_name: type: string last_name: type: string DefaultHttpStatusCode: allOf: - $ref: '#/components/schemas/HttpStatusCode' ModelAndView: type: object properties: view: $ref: '#/components/schemas/View' model: type: object additionalProperties: {} status: oneOf: - $ref: '#/components/schemas/DefaultHttpStatusCode' - $ref: '#/components/schemas/HttpStatus' modelMap: type: object additionalProperties: {} properties: empty: type: boolean reference: type: boolean empty: type: boolean viewName: type: string HttpStatus: allOf: - $ref: '#/components/schemas/HttpStatusCode' enum: - 100 CONTINUE - 101 SWITCHING_PROTOCOLS - 102 PROCESSING - 103 EARLY_HINTS - 200 OK - 201 CREATED - 202 ACCEPTED - 203 NON_AUTHORITATIVE_INFORMATION - 204 NO_CONTENT - 205 RESET_CONTENT - 206 PARTIAL_CONTENT - 207 MULTI_STATUS - 208 ALREADY_REPORTED - 226 IM_USED - 300 MULTIPLE_CHOICES - 301 MOVED_PERMANENTLY - 302 FOUND - 303 SEE_OTHER - 304 NOT_MODIFIED - 307 TEMPORARY_REDIRECT - 308 PERMANENT_REDIRECT - 400 BAD_REQUEST - 401 UNAUTHORIZED - 402 PAYMENT_REQUIRED - 403 FORBIDDEN - 404 NOT_FOUND - 405 METHOD_NOT_ALLOWED - 406 NOT_ACCEPTABLE - 407 PROXY_AUTHENTICATION_REQUIRED - 408 REQUEST_TIMEOUT - 409 CONFLICT - 410 GONE - 411 LENGTH_REQUIRED - 412 PRECONDITION_FAILED - 413 CONTENT_TOO_LARGE - 413 PAYLOAD_TOO_LARGE - 414 URI_TOO_LONG - 415 UNSUPPORTED_MEDIA_TYPE - 416 REQUESTED_RANGE_NOT_SATISFIABLE - 417 EXPECTATION_FAILED - 418 I_AM_A_TEAPOT - 421 MISDIRECTED_REQUEST - 422 UNPROCESSABLE_CONTENT - 422 UNPROCESSABLE_ENTITY - 423 LOCKED - 424 FAILED_DEPENDENCY - 425 TOO_EARLY - 426 UPGRADE_REQUIRED - 428 PRECONDITION_REQUIRED - 429 TOO_MANY_REQUESTS - 431 REQUEST_HEADER_FIELDS_TOO_LARGE - 451 UNAVAILABLE_FOR_LEGAL_REASONS - 500 INTERNAL_SERVER_ERROR - 501 NOT_IMPLEMENTED - 502 BAD_GATEWAY - 503 SERVICE_UNAVAILABLE - 504 GATEWAY_TIMEOUT - 505 HTTP_VERSION_NOT_SUPPORTED - 506 VARIANT_ALSO_NEGOTIATES - 507 INSUFFICIENT_STORAGE - 508 LOOP_DETECTED - 509 BANDWIDTH_LIMIT_EXCEEDED - 510 NOT_EXTENDED - 511 NETWORK_AUTHENTICATION_REQUIRED Opportunity: type: object properties: id: type: integer format: int64 contact: $ref: '#/components/schemas/OpportunityContact_2' stage: $ref: '#/components/schemas/SimpleOpportunityStage' user: $ref: '#/components/schemas/SimpleUser' opportunity_title: type: string next_action_date: type: string format: date-time next_action_notes: type: string opportunity_notes: type: string estimated_close_date: type: string format: date-time include_in_forecast: type: integer format: int32 projected_revenue_low: type: number format: double projected_revenue_high: type: number format: double custom_fields: type: array items: $ref: '#/components/schemas/CustomFieldValue' date_created: type: string format: date-time last_updated: type: string format: date-time affiliate_id: type: integer format: int64 required: - contact - opportunity_title - stage StageDetails_2: type: object properties: probability: type: integer format: int32 stage_order: type: integer format: int32 target_num_days: type: integer format: int32 check_list_items: type: array items: $ref: '#/components/schemas/CheckListItemDetails' ObjectModel_2: type: object properties: custom_fields: type: array items: $ref: '#/components/schemas/CustomFieldMetaData_2' optional_properties: type: array items: type: string uniqueItems: true OpportunityList: type: object properties: opportunities: type: array items: $ref: '#/components/schemas/Opportunity' count: type: integer format: int32 next: type: string previous: type: string UpdateOpportunityRequest: type: object description: opportunity properties: id: type: integer format: int64 contact: $ref: '#/components/schemas/OpportunityContact_2' stage: $ref: '#/components/schemas/SimpleOpportunityStage' user: $ref: '#/components/schemas/SimpleUser' opportunity_title: type: string next_action_date: type: string next_action_notes: type: string opportunity_notes: type: string estimated_close_date: type: string include_in_forecast: type: integer format: int32 projected_revenue_low: type: number format: double projected_revenue_high: type: number format: double custom_fields: type: array items: $ref: '#/components/schemas/CustomFieldValue' date_created: type: string format: date-time last_updated: type: string format: date-time affiliate_id: type: integer format: int64 required: - contact - opportunity_title - stage OpportunitySearchCommand: type: object properties: limit: type: integer format: int32 offset: type: integer format: int32 user_id: type: integer format: int64 stage_id: type: integer format: int64 search_term: type: string order: type: string enum: - next_action - opportunity_name - contact_name - date_created HttpStatusCode: type: object properties: error: type: boolean is1xxInformational: type: boolean is2xxSuccessful: type: boolean is3xxRedirection: type: boolean is4xxClientError: type: boolean is5xxServerError: type: boolean CustomFieldValue: type: object properties: id: type: integer format: int64 content: {} OpportunityContact_3: type: object properties: id: type: integer format: int64 example: 0 email: type: string city: type: string state: type: string first_name: type: string last_name: type: string company_name: type: string job_title: type: string phone_number: type: string required: - id SimpleOpportunityStage_2: type: object properties: id: type: integer format: int64 example: 0 name: type: string details: $ref: '#/components/schemas/StageDetails_3' reasons: type: array items: type: string required: - id CustomFieldMetaData_3: type: object properties: id: type: integer format: int64 label: type: string options: type: array items: $ref: '#/components/schemas/CustomFieldOption' record_type: type: string enum: - CONTACT - REFERRAL_PARTNER - OPPORTUNITY - TASK_NOTE_APPOINTMENT - COMPANY - ORDER - SUBSCRIPTION field_type: type: string enum: - Currency - Date - DateTime - DayOfWeek - Drilldown - Email - Month - ListBox - Name - WholeNumber - DecimalNumber - Percent - PhoneNumber - Radio - Dropdown - SocialSecurityNumber - State - Text - TextArea - User - UserListBox - Website - Year - YesNo field_name: type: string default_value: type: string Opportunity_2: type: object properties: id: type: integer format: int64 contact: $ref: '#/components/schemas/OpportunityContact_3' stage: $ref: '#/components/schemas/SimpleOpportunityStage_2' user: $ref: '#/components/schemas/SimpleUser' opportunity_title: type: string next_action_date: type: string format: date-time next_action_notes: type: string opportunity_notes: type: string estimated_close_date: type: string format: date-time include_in_forecast: type: integer format: int32 projected_revenue_low: type: number format: double projected_revenue_high: type: number format: double custom_fields: type: array items: $ref: '#/components/schemas/CustomFieldValue' date_created: type: string format: date-time last_updated: type: string format: date-time affiliate_id: type: integer format: int64 required: - contact - opportunity_title - stage StageDetails_3: type: object properties: probability: type: integer format: int32 stage_order: type: integer format: int32 target_num_days: type: integer format: int32 check_list_items: type: array items: $ref: '#/components/schemas/CheckListItemDetails' ObjectModel_3: type: object properties: custom_fields: type: array items: $ref: '#/components/schemas/CustomFieldMetaData_3' optional_properties: type: array items: type: string uniqueItems: true UpdateOpportunityRequest_2: type: object description: opportunity properties: id: type: integer format: int64 contact: $ref: '#/components/schemas/OpportunityContact_3' stage: $ref: '#/components/schemas/SimpleOpportunityStage_2' user: $ref: '#/components/schemas/SimpleUser' opportunity_title: type: string next_action_date: type: string next_action_notes: type: string opportunity_notes: type: string estimated_close_date: type: string include_in_forecast: type: integer format: int32 projected_revenue_low: type: number format: double projected_revenue_high: type: number format: double custom_fields: type: array items: $ref: '#/components/schemas/CustomFieldValue' date_created: type: string format: date-time last_updated: type: string format: date-time affiliate_id: type: integer format: int64 required: - contact - opportunity_title - stage CreateCustomFieldOptionRequest_2: title: CreateCustomFieldOptionRequest type: object properties: label: type: string options: type: array items: $ref: '#/components/schemas/CreateCustomFieldOptionRequest_2' CustomFieldOption_3: title: CustomFieldOption type: object properties: id: type: string label: type: string options: type: array items: $ref: '#/components/schemas/CustomFieldOption_3' securitySchemes: oauth2: type: oauth2 flows: authorizationCode: authorizationUrl: https://accounts.infusionsoft.com/app/oauth/authorize tokenUrl: https://api.infusionsoft.com/token scopes: {} x-refined-from: - infusionsoft-keap-sdk-v2-swagger-original.yml - infusionsoft-rest-v1-2025-11-05-openapi-original.json - infusionsoft-rest-v1-openapi-original.json - infusionsoft-rest-v1-openapi.json - infusionsoft-rest-v2-2025-11-05-openapi-original.json - infusionsoft-rest-v2-openapi-original.json - infusionsoft-rest-v2-openapi.json