Close website screenshot

Close

Close is an inside-sales CRM with calling, email, SMS, and WhatsApp built in. The Close API exposes leads, contacts, opportunities, tasks, activities (calls, emails, SMS, meetings, notes), pipelines, custom objects, sequences, smart views, scheduling, phone numbers, reporting, and webhooks for sales automation.

28 APIs 10 Features
CRMSales EngagementInside SalesCallingSMSSaaS

APIs

Close Leads API

Manage leads — Close's central CRM object representing a company / account. Includes contacts, opportunities, custom fields, addresses, and status.

Close Contacts API

Manage individual contacts (people) within a lead, including emails, phones, custom fields, and titles.

Close Opportunities API

Manage opportunities (deals) attached to leads, with pipeline stage, value, status, and custom fields.

Close Tasks API

Manage tasks assigned to users with due dates, supporting bulk updates and snooze actions.

Close Activities API

Read and create activities — notes, calls, emails, SMS, WhatsApp, meetings, and custom activity types — that build a lead's timeline.

Close Calls API

Log inbound and outbound calls with duration, direction, recording URLs, transcripts, and disposition outcomes.

Close Emails API

Send and log emails with templates, attachments, and tracking against contacts and leads.

Close SMS API

Send and log SMS and WhatsApp messages, with conversation threading against contacts.

Close Meetings API

Log meeting activities synced from connected Zoom / Microsoft / Calendly accounts, with outcomes and notes.

Close Pipelines & Statuses API

Manage opportunity pipelines and the configurable lead and opportunity statuses driving funnel progression.

Close Custom Fields API

Define and read custom field schemas across leads, contacts, opportunities, activities, and custom objects.

Close Custom Objects API

Define user-defined object types with custom fields for tenant- specific data models.

Close Templates API

Manage email and SMS templates with variable substitution and rendering for outbound messaging.

Close Sequences API

Manage automated multi-step sequences (cadences) and subscriber enrollment with stop conditions.

Close Bulk Actions API

Submit bulk email send / edit / delete / sequence-subscribe jobs that execute as background tasks.

Close Smart Views API

Manage saved search queries (Smart Views) with structured filter grammar across leads, contacts, and opportunities.

Close Exports API

Export leads, opportunities, and activities to CSV asynchronously for downstream analytics.

Close Reporting API

Generate activity reports, funnel analysis, and status-change tracking across the team.

Close Phone Numbers API

Rent and manage Close-provided phone numbers for inbound and outbound calling and SMS.

Close Scheduling Links API

Manage user and shared scheduling links that customers use to book meetings into rep calendars.

Close Connected Accounts API

Manage connected email, Zoom, Microsoft, and Calendly accounts backing the Close calling, email, and meeting integrations.

Close Users API

Manage users (sales reps, managers) and their availability, membership in organizations, and roles.

Close Organizations API

Manage organizations (Close workspaces) including settings, memberships, and inboxes.

Close Roles & Permissions API

Manage roles and permission sets that govern access to leads, activities, and admin functions (Scale plan only).

Close Groups API

Manage user groups for assignment, reporting, and permission scoping.

Close Event Log API

Query the 30-day historical event log of all changes across leads, contacts, opportunities, and activities.

Close Webhooks API

Subscribe to Close events with advanced filtering on event type and object attributes; deliveries include HMAC signatures.

Close OAuth & Apps API

OAuth 2.0 authorization for third-party applications building against Close, plus app registration in the Close Marketplace.

Collections

Pricing Plans

Close Plans Pricing

7 plans

PLANS

Rate Limits

Close Rate Limits

4 limits

RATE LIMITS

FinOps

Close Finops

FINOPS

Features

REST API at https://api.close.com/api/v1/
HTTP Basic auth with API key, plus OAuth 2.0 for marketplace apps
Solo $9/mo, Essentials $35, Growth $99, Scale $139 per seat (annual)
Premium phone numbers $19/mo per line
AI Call Assistant $50/month + $0.02/min
Additional organizations $50/mo (1 included with Growth/Scale)
Per-endpoint-group rate limits; org limits 3x individual key limits
RateLimit header (limit / remaining / reset) on every response
30-day Event Log for change tracking
Webhooks with advanced filtering and HMAC-signed deliveries

Resources

🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
APIReference
APIReference
💰
Pricing
Pricing
🔗
Login
Login
🟢
StatusPage
StatusPage
📰
Blog
Blog
💬
Support
Support
👥
GitHubOrganization
GitHubOrganization
📜
PrivacyPolicy
PrivacyPolicy
📜
TermsOfService
TermsOfService
🔑
Authentication
Authentication
🔗
RateLimits
RateLimits
🔗
Webhooks
Webhooks
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps
🔗
LlmsText
LlmsText

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: API Endpoints
  version: 1.0.0
items:
- info:
    name: subpackage_leads
    type: folder
  items:
  - info:
      name: List Leads
      type: http
    http:
      method: GET
      url: https://api.close.com/api/v1/lead/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: _limit
        value: ''
        type: query
        description: Number of results to return.
      - name: _skip
        value: ''
        type: query
        description: Number of results to skip before returning, for pagination.
      - name: _fields
        value: ''
        type: query
        description: Comma-separated list of fields to include in the response.
    docs: List Leads
  - info:
      name: Create a new lead
      type: http
    http:
      method: POST
      url: https://api.close.com/api/v1/lead/
      headers:
      - name: Authorization
        value: ''
      body:
        type: json
        data: '{}'
    docs: 'Contacts, addresses, and custom fields can all be nested in the lead. Activities, tasks, and opportunities must
      be posted separately.


      **status / status_id** (optional): Post either `status` or `status_id` (but not both). If neither is provided, the organization''s
      default (first) status will be used. Using `status_id` is recommended so that users can rename statuses in the UI without
      breaking your implementation.


      **custom.FIELD_ID** (optional): Set custom fields by setting `custom.FIELD_ID` to '
  - info:
      name: Merge two leads
      type: http
    http:
      method: POST
      url: https://api.close.com/api/v1/lead/merge/
      headers:
      - name: Authorization
        value: ''
      body:
        type: json
        data: '{}'
    docs: For details and definitions of 'source' and 'destination', see the Merge Leads feature in the UI.
  - info:
      name: Get a single Lead
      type: http
    http:
      method: GET
      url: https://api.close.com/api/v1/lead/:id/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: id
        value: ''
        type: path
      - name: _fields
        value: ''
        type: query
        description: Comma-separated list of fields to include in the response.
    docs: Get a single Lead
  - info:
      name: Update an existing lead
      type: http
    http:
      method: PUT
      url: https://api.close.com/api/v1/lead/:id/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: 'Supports non-destructive patches. Nested `contacts` cannot be updated through this endpoint -- use the Contacts
      API instead.


      **status**: See `status` and `status_id` guidance on the create endpoint.


      **custom.FIELD_ID** (optional): See `custom.FIELD_ID` guidance on the create endpoint. You can also unset a single field,
      e.g.:


      ```json

      { "custom.cf_v6S011I6MqcbVvB2FA5Nk8dr5MkL8sWuCiG8cUleO9c": null }

      ```


      If the custom field accepts multiple values, you can specify `.add` or `.remove` as part of'
  - info:
      name: Delete a lead
      type: http
    http:
      method: DELETE
      url: https://api.close.com/api/v1/lead/:id/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: id
        value: ''
        type: path
    docs: Delete a lead
- info:
    name: subpackage_contacts
    type: folder
  items:
  - info:
      name: List contacts
      type: http
    http:
      method: GET
      url: https://api.close.com/api/v1/contact/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: _limit
        value: ''
        type: query
        description: Number of results to return.
      - name: _skip
        value: ''
        type: query
        description: Number of results to skip before returning, for pagination.
      - name: _fields
        value: ''
        type: query
        description: Comma-separated list of fields to include in the response.
      - name: lead_id
        value: ''
        type: query
    docs: List contacts
  - info:
      name: Create a new contact
      type: http
    http:
      method: POST
      url: https://api.close.com/api/v1/contact/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: _fields
        value: ''
        type: query
        description: Comma-separated list of fields to include in the response.
      body:
        type: json
        data: '{}'
    docs: Contacts belong to exactly one Lead (specified by `lead_id`). If you do not provide a `lead_id` then a new lead
      will be created, named after the contact.
  - info:
      name: Fetch a single contact
      type: http
    http:
      method: GET
      url: https://api.close.com/api/v1/contact/:id/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: id
        value: ''
        type: path
      - name: _fields
        value: ''
        type: query
        description: Comma-separated list of fields to include in the response.
    docs: Fetch a single contact
  - info:
      name: Update an existing contact
      type: http
    http:
      method: PUT
      url: https://api.close.com/api/v1/contact/:id/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: id
        value: ''
        type: path
      - name: _fields
        value: ''
        type: query
        description: Comma-separated list of fields to include in the response.
      body:
        type: json
        data: '{}'
    docs: 'Update a contact''s information. If you''re trying to update a custom field and that custom field accepts multiple
      values, you can specify `.add` or `.remove` as part of the field key to add/remove a single value to/from a list of
      values, e.g.:


      ```json

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

      ```


      adds "Wednesday" to the list of values which already exist on the given contact.'
  - info:
      name: Delete a contact
      type: http
    http:
      method: DELETE
      url: https://api.close.com/api/v1/contact/:id/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: id
        value: ''
        type: path
    docs: Delete a contact
- info:
    name: subpackage_opportunities
    type: folder
  items:
  - info:
      name: List or filter opportunities
      type: http
    http:
      method: GET
      url: https://api.close.com/api/v1/opportunity/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: _limit
        value: ''
        type: query
        description: Number of results to return.
      - name: _skip
        value: ''
        type: query
        description: Number of results to skip before returning, for pagination.
      - name: _fields
        value: ''
        type: query
        description: Comma-separated list of fields to include in the response.
      - name: lead_id
        value: ''
        type: query
      - name: organization_id
        value: ''
        type: query
      - name: user_id
        value: ''
        type: query
      - name: user_id__in
        value: ''
        type: query
      - name: status_id
        value: ''
        type: query
      - name: status_id__in
        value: ''
        type: query
      - name: status_type
        value: ''
        type: query
      - name: status_type__in
        value: ''
        type: query
      - name: status_label
        value: ''
        type: query
      - name: status_label__in
        value: ''
        type: query
      - name: status
        value: ''
        type: query
      - name: status__in
        value: ''
        type: query
      - name: date_won
        value: ''
        type: query
      - name: date_won__gte
        value: ''
        type: query
      - name: date_won__gt
        value: ''
        type: query
      - name: date_won__lte
        value: ''
        type: query
      - name: date_won__lt
        value: ''
        type: query
      - name: date_created
        value: ''
        type: query
      - name: date_created__gte
        value: ''
        type: query
      - name: date_created__gt
        value: ''
        type: query
      - name: date_created__lte
        value: ''
        type: query
      - name: date_created__lt
        value: ''
        type: query
      - name: date_updated
        value: ''
        type: query
      - name: date_updated__gte
        value: ''
        type: query
      - name: date_updated__gt
        value: ''
        type: query
      - name: date_updated__lte
        value: ''
        type: query
      - name: date_updated__lt
        value: ''
        type: query
      - name: value_period
        value: ''
        type: query
      - name: value_period__in
        value: ''
        type: query
      - name: query
        value: ''
        type: query
      - name: lead_query
        value: ''
        type: query
      - name: lead_saved_search_id
        value: ''
        type: query
      - name: is_stalled
        value: ''
        type: query
      - name: _order_by
        value: ''
        type: query
      - name: _group_by
        value: ''
        type: query
    docs: "* 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 opport"
  - info:
      name: Create an opportunity
      type: http
    http:
      method: POST
      url: https://api.close.com/api/v1/opportunity/
      headers:
      - name: Authorization
        value: ''
      body:
        type: json
        data: '{}'
    docs: '**lead_id** (optional): Opportunities belong to exactly one Lead. If you do not provide a `lead_id` then a new
      lead will be created (appearing as "Untitled" in the UI).


      **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 `a'
  - info:
      name: Retrieve an opportunity
      type: http
    http:
      method: GET
      url: https://api.close.com/api/v1/opportunity/:id/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: id
        value: ''
        type: path
      - name: _fields
        value: ''
        type: query
        description: Comma-separated list of fields to include in the response.
    docs: Retrieve an opportunity
  - info:
      name: Update an opportunity
      type: http
    http:
      method: PUT
      url: https://api.close.com/api/v1/opportunity/:id/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: '*status_id*


      - See description for `status_id` in `POST /opportunity/` above.

      - Setting the `status_id` to a status with a type of `won` will automatically set the `date_won` field if it is not
      already set or provided in the request. Reverting it from a `won` status to an `active` or `lost` will not automatically
      change `date_won`.


      *date_won* (optional):


      - If not set on the resource or in the request, the `date_won` will be set automatically to today''s date when setting
      `status_id` to a status'
  - info:
      name: Delete an opportunity
      type: http
    http:
      method: DELETE
      url: https://api.close.com/api/v1/opportunity/:id/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: id
        value: ''
        type: path
    docs: Delete an opportunity
- info:
    name: subpackage_tasks
    type: folder
  items:
  - info:
      name: List or filter tasks
      type: http
    http:
      method: GET
      url: https://api.close.com/api/v1/task/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: _limit
        value: ''
        type: query
        description: Number of results to return.
      - name: _skip
        value: ''
        type: query
        description: Number of results to skip before returning, for pagination.
      - name: assigned_to
        value: ''
        type: query
      - name: format
        value: ''
        type: query
      - name: id
        value: ''
        type: query
      - name: id__in
        value: ''
        type: query
      - name: is_complete
        value: ''
        type: query
      - name: lead_id
        value: ''
        type: query
      - name: _order_by
        value: ''
        type: query
      - name: organization_id
        value: ''
        type: query
      - name: _type
        value: ''
        type: query
      - name: _type__in
        value: ''
        type: query
      - name: view
        value: ''
        type: query
      - name: date
        value: ''
        type: query
      - name: date__lt
        value: ''
        type: query
      - name: date__lte
        value: ''
        type: query
      - name: date__gt
        value: ''
        type: query
      - name: date__gte
        value: ''
        type: query
      - name: due_date
        value: ''
        type: query
      - name: due_date__lt
        value: ''
        type: query
      - name: due_date__lte
        value: ''
        type: query
      - name: due_date__gt
        value: ''
        type: query
      - name: due_date__gte
        value: ''
        type: query
      - name: date_created__lt
        value: ''
        type: query
      - name: date_created__lte
        value: ''
        type: query
      - name: date_created__gt
        value: ''
        type: query
      - name: date_created__gte
        value: ''
        type: query
      - name: date_updated__lt
        value: ''
        type: query
      - name: date_updated__lte
        value: ''
        type: query
      - name: date_updated__gt
        value: ''
        type: query
      - name: date_updated__gte
        value: ''
        type: query
      - name: _fields
        value: ''
        type: query
        description: Comma-separated list of fields to include in the response.
    docs: 'The `view` parameter can be used to conveniently access the different task views. It accepts one of the following
      values:


      * `inbox`: Shows incomplete tasks up to the end of the user''s day only (taking the time zone into account).

      * `future`: Shows incomplete tasks starting from the user''s tomorrow only (taking the time zone into account).

      * `archive`: Shows complete tasks only.


      Note that a `view` value of `inbox` or `future` will override any `date__lt` or `date__gte` parameters included in th'
  - info:
      name: Create a task
      type: http
    http:
      method: POST
      url: https://api.close.com/api/v1/task/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: _fields
        value: ''
        type: query
        description: Comma-separated list of fields to include in the response.
      body:
        type: json
        data: '{}'
    docs: Provide the type of task to be created in the `_type` field. Currently only tasks of type `lead` and `outgoing_call`
      can be created.
  - info:
      name: Bulk-update tasks
      type: http
    http:
      method: PUT
      url: https://api.close.com/api/v1/task/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: assigned_to
        value: ''
        type: query
      - name: format
        value: ''
        type: query
      - name: id
        value: ''
        type: query
      - name: id__in
        value: ''
        type: query
      - name: is_complete
        value: ''
        type: query
      - name: lead_id
        value: ''
        type: query
      - name: _order_by
        value: ''
        type: query
      - name: organization_id
        value: ''
        type: query
      - name: _type
        value: ''
        type: query
      - name: _type__in
        value: ''
        type: query
      - name: view
        value: ''
        type: query
      - name: date
        value: ''
        type: query
      - name: date__lt
        value: ''
        type: query
      - name: date__lte
        value: ''
        type: query
      - name: date__gt
        value: ''
        type: query
      - name: date__gte
        value: ''
        type: query
      - name: due_date
        value: ''
        type: query
      - name: due_date__lt
        value: ''
        type: query
      - name: due_date__lte
        value: ''
        type: query
      - name: due_date__gt
        value: ''
        type: query
      - name: due_date__gte
        value: ''
        type: query
      - name: date_created__lt
        value: ''
        type: query
      - name: date_created__lte
        value: ''
        type: query
      - name: date_created__gt
        value: ''
        type: query
      - name: date_created__gte
        value: ''
        type: query
      - name: date_updated__lt
        value: ''
        type: query
      - name: date_updated__lte
        value: ''
        type: query
      - name: date_updated__gt
        value: ''
        type: query
      - name: date_updated__gte
        value: ''
        type: query
      - name: _fields
        value: ''
        type: query
        description: Comma-separated list of fields to include in the response.
      body:
        type: json
        data: '{}'
    docs: 'Any of the filters of the GET endpoint may be used. For example, to update multiple tasks with given IDs A, B and
      C, `id__in=A,B,C` would be passed.


      Only the `assigned_to`, `date` and `is_complete` fields may be updated.'
  - info:
      name: Fetch a task's details
      type: http
    http:
      method: GET
      url: https://api.close.com/api/v1/task/:id/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: id
        value: ''
        type: path
      - name: _fields
        value: ''
        type: query
        description: Comma-separated list of fields to include in the response.
    docs: Fetch a task's details
  - info:
      name: Update a task
      type: http
    http:
      method: PUT
      url: https://api.close.com/api/v1/task/:id/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: id
        value: ''
        type: path
      - name: _fields
        value: ''
        type: query
        description: Comma-separated list of fields to include in the response.
      body:
        type: json
        data: '{}'
    docs: The `assigned_to`, `date` (either a date or a date-time), and `is_complete` fields may be updated on all tasks.
      If the task type is `lead`, the `text` field may also be modified.
  - info:
      name: Delete a task
      type: http
    http:
      method: DELETE
      url: https://api.close.com/api/v1/task/:id/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: id
        value: ''
        type: path
    docs: Delete a task
- info:
    name: subpackage_files
    type: folder
  items:
  - info:
      name: Generate a signed S3 POST
      type: http
    http:
      method: POST
      url: https://api.close.com/api/v1/files/upload/
      headers:
      - name: Authorization
        value: ''
      body:
        type: json
        data: '{}'
    docs: Get the data needed to make a request to S3 to store your file.
- info:
    name: subpackage_customObjects
    type: folder
  items:
  - info:
      name: List Custom Object instances
      type: http
    http:
      method: GET
      url: https://api.close.com/api/v1/custom_object/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: lead_id
        value: ''
        type: query
      - name: custom_object_type_id
        value: ''
        type: query
    docs: 'The `lead_id` parameter is required. If you want to retrieve all Custom Object instances regardless of the lead,
      you will need to use [Advanced Filtering](https://developer.close.com/api/resources/advanced-filtering).


      Custom Fields values appear in the format: `custom.{custom_field_id}`. See [Custom Fields](https://developer.close.com/api/resources/custom-fields/custom-fields-custom-object).


      Back references to each Custom Object are not collected in this response. If you need to access this in'
  - info:
      name: Create a new Custom Object instance
      type: http
    http:
      method: POST
      url: https://api.close.com/api/v1/custom_object/
      headers:
      - name: Authorization
        value: ''
      body:
        type: json
        data: '{}'
    docs: "Custom Field values can be set using the format: `custom.{custom_field_id}`. See [Custom Fields](https://developer.close.com/api/resources/custom-fields/custom-fields-custom-object).\n\
      \nThe following fields are required:\n  - `custom_object_type_id`: The type of Custom Object you are creating determines\
      \ the Custom Fields that can be used.\n  - `lead_id`: The Lead that this Custom Object instance will belong to.\n  -\
      \ `name`: Each Custom Object has a name, used for display."
  - info:
      name: Retrieve a single Custom Object instance
      type: http
    http:
      method: GET
      url: https://api.close.com/api/v1/custom_object/:id/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: id
        value: ''
        type: path
    docs: Retrieve a single Custom Object instance
  - info:
      name: Updating a Custom Object instance
      type: http
    http:
      method: PUT
      url: https://api.close.com/api/v1/custom_object/:id/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: A Custom Object can be updated to add, change or remove any Custom Fields, and to change the `name` property.
  - info:
      name: Delete a Custom Object instance
      type: http
    http:
      method: DELETE
      url: https://api.close.com/api/v1/custom_object/:id/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: id
        value: ''
        type: path
    docs: Delete a Custom Object instance
- info:
    name: subpackage_comments
    type: folder
  items:
  - info:
      name: Fetch multiple comments
      type: http
    http:
      method: GET
      url: https://api.close.com/api/v1/comment/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: thread_id
        value: ''
        type: query
      - name: object_id
        value: ''
        type: query
    docs: Comments may be fetched by `object_id` (the object that was commented on) or by `thread_id`. Exactly one of those
      filters must be provided.
  - info:
      name: Create a Comment
      type: http
    http:
      method: POST
      url: https://api.close.com/api/v1/comment/
      headers:
      - name: Authorization
        value: ''
      body:
        type: json
        data: '{}'
    docs: Create a comment on an object. If a comment thread already exists on that object, a new comment is added to the
      existing thread. If no thread exists yet, one is created automatically.
  - info:
      name: Fetch an individual comment
      type: http
    http:
      method: GET
      url: https://api.close.com/api/v1/comment/:id/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: id
        value: ''
        type: path
    docs: Fetch an individual comment
  - info:
      name: Update a Comment
      type: http
    http:
      method: PUT
      url: https://api.close.com/api/v1/comment/:id/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: You can use this endpoint to edit a comment body. Note that users may only update their own comments.
  - info:
      name: Remove a comment
      type: http
    http:
      method: DELETE
      url: https://api.close.com/api/v1/comment/:id/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: id
        value: ''
        type: path
    docs: 'Note that contrary to the HTTP verb, this does not necessarily _delete_ a comment (but it will _remove_ it). Comments
      bodies are removed, but the comment object still exists until all comments in a thread are removed (at which point the
      entire thread is deleted).


      Permissions around removing comments inherit from the users permission to delete their own or other users'' activities.'
  - info:
      name: Fetch multiple comment threads
      type: http
    http:
      method: GET
      url: https://api.close.com/api/v1/comment_thread/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: _limit
        value: ''
        type: query
        description: Number of results to return.
      - name: _skip
        value: ''
        type: query
        description: Number of results to skip before returning, for pagination.
      - name: ids
        value: ''
        type: query
      - name: object_ids
        value: ''
        type: query
    docs: Fetch multiple comment threads
  - info:
      name: Fetch an individual comment thread
      type: http
    http:
      method: GET
      url: https://api.close.com/api/v1/comment_thread/:id/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: id
        value: ''
        type: path
    docs: Fetch an individual comment thread
- info:
    name: subpackage_activities
    type: folder
  items:
  - info:
      name: List or filter all activity types
      type: http
    http:
      method: GET
      url: https://api.close.com/api/v1/activity/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: _limit
        value: ''
        type: query
        description: Number of results to return.
      - name: _skip
        value: ''
        type: query
        description: Number of results to skip before returning, for pagination.
      - name: id__in
        value: ''
        type: query
        description: Filter by activity IDs (comma-separated)
      - name: lead_id
        value: ''
        type: query
        description: Filter by lead IDs (comma-separated)
      - name: contact_id
        value: ''
        type: query
        description: Filter by contact IDs (comma-separated)
      - name: user_id
        value: ''
        type: query
        description: Filter by user IDs (comma-separated)
      - name: organization_id
        value: ''
        type: query
      - name: _type
        value: ''
        type: query
        description: Filter by activity type, e.g. Call (comma-separated)
      - name: date_created__gte
        value: ''
        type: query
      - name: date_created__lte
        value: ''
        type: query
      - name: date_created__gt
        value: ''
        type: query
      - name: date_created__lt
        value: ''
        type: query
      - name: activity_at__gte
        value: ''
        type: query
      - name: activity_at__lte
        value: ''
        type: query
      - name: activity_at__gt
        value: ''
        type: query
      - name: activity_at__lt
        value: ''
        type: query
      - name: lead_id__in
        value: ''
        type: query
      - name: user_id__in
        value: ''
        type: query
      - name: contact_id__in
        value: ''
        type: query
      - name: _type__in
        value: ''
        type: query
      - name: _fields
        value: ''
        type: query
        description: Comma-separated list of fields to include in the response.
      - name: _order_by
        value: ''
        type: query
    docs: 'To list only a specific activity type (e.g., only `Call` or `LeadStatusChange`), use the other resources listed
      separately. When querying activities for a single lead (using the `lead_id` parameter), you can ask for multiple activity
      types using `_type__in`.


      When listing [Custom Activities](https://developer.close.com/api/resources/activities/custom-activities), `_type` and
      `_type__in` can include Custom Activity Type ids (e.g. `actitype_1h5m6uHM9BZOpwVhyRJb4Y`) to filter by a specific custom
      a'
- info:
    name: subpackage_activitiesNotes
    type: folder
  items:
  - info:
      name: List or filter all Note activities
      type: http
    http:
      method: GET
      url: https://api.close.com/api/v1/activity/note/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: _limit
        value: ''
        type: query
        description: Number of results to return.
      - name: _skip
        value: ''
        type: query
        description: Number of results to skip before returning, for pagination.
      - name: id__in
        value: ''
        type: query
        description: Filter by activity IDs (comma-separated)
      - name: lead_id
        value: ''
        type: query
        description: Filter by lead IDs (comma-separated)
      - name: contact_id
        value: ''
        type: query
        description: Filter by contact IDs (comma-separated)
      - name: user_id
        value: ''
        type: query
        description: Filter by user IDs (comma-separated)
      - name: organization_id
        value: ''
        type: query
      - name: _type
        value: ''
        type: query
        description: Filter by activity type, e.g. Call (comma-separated)
      - name: date_created__gte
        value: ''
        type: query
      - name: date_created__lte
        value: ''
        type: query
      - name: date_created__gt
        value: ''
        type: query
      - name: date_created__lt
        value: ''
        type: query
      - name: activity_at__gte
        value: ''
        type: query
      - name: activity_at__lte
        value: ''
        type: query
      - name: activity_at__gt
        value: ''
        type: query
      - name: activity_at__lt
        value: ''
        type: query
    docs: List or filter all Note activities
  - info:
      name: Create a Note activity
      type: http
    http:
      method: POST
      url: https://api.close.com/api/v1/activity/note/
      headers:
      - name: Authorization
        value: ''
      body:
        type: json
        data: '{}'
    docs: 'To include an attachment, you must first upload the file to Close using the [Files API](https://developer.close.com/api/resources/files).
      Then, add an object to the `attachments` array with the following fields: `url`, `filename` and `content_type`. The
      `url` should be the URL provided in the `download.url` field of the response from the [Files API](https://developer.close.com/api/resources/files).
      It must begin `https://app.close.com/go/file/`.


      A note can be pinned or unpinned by setting the `'
  - info:
      name: Get a single Note activity
      type: http
    http:
      method: GET
      url: https://api.close.com/api/v1/activity/note/:id/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: id
        value: ''
        type: path
    docs: Get a single Note activity
  - info:
      name: Update a Note activity
      type: http
    http:
      method: PUT
      url: https://api.close.com/api/v1/activity/note/:id/
      headers:
      - name: Authorization
        value: ''
      params:
      - name: id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: '**`note_html` and `note`**: setting one overwrites the other. If both are provided, `

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