Close Opportunities API

The opportunities API from Close — 2 operation(s) for opportunities.

Operations 5

GET /opportunity/ List or filter opportunities #
POST /opportunity/ Create an opportunity #
GET /opportunity/{id}/ Retrieve an opportunity #
PUT /opportunity/{id}/ Update an opportunity #
DELETE /opportunity/{id}/ Delete an opportunity #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/close-opportunities-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

close-opportunities-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Close CRM REST API
  title: Close Opportunities API
  version: 1.0.0
servers:
- url: https://api.close.com/api/v1
security:
- ApiKeyAuth: []
- OAuth2: []
tags:
- name: opportunities
  externalDocs:
    url: https://developer.close.com/api/resources/opportunities
paths:
  /opportunity/:
    get:
      operationId: opportunities_list
      tags:
      - opportunities
      summary: List or filter opportunities
      description: "* All opportunity list responses contain the following aggregate values about all the matching objects (regardless of pagination / limits):\n    * `total_results`: the total number of objects,\n    * `count_by_value_period`: a dictionary containing the number of opportunities by value period, e.g. `{ 'one_time': 2, 'annual': 1, 'monthly': 1 }`,\n    * `total_value_one_time`: the sum of the values of all one time opportunities,\n    * `total_value_monthly`: the sum of the values of all monthly opportunities,\n    * `total_value_annual`: the sum of the values of all annual opportunities,\n    * `total_value_annualized`: the sum of the values of all opportunities where monthly opportunity values are multiplied by 12,\n    * `expected_value_one_time`: the sum of the values of all one time opportunities multiplied by their confidence,\n    * `expected_value_monthly`: the sum of the values of all monthly opportunities multiplied by their confidence,\n    * `expected_value_annual`: the sum of the values of all annual opportunities multiplied by their confidence,\n    * `expected_value_annualized`: the sum of the values of all opportunities multiplied by their confidence where monthly opportunity values are multiplied by 12,\n* `query` is an optional search query filter. Only opportunity properties may be used in the filter. For example, `note:important` will only show opportunities which contain the text `important` in their note. Or, `status_change(old_status:active new_status:won date:yesterday)` will only show opportunities that transitioned from status `active` to status `won` on the previous day.\n* `_order_by` allows: `date_won`, `date_updated`, `date_created`, `confidence`, `user_name`, `value`, `annualized_value`, `annualized_expected_value` (each of them allows descending order by prepending a minus, e.g. `_order_by=-date_won`).\n* `value_period` allows: `one_time`, `monthly`, `annual`.\n* Multiple values for `user_id`, `status_id`, `status_label`, `status_type` and `value_period` can be specified using the *in* operator, e.g. `status_type__in=active,won`.\n* `_group_by` allows: `user_id`, `date_won__week`, `date_won__month`, `date_won__quarter` `date_won__year` to group results by the given criteria.\n\n    When grouping results, the `data` array contains a list of groups instead of objects. A group consists of the following fields:\n    * `key` containing a unique group key,\n    * `objects` containing the list of objects for the given group,\n    * `total_results` containing the number of total objects for the given group,\n    * all aggregate values for the given group,\n    * if grouping by year: `year`, containing the year for the given group,\n    * if grouping by month: `year` and `month`, containing the year and month (1-12) for the given group,\n    * if grouping by quarter: `year` and `quarter`, containing the year and quarter (1-4) for the given group,\n    * if grouping by week: `weekyear` and `week`, containing the ISO week year and ISO week number for the given group,\n    * if grouping by user: `user_id` and `user_name`, containing the user ID and full name of the user for the given group.\n\n    Note that pagination still applies to objects and not groups. The last or first group may be cut off during pagination, therefore `total_results` may not match the length of `objects`. When paginating, the `key` value may be used to combine groups across multiple pages. Sorting using `_order_by` may be applied and sorts the items within each of the groups. Group order can be reversed by prepending a minus. For example,  `_group_by=-date_won__week` will show the most recent weeks first. When grouping by `user_id`, results are ordered by the user's full name.\n* `lead_saved_search_id` is an optional lead Smart View filter.\n* (deprecated) `lead_query` is an optional lead search text-based query filter. This parameter is now deprecated in favor of using the `lead_saved_search_id` Smart View ID parameter."
      parameters:
      - $ref: '#/components/parameters/LimitParam'
      - $ref: '#/components/parameters/SkipParam'
      - $ref: '#/components/parameters/FieldsParam'
      - in: query
        name: lead_id
        required: false
        schema:
          title: Lead ID
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - $ref: '#/components/parameters/ActivityFilters_OrganizationIdParam'
      - in: query
        name: user_id
        required: false
        schema:
          title: User ID
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: user_id__in
        required: false
        schema:
          title: User ID (In)
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: status_id
        required: false
        schema:
          title: Status ID
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: status_id__in
        required: false
        schema:
          title: Status ID (In)
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: status_type
        required: false
        schema:
          title: Status Type
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: status_type__in
        required: false
        schema:
          title: Status Type (In)
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: status_label
        required: false
        schema:
          title: Status Label
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: status_label__in
        required: false
        schema:
          title: Status Label (In)
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: status
        required: false
        schema:
          title: Status
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: status__in
        required: false
        schema:
          title: Status (In)
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: date_won
        required: false
        schema:
          title: Date Won
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: date_won__gte
        required: false
        schema:
          title: Date Won (>=)
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: date_won__gt
        required: false
        schema:
          title: Date Won (>)
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: date_won__lte
        required: false
        schema:
          title: Date Won (<=)
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: date_won__lt
        required: false
        schema:
          title: Date Won (<)
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: date_created
        required: false
        schema:
          title: Date Created
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: date_created__gte
        required: false
        schema:
          title: Date Created (>=)
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: date_created__gt
        required: false
        schema:
          title: Date Created (>)
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: date_created__lte
        required: false
        schema:
          title: Date Created (<=)
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: date_created__lt
        required: false
        schema:
          title: Date Created (<)
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: date_updated
        required: false
        schema:
          title: Date Updated
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: date_updated__gte
        required: false
        schema:
          title: Date Updated (>=)
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: date_updated__gt
        required: false
        schema:
          title: Date Updated (>)
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: date_updated__lte
        required: false
        schema:
          title: Date Updated (<=)
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: date_updated__lt
        required: false
        schema:
          title: Date Updated (<)
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: value_period
        required: false
        schema:
          title: Value Period
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: value_period__in
        required: false
        schema:
          title: Value Period (In)
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: query
        required: false
        schema:
          title: Query
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: lead_query
        required: false
        schema:
          title: Lead Query
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: lead_saved_search_id
        required: false
        schema:
          title: Lead Saved Search ID
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: is_stalled
        required: false
        schema:
          title: Is Stalled
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: _order_by
        required: false
        schema:
          title: Order By
          default: null
          anyOf:
          - type: string
          - type: 'null'
      - in: query
        name: _group_by
        required: false
        schema:
          title: Group By
          default: null
          anyOf:
          - type: string
          - type: 'null'
      responses:
        '200':
          content:
            application/json:
              example:
                count_by_value_period:
                  annual: 1
                  monthly: 1
                  one_time: 1
                data:
                - annualized_expected_value: 225000
                  annualized_value: 300000
                  confidence: 75
                  contact_id: null
                  created_by: null
                  date_created: '2013-02-01T00:54:51.321000+00:00'
                  date_lost: null
                  date_updated: '2013-02-01T00:54:51.321000+00:00'
                  date_won: null
                  expected_value: 225000
                  id: oppo_KXyJj2PT74U1wOPvhBDO37jCC89mmrnoW0DylcDDWrL
                  lead_id: lead_s6vHFTK1TSRoH6otXOexWDO9jM4xyb1kELHDoU7Fdsp
                  lead_name: Bluth Company (Sample Lead)
                  note: Gob's ready to buy a $3,000 suit.
                  note_html: <body><p>Gob's ready to buy a $3,000 suit.</p></body>
                  organization_id: orga_RbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH
                  pipeline_id: pipe_04fC628PVB0HjK2Qq5EqEf
                  pipeline_name: Sales
                  status_id: stat_4ZdiZqcSIkoGVnNOyxiEY58eTGQmFNG3LPlEVQ4V7Nk
                  status_label: Active
                  status_type: active
                  updated_by: null
                  user_id: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA
                  user_name: John Doe
                  value: 300000
                  value_currency: USD
                  value_formatted: $3,000
                  value_period: one_time
                - annualized_expected_value: 37500
                  annualized_value: 50000
                  confidence: 75
                  contact_id: null
                  created_by: null
                  date_created: '2013-02-01T00:54:51.337000+00:00'
                  date_lost: null
                  date_updated: '2013-02-01T00:54:51.337000+00:00'
                  date_won: null
                  expected_value: 37500
                  id: oppo_8eB77gAdf8FMy6GsNHEy84f7uoeEWv55slvUjKQZpJt
                  lead_id: lead_IIDHIStmFcFQZZP0BRe99V1MCoXWz2PGCm6EDmR9v2O
                  lead_name: Wayne Enterprises (Sample Lead)
                  note: Bruce needs new software for the Bat Cave.
                  note_html: <body><p>Bruce needs new software for the Bat Cave.</p></body>
                  organization_id: orga_RbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH
                  pipeline_id: pipe_04fC628PVB0HjK2Qq5EqEf
                  pipeline_name: Sales
                  status_id: stat_4ZdiZqcSIkoGVnNOyxiEY58eTGQmFNG3LPlEVQ4V7Nk
                  status_label: Active
                  status_type: active
                  updated_by: null
                  user_id: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA
                  user_name: John Doe
                  value: 50000
                  value_currency: USD
                  value_formatted: $500
                  value_period: annual
                - annualized_expected_value: 30000
                  annualized_value: 60000
                  confidence: 50
                  contact_id: null
                  created_by: null
                  custom.cf_j0P7kHmgFTZZnYBFtyPSZ3uQw4dpW8xKcW7Krps8atj: https://www.example.com/contract.pdf
                  date_created: '2013-02-01T00:54:51.337000+00:00'
                  date_lost: null
                  date_updated: '2013-02-01T00:54:51.337000+00:00'
                  date_won: null
                  expected_value: 2500
                  id: oppo_klajsdflf8FMy6GsNHEy84f7uoeEWv55slvUjKQZpJt
                  lead_id: lead_IIDHIStmFcFQZZP0BRe99V1MCoXWz2PGCm6EDmR9v2O
                  lead_name: Wayne Enterprises (Sample Lead)
                  note: Bat Cave monthly maintenance cost
                  note_html: <body><p>Bat Cave monthly maintenance cost</p></body>
                  organization_id: orga_RbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH
                  pipeline_id: pipe_04fC628PVB0HjK2Qq5EqEf
                  pipeline_name: Sales
                  status_id: stat_4ZdiZqcSIkoGVnNOyxiEY58eTGQmFNG3LPlEVQ4V7Nk
                  status_label: Active
                  status_type: active
                  updated_by: null
                  user_id: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA
                  user_name: John Doe
                  value: 5000
                  value_currency: USD
                  value_formatted: $50 monthly
                  value_period: monthly
                expected_value_annual: 37500
                expected_value_annual_formatted: $375
                expected_value_annualized: 292500
                expected_value_annualized_formatted: $2,925
                expected_value_monthly: 2500
                expected_value_monthly_formatted: $25
                expected_value_one_time: 225000
                expected_value_one_time_formatted: $2,250
                has_more: false
                total_results: 3
                total_value_annual: 50000
                total_value_annual_formatted: $500
                total_value_annualized: 410000
                total_value_annualized_formatted: $4,100
                total_value_monthly: 5000
                total_value_monthly_formatted: $50
                total_value_one_time: 300000
                total_value_one_time_formatted: $3,000
              schema:
                type: object
                properties:
                  data:
                    items:
                      $ref: '#/components/schemas/Opportunity'
                    type: array
                  has_more:
                    type: boolean
                required:
                - data
                - has_more
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
    post:
      operationId: opportunities_create
      tags:
      - opportunities
      summary: Create an opportunity
      description: 'Create an opportunity, optionally linked to an existing lead.


        **custom.FIELD_ID** (optional): Set custom fields by setting `custom.FIELD_ID` to the field value, where FIELD_ID is the ID of the custom field, e.g.:


        ```json

        { "custom.cf_v6S011I6MqcbVvB2FA5Nk8dr5MkL8sWuCiG8cUleO9c": "value", "custom.cf_8wtBWsdRU2Fur7GDnEeXQ7ra2Vu7R4hG1SNYdiEhh0F": "other value" }

        ```


        If a custom field has `accepts_multiple_values: true`, the entire value will be replaced. For example, given an Opportunity has a Custom Choice Field with value `["A", "B"]`, adding choice `"C"` would mean setting the value to `["A", "B", "C"]`.


        Note that using the `custom` field dict or the `custom.FIELD_NAME` syntax (instead of custom field IDs) is deprecated and will be removed from the API. See [Custom Fields](https://developer.close.com/api/resources/custom-fields) for more details.'
      requestBody:
        content:
          application/json:
            example:
              confidence: 90
              custom.cf_j0P7kHmgFTZZnYBFtyPSZ3uQw4dpW8xKcW7Krps8atj: https://www.example.com/contract.pdf
              lead_id: lead_IIDHIStmFcFQZZP0BRe99V1MCoXWz2PGCm6EDmR9v2O
              note_html: <body><p>i hope this deal closes...</p></body>
              status_id: stat_4ZdiZqcSIkoGVnNOyxiEY58eTGQmFNG3LPlEVQ4V7Nk
              value: 500
              value_period: monthly
            schema:
              $ref: '#/components/schemas/CreateOpportunity'
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                annualized_expected_value: 540000
                annualized_value: 600000
                confidence: 90
                contact_id: null
                created_by: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA
                custom.cf_j0P7kHmgFTZZnYBFtyPSZ3uQw4dpW8xKcW7Krps8atj: https://www.example.com/contract.pdf
                date_created: '2013-02-20T10:11:50.520000+00:00'
                date_lost: null
                date_updated: '2013-02-20T10:11:50.520000+00:00'
                date_won: null
                expected_value: 45000
                id: oppo_bJoqD4QX21AfA2fAGX5HmPQ1EgGoWBannvLj4khIfPH
                lead_id: lead_IIDHIStmFcFQZZP0BRe99V1MCoXWz2PGCm6EDmR9v2O
                lead_name: Wayne Enterprises (Sample Lead)
                note: i hope this deal closes...
                note_html: <body><p>i hope this deal closes...</p></body>
                organization_id: orga_RbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH
                pipeline_id: pipe_04fC628PVB0HjK2Qq5EqEf
                pipeline_name: Sales
                status_id: stat_4ZdiZqcSIkoGVnNOyxiEY58eTGQmFNG3LPlEVQ4V7Nk
                status_label: Active
                status_type: active
                updated_by: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA
                user_id: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA
                user_name: Anthony Nemitz
                value: 50000
                value_currency: USD
                value_formatted: $50 monthly
                value_period: monthly
              schema:
                $ref: '#/components/schemas/Opportunity'
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
  /opportunity/{id}/:
    get:
      operationId: opportunities_get
      tags:
      - opportunities
      summary: Retrieve an opportunity
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/FieldsParam'
      responses:
        '200':
          content:
            application/json:
              example:
                annualized_expected_value: 37500
                annualized_value: 50000
                confidence: 75
                contact_id: null
                created_by: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA
                custom.cf_j0P7kHmgFTZZnYBFtyPSZ3uQw4dpW8xKcW7Krps8atj: https://www.example.com/contract.pdf
                date_created: '2013-02-01T00:54:51.337000+00:00'
                date_lost: null
                date_updated: '2013-02-01T00:54:51.337000+00:00'
                date_won: null
                expected_value: 37500
                id: oppo_8eB77gAdf8FMy6GsNHEy84f7uoeEWv55slvUjKQZpJt
                lead_id: lead_IIDHIStmFcFQZZP0BRe99V1MCoXWz2PGCm6EDmR9v2O
                lead_name: Wayne Enterprises (Sample Lead)
                note: Bruce needs new software for the Bat Cave.
                note_html: <body><p>Bruce needs new software for the Bat Cave.</p></body>
                organization_id: orga_RbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH
                pipeline_id: pipe_04fC628PVB0HjK2Qq5EqEf
                pipeline_name: Sales
                status_id: stat_4ZdiZqcSIkoGVnNOyxiEY58eTGQmFNG3LPlEVQ4V7Nk
                status_label: Active
                status_type: active
                updated_by: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA
                user_id: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA
                user_name: John Doe
                value: 50000
                value_currency: USD
                value_formatted: $500
                value_period: one_time
              schema:
                $ref: '#/components/schemas/Opportunity'
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
    put:
      operationId: opportunities_update
      tags:
      - opportunities
      summary: Update an opportunity
      description: '**custom.FIELD_ID** (optional)


        - See description for `custom.FIELD_ID` in `POST /opportunity/` above.

        - Additionally, you can unset a single field by using `{ "custom.FIELD_ID": null }`, e.g.:

        ```

        { "custom.cf_v6S011I6MqcbVvB2FA5Nk8dr5MkL8sWuCiG8cUleO9c": null }

        ```

        If you''re trying to update a custom field and that custom field accepts multiple values, you can also specify `.add` or `.remove` as part of the field key to add/remove a single value to/from a list of values, e.g.:

        ```

        { "custom.cf_v6S011I6MqcbVvB2FA5Nk8dr5MkL8sWuCiG8cUleO9c.add": "Wednesday" }

        ```'
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            example:
              status_id: stat_5ZdiZqcSIkoGVnNOyxiEY58eTGQmFNG3LPlEVQ4V7Nk
            schema:
              $ref: '#/components/schemas/UpdateOpportunity'
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                annualized_expected_value: 37500
                annualized_value: 50000
                confidence: 75
                contact_id: null
                created_by: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA
                date_created: '2013-02-01T00:54:51.337000+00:00'
                date_lost: null
                date_updated: '2013-02-20T10:06:25.248000+00:00'
                date_won: '2013-02-20'
                expected_value: 37500
                id: oppo_8eB77gAdf8FMy6GsNHEy84f7uoeEWv55slvUjKQZpJt
                lead_id: lead_IIDHIStmFcFQZZP0BRe99V1MCoXWz2PGCm6EDmR9v2O
                lead_name: Wayne Enterprises (Sample Lead)
                note: Bruce needs new software for the Bat Cave.
                note_html: <body><p>Bruce needs new software for the Bat Cave.</p></body>
                organization_id: orga_RbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH
                pipeline_id: pipe_04fC628PVB0HjK2Qq5EqEf
                pipeline_name: Sales
                status_id: stat_5ZdiZqcSIkoGVnNOyxiEY58eTGQmFNG3LPlEVQ4V7Nk
                status_label: Won
                status_type: won
                updated_by: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA
                user_id: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA
                user_name: John Doe
                value: 50000
                value_currency: USD
                value_formatted: $500
                value_period: one_time
              schema:
                $ref: '#/components/schemas/Opportunity'
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
    delete:
      operationId: opportunities_delete
      tags:
      - opportunities
      summary: Delete an opportunity
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
components:
  schemas:
    StalledOpportunityActionTypeV1:
      title: StalledOpportunityActionTypeV1
      type: string
      enum:
      - mark_as_lost
      - change_status
      - follow_up
      - adjust_close_date
      - ask_someone_else_to_reach_out
      - change_communication_method
    Opportunity:
      title: Opportunity
      type: object
      properties:
        annualized_expected_value:
          title: Annualized Expected Value
          anyOf:
          - type: integer
          - type: 'null'
        annualized_value:
          title: Annualized Value
          anyOf:
          - type: integer
          - type: 'null'
        attachments:
          title: Attachments
          type: array
          items:
            $ref: '#/components/schemas/Attachment'
        comment_summary:
          title: Comment Summary
          anyOf:
          - $ref: '#/components/schemas/CommentSummary'
          - type: 'null'
        confidence:
          title: Confidence
          type: integer
        contact_id:
          title: Contact ID
          anyOf:
          - type: string
          - type: 'null'
        contact_name:
          title: Contact Name
          anyOf:
          - type: string
          - type: 'null'
        created_by:
          title: Created By
          anyOf:
          - type: string
          - type: 'null'
        created_by_name:
          title: Created By Name
          anyOf:
          - type: string
          - type: 'null'
        date_created:
          title: Date Created
          type: string
          format: date-time
        date_lost:
          title: Date Lost
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
        date_updated:
          title: Date Updated
          type: string
          format: date-time
        date_won:
          title: Date Won
          anyOf:
          - type: string
            format: date
          - type: 'null'
        expected_value:
          title: Expected Value
          anyOf:
          - type: integer
          - type: 'null'
        id:
          title: ID
          type: string
        integration_links:
          title: Integration Links
          type: array
          items:
            $ref: '#/components/schemas/RenderedIntegrationLink'
        is_stalled:
          title: Is Stalled
          type: boolean
        lead_id:
          title: Lead ID
          type: string
        lead_name:
          title: Lead Name
          anyOf:
          - type: string
          - type: 'null'
        lead_primary_email:
          title: Lead Primary Email
          anyOf:
          - $ref: '#/components/schemas/ContactEmail'
          - type: 'null'
        lead_primary_phone:
          title: Lead Primary Phone
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/ContactPhone'
          - type: 'null'
        note:
          title: Note
          anyOf:
          - type: string
          - type: 'null'
        note_html:
          title: Note Html
          anyOf:
          - type: string
          - type: 'null'
        organization_id:
          title: Organization ID
          type: string
        pipeline_id:
          title: Pipeline ID
          anyOf:
          - type: string
          - type: 'null'
        pipeline_name:
          title: Pipeline Name
          anyOf:
          - type: string
          - type: 'null'
        stall_status:
          title: Stall Status
          anyOf:
          - $ref: '#/components/schemas/StalledOpportunityActionItems'
          - type: 'null'
        status_display_name:
          title: Status Display Name
          type: string
        status_id:
          title: Status ID
          type: string
        status_label:
          title: Status Label
          type: string
        status_type:
          title: Status Type
          $ref: '#/components/schemas/OpportunityStatusType'
        suggested_action:
          title: Suggested Action
          anyOf:
          - $ref: '#/components/schemas/OpportunitySuggestedAction'
          - type: 'null'
        updated_by:
          title: Updated By
          anyOf:
          - type: string
          - type: 'null'
        updated_by_name:
          title: Updated By Name
          anyOf:
          - type: string
          - type: 'null'
        user_id:
          title: User ID
          type: string
        user_name:
          title: User Name
          anyOf:
          - type: string
          - type: 'null'
        value:
          title: Value
          anyOf:
          - type: integer
          - type: 'null'
        value_currency:
          title: Value Currency
          anyOf:
          - type: string
          - type: 'null'
        value_formatted:
          title: Value Formatted
          anyOf:
          - type: string
          - type: 'null'
        value_period:
          $ref: '#/components/schemas/OpportunityValuePeriod'
      required:
      - annualized_expected_value
      - annualized_value
      - confidence
      - contact_id
      - created_by
      - date_created
      - date_lost
      - date_updated
      - date_won
      - expected_value
      - id
      - lead_id
      - note
      - note_html
      - organization_id
      - status_id
      - updated_by
      - user_id
      - value
      - value_period
    OpportunityStatusType:
      title: OpportunityStatusType
      type: string
      enum:
      - won
      - lost
      - active
    OpportunityFollowUpCallActionDetails:
      title: OpportunityFollowUpCa

# --- truncated at 32 KB (45 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/close/refs/heads/main/openapi/close-opportunities-api-openapi.yml