Close Memberships API

The memberships API from Close — 3 operation(s) for memberships.

Operations 6

POST /membership/ Create a membership #
PUT /membership/ Bulk update memberships #
PUT /membership/{id}/ Update a membership #
DELETE /membership/{id}/ Delete a membership #
GET /membership/{id}/pinned_views/ Get pinned views for a membership #
PUT /membership/{id}/pinned_views/ Update pinned views for a membership #

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-memberships-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-memberships-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Close CRM REST API
  title: Close Memberships API
  version: 1.0.0
servers:
- url: https://api.close.com/api/v1
security:
- ApiKeyAuth: []
- OAuth2: []
tags:
- name: memberships
  externalDocs:
    url: https://developer.close.com/api/resources/memberships
paths:
  /membership/:
    post:
      operationId: memberships_create
      tags:
      - memberships
      summary: Create a membership
      description: 'Ensures an active membership for the given email will be provisioned.


        - If the user already exists, they will be added to the requestor''s organization.

        - If it doesn''t exist, a new user will be provisioned.


        This request requires "Manage Organization" permissions.


        As a security precaution, this operation requires the organization to have the

        "Restrict new users to emails from these domains" setting enabled, and the new

        member''s email address must belong to one of its verified domains.'
      requestBody:
        content:
          application/json:
            example:
              email: john@salesteam.com
              role_id: user
            schema:
              $ref: '#/components/schemas/CreateMembership'
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                auto_record_calls: unset
                default_caller_id: null
                hangup_recording_url: null
                id: memb_JPCqDJq0AmoZFhemXAWrWk9327DqfJgUF2VGPMOL4Lp
                is_free: false
                may_workflows_impersonate: false
                onboarding_status: in-progress
                organization_id: orga_RbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH
                permissions_granted:
                - bulk_email
                - bulk_import
                - bulk_sequence_subscriptions
                - calling
                - delete_leads
                - delete_own_activities
                - delete_own_opportunities
                - delete_own_tasks
                - manage_others_activities
                - manage_others_opportunities
                - manage_others_tasks
                - merge_leads
                - view_all_leads
                primary_personal_number: null
                role: user
                role_id: user
                track_email_opens: true
                user_id: user_N6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA
          description: Successful response
        '400':
          description: Invalid membership data, including an email address that does not belong to one of the organization's verified domains.
        '401':
          description: Unauthorized
        '403':
          description: Membership creation is not permitted because the requestor cannot manage the organization, the verified domain restriction is disabled, or the requested role grants the `manage_organization` permission.
        '404':
          description: Not found
    put:
      operationId: memberships_bulk_update
      tags:
      - memberships
      summary: Bulk update memberships
      description: 'Any field that can be updated on a membership individually can also be used to bulk update multiple memberships. Pass the comma-separated ids of the memberships to update into `id__in` in `_params`. For example:


        ```json

        {"_params": {"id__in": "memb_A,memb_B"}, "role_id": "role_y6eLquXvRUdmwqi61tsmgCJUU7uGfxaRbDuLoONZL9p"}

        ```'
      requestBody:
        content:
          application/json:
            example:
              role_id: role_y6eLquXvRUdmwqi61tsmgCJUU7uGfxaRbDuLoONZL9p
            schema:
              $ref: '#/components/schemas/Membership'
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                count: 2
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
  /membership/{id}/:
    put:
      operationId: memberships_update
      tags:
      - memberships
      summary: Update a membership
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            example:
              auto_record_calls: enabled
              role_id: role_y6eLquXvRUdmwqi61tsmgCJUU7uGfxaRbDuLoONZL9p
            schema:
              $ref: '#/components/schemas/Membership'
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                auto_record_calls: enabled
                id: memb_SLfZq4IU5E2nBA3PBzHFsi1HUv98cPmGUIZGlWK7Z3y
                organization_id: orga_RbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH
                permissions_granted:
                - bulk_delete
                - bulk_edit
                - export
                - manage_customizations
                - manage_group_numbers
                - manage_organization
                - manage_team_smart_views
                plan_type: enterprise
                primary_personal_number: phon_nm67bxYRTJUZNOXflc1I3bBadd0PbQvvui1byxCwK7k
                role_id: role_y6eLquXvRUdmwqi61tsmgCJUU7uGfxaRbDuLoONZL9p
                user_id: user_A3HwmEOcDLL8ilFx8QKcYEuKDtRPtBuQ68PctqwMqtP
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
    delete:
      operationId: memberships_delete
      tags:
      - memberships
      summary: Delete a membership
      description: Deactivates a membership, removing the user from the associated organization.
      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
  /membership/{id}/pinned_views/:
    get:
      operationId: memberships_get_pinned_views
      tags:
      - memberships
      summary: Get pinned views for a membership
      description: Get the ordered list of pinned views for the given membership.
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              example:
                saved_view_ids:
                - save_LCt6QxYsDbdJfMiIkLjBFJBkJTwS9TufXu3nSkHopXM
                - save_Ova4RKAzzFWejVEMUpDBFzB4YV3ObgCJUY1TpDK0ZGa
                - save_Ova689zHHpAVwvHthafS1NOatGFYsBGtyKxFt7Ujg7t
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
    put:
      operationId: memberships_update_pinned_views
      tags:
      - memberships
      summary: Update pinned views for a membership
      description: Set the pinned views for the given membership. Provide an ordered list that will overwrite the entire current list.
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            example:
              saved_view_ids:
              - save_LCt6QxYsDbdJfMiIkLjBFJBkJTwS9TufXu3nSkHopXM
              - save_Ova4RKAzzFWejVEMUpDBFzB4YV3ObgCJUY1TpDK0ZGa
              - save_Ova689zHHpAVwvHthafS1NOatGFYsBGtyKxFt7Ujg7t
            schema:
              $ref: '#/components/schemas/SetPinnedSavedView'
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                saved_view_ids:
                - save_LCt6QxYsDbdJfMiIkLjBFJBkJTwS9TufXu3nSkHopXM
                - save_Ova4RKAzzFWejVEMUpDBFzB4YV3ObgCJUY1TpDK0ZGa
                - save_Ova689zHHpAVwvHthafS1NOatGFYsBGtyKxFt7Ujg7t
          description: Successful response
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
components:
  schemas:
    CreateMembership:
      title: CreateMembership
      type: object
      properties:
        email:
          title: Email
          type: string
          format: email
        role_id:
          title: Role ID
          description: One of `superuser`, `user`, or `restricteduser` for the corresponding predefined role, or the ID of a custom [Role](https://developer.close.com/api/resources/roles). The role must not grant the `manage_organization` permission.
          type: string
          minLength: 1
      required:
      - email
      - role_id
      additionalProperties: false
    Membership:
      title: Membership
      description: Editable settings for an organization membership.
      type: object
      properties:
        auto_record_calls:
          description: Whether this member's calls are automatically recorded. Starts as `unset` and can be set to `enabled` or `disabled`.
          $ref: '#/components/schemas/AutoRecordCalls'
        default_caller_id:
          title: Default Caller ID
          description: ID of the phone number to use as this member's default outbound caller ID.
          anyOf:
          - type: string
          - type: 'null'
        hangup_recording_url:
          title: Hangup Recording URL
          description: URL of the audio file used as this member's voicemail drop recording.
          anyOf:
          - type: string
          - type: 'null'
        may_workflows_impersonate:
          title: May Workflows Impersonate
          description: Whether Workflows may send emails on this member's behalf.
          type: boolean
        role_id:
          title: Role ID
          description: One of `admin`, `superuser`, `user`, or `restricteduser` for the corresponding predefined role, or the ID of a custom [Role](https://developer.close.com/api/resources/roles).
          type: string
        track_email_opens:
          title: Track Email Opens
          description: Whether email opens are tracked for emails this member sends.
          type: boolean
      additionalProperties: false
    AutoRecordCalls:
      title: AutoRecordCalls
      type: string
      enum:
      - enabled
      - disabled
      - unset
    SetPinnedSavedView:
      title: SetPinnedSavedView
      type: object
      properties:
        saved_view_ids:
          title: Saved View IDs
          type: array
          items:
            type: string
      required:
      - saved_view_ids
      additionalProperties: false
  securitySchemes:
    ApiKeyAuth:
      description: Use your API key as the username and leave the password empty.
      scheme: basic
      type: http
    OAuth2:
      flows:
        authorizationCode:
          authorizationUrl: https://app.close.com/oauth2/authorize/
          scopes:
            all.full_access: Full access to all resources
            offline_access: Request a refresh token
          tokenUrl: https://api.close.com/oauth2/token/
      type: oauth2