> For a complete page index, fetch https://developer.close.com/llms.txt

# API Changelog

As we make changes to our API, we'll publish below. Changes to the product itself will be published on [Product Updates](https://www.close.com/changelog).

## Rent a phone number for another user

The [Request an internal phone number](https://developer.close.com/api/resources/phone-numbers/create)
endpoint accepts a new optional `assign_to` field, holding the IDs of the users
the new phone number is assigned to.

When `assign_to` is omitted, the phone number is assigned to the user making
the request, as before. Assigning it to anyone else requires the
**Manage Team Phone Numbers** permission, and every user must be an active
member of the organization who is allowed to make calls.

## `user_id` and `is_group_number` deprecated on phone numbers

The distinction between group and personal phone numbers is being retired.

The `sharing` field on the
[Request an internal phone number](https://developer.close.com/api/resources/phone-numbers/create)
endpoint is deprecated and will be removed in a future update.
It is now optional, and defaults to `personal` if omitted. To
create a group phone number, you must pass `group`.

The `user_id` and `is_group_number` fields on the
[Phone Number API](/api/resources/phone-numbers/list) are deprecated, both as
query filters when listing phone numbers and as fields in
phone number responses. Reading these fields requires no 
changes today. They will be removed in a future update.

To filter phone numbers by user, use the new `participant_user_id` query
parameter, which returns every number the user participates in. Because it
also matches group numbers the user belongs to, it can return more results
than `user_id` did.

## Membership creation security enhancement

As a security precaution, creating a membership through the API now requires
the organization to have **Restrict new users to emails from these domains**
enabled. The new member's email address must belong to one of the organization's
verified domains.

Membership creation now supports API key authentication in addition to OAuth.

See the [Membership API](https://developer.close.com/api/resources/memberships/create) for details.

## Rich text notes on Opportunities

[Opportunities](https://developer.close.com/api/resources/opportunities/list) now support a `note_html` field for
rich text notes, alongside the existing plaintext `note` field.

When you [create](https://developer.close.com/api/resources/opportunities/create) or
update an opportunity:

- Providing `note_html` makes it the source of truth. The plaintext `note` is
  automatically derived from it, overriding any `note` sent in the same request.
- On update, sending `note_html: null` clears both `note_html` and `note`.
- When you send only `note` and the opportunity already has a `note_html`, the
  rich text version is re-derived from the new `note`.

The `note_html` field is always included in opportunity responses (it may be
`null`), but is excluded from CSV and JSON exports.

## Forms API

We have added the [Forms API](/api/resources/forms).

You can now list the forms your team has built in Close and inspect their field definitions,
including field types and select-field choices.

## Playbooks API

We have added a new [Playbooks API](/api/resources/playbooks) for managing
playbooks — reusable templates that standardize how your team conducts calls
and meetings.

## Blocked Phone Numbers API

We have added a new [Blocked Phone Numbers
API](/api/resources/blocked-phone-numbers), which lets you manage a list of
phone numbers that should be blocked from calling or messaging within your
organization.

## OpenAPI Spec now available

We now publish an [OpenAPI spec](https://swagger.io/specification/) for the Close API at:
[https://api.close.com/api/openapi.json](https://api.close.com/api/openapi.json)

This spec is currently considered experimental and does not yet contain 100% coverage of request/response schemas. If you have any feedback or use cases you'd like to share, please let us know by emailing [support@close.com](mailto:support@close.com?Subject=OpenAPI%20Spec).

## `applies_to` field on Outcomes deprecated for write operations

The `applies_to` field on the [Outcome API](/api/resources/outcomes) is now
deprecated on write operations (create and update). In a future update, the
field will be ignored on create and update requests and will instead be derived
from the `type` field:

- When `type` is `custom`, `applies_to` will always be `["calls", "meetings"]`.
- When `type` is `vm-dropped`, `applies_to` will be `["calls"]`.

The `applies_to` field will continue to be returned in read responses. No
changes are needed for integrations that only read this field.

## Form Submissions API

We have added support for
[Form Submissions](https://developer.close.com/api/resources/activities/form-submissions/list) as a new
[activity](https://developer.close.com/api/resources/activities/list) type. Form Submissions are created by the
system whenever someone fills out a Close Form.

We also introduced new events `activity.form_submission.created`,
`activity.form_submission.updated`, and `activity.form_submission.deleted`,
which you can subscribe to using
[webhooks](/api/resources/events).

## Sender field requirements for Email activities

We fixed a bug in the [Email API](https://developer.close.com/api/resources/activities/emails/list) that previously
allowed creating emails without a sender in cases where a sender is required.

The sender field is required for emails with status `inbox`, `scheduled`,
`outbox`, or `error`. It may be omitted in the following cases:

- For `draft`, since the sender can be specified later before sending.
- For `sent`, where it defaults to the email address of the user associated with
  the email or the owner of the API key.

When updating a draft's status to `scheduled` or `outbox`, the sender field is
now required if the email doesn't have one yet.

## Note titles and pinned_at timestamps

You can now set a Note's `title` field when creating or updating a Note via the
[Note API](https://developer.close.com/api/resources/activities/notes/list).

We have also added the `title` and `pinned_at` fields to responses in the
[Note API](https://developer.close.com/api/resources/activities/notes/list).

## Transcription related fields in Meeting API

We have added the `transcripts` field to responses in the
[Meeting API](https://developer.close.com/api/resources/activities/meetings/list).

## Outcome API

We have introduced the [Outcome API](https://developer.close.com/api/resources/outcomes/list) which allows you to
organize & manage outcomes, i.e. standardized results that can be applied to
activities such as calls and meetings.

Outcomes can help sales teams track and categorize the results of their
interactions with prospects and customers.

## Field Enrichment API

We have introduced the [Field Enrichment API](https://developer.close.com/api/resources/field-enrichment/create) that
uses AI to intelligently populate fields on leads and contacts.

## WhatsApp Messages API

We have added support for
[WhatsApp Messages](https://developer.close.com/api/resources/activities/whatsapp/list) as a new activity
type. This allows integration partners to sync WhatsApp messages into Close,
enabling viewing of ongoing WhatsApp conversations within the CRM.

**Important:** WhatsApp messages can only be synced into Close for viewing and
tracking purposes. Close does not send WhatsApp messages directly - actual
sending must be done through WhatsApp apps or other third-party WhatsApp
platforms.

The new API includes:

- Support for syncing inbound and outbound WhatsApp messages
- File attachment capabilities (up to 25MB total per message)
- Integration links to connect back to external systems
- Thread support via the `response_to_id` field to track message replies

We also introduced new events `activity.whatsapp_message.created`,
`activity.whatsapp_message.updated`, and `activity.whatsapp_message.deleted`,
which you can subscribe to using
[webhooks](/api/resources/events).

## lead_id is now optional when creating a Contact or Opportunity

We have added the ability to [create a contact](https://developer.close.com/api/resources/contacts/create) without
specifying an existing lead_id. Doing so will create a new
[lead](https://developer.close.com/api/resources/leads/list), named after the contact, and associate the new
contact with this new lead.

We have also added the ability to
[create an opportunity](https://developer.close.com/api/resources/opportunities/create) without specifying an
existing lead_id. Doing so will create a new [lead](https://developer.close.com/api/resources/leads/list) with no
name (it will appear in the Close UI as "Untitled"), and associate the new
opportunity with this new lead.

This allows integrations to create contacts and opportunities without needing to
create leads first.

## Updating Webhook Subscriptions

We have updated the [Webhook Subscription](https://developer.close.com/api/resources/webhooks/list)
`PUT` endpoint to accept additional parameters. You can now update existing
subscriptions with a new `url`, a new list of `events` to subscribe to, and a
`verify_ssl` parameter to control if SSL is verified at the destination URL.

## record_calls field on memberships deprecated

The boolean record_calls field on the
[Membership API](https://developer.close.com/api/resources/memberships/bulk-update) has been deprecated in favor of
`auto_record_calls`, an enum field with the initial value of `'unset'` for a new
membership, and which can be updated to `'enabled'` or `'disabled'` to control
whether calls are automatically recorded or not.

## Date format in CSV Exports

We have updated the [Export API](https://developer.close.com/api/resources/exports/list) with a new `date_format`
parameter to control the format of date objects in CSV exports.

_Showing the 20 most recent of 82 entries. Append `/llms.txt` to the changelog URL for the complete index._