Supaglue Lists API

The `List` Object represents a collection of CRM records.

OpenAPI Specification

supaglue-lists-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  version: 0.25.7
  title: Unified CRM Accounts Lists API
  contact:
    name: Supaglue
    email: docs@supaglue.com
    url: https://supaglue.com
  description: '#### Introduction


    Welcome to the Unified API (CRM) documentation. You can use this API to write to multiple third-party providers within the CRM category.


    [View common schema for CRM](https://docs.supaglue.com/platform/common-schemas/crm)


    #### Base API URL

    ```

    https://api.supaglue.io/crm/v2

    ```

    '
servers:
- url: https://api.supaglue.io/crm/v2
  description: Supaglue API
tags:
- name: Lists
  description: The `List` Object represents a collection of CRM records.
paths:
  /lists:
    parameters:
    - $ref: '#/components/parameters/x-customer-id'
    - $ref: '#/components/parameters/x-provider-name'
    get:
      operationId: listLists
      summary: List lists
      tags:
      - Lists
      security:
      - x-api-key: []
      parameters:
      - $ref: '#/components/parameters/remote_provider_page_size'
      - $ref: '#/components/parameters/cursor'
      - $ref: '#/components/parameters/object_type'
      responses:
        '200':
          description: List Lists
          content:
            application/json:
              schema:
                type: object
                properties:
                  pagination:
                    $ref: '#/components/schemas/pagination'
                  records:
                    type: array
                    items:
                      $ref: '#/components/schemas/list_metadata'
                required:
                - pagination
                - records
        '400':
          $ref: '#/components/responses/badRequest'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
        '499':
          $ref: '#/components/responses/remoteProviderError'
        '500':
          $ref: '#/components/responses/internalServerError'
        '501':
          $ref: '#/components/responses/notImplemented'
  /lists/{list_id}:
    parameters:
    - $ref: '#/components/parameters/x-customer-id'
    - $ref: '#/components/parameters/x-provider-name'
    - name: list_id
      in: path
      required: true
      schema:
        type: string
      example: 220e715a-0cbc-4d2d-8420-cd729f12f094
    get:
      operationId: listListMemberships
      summary: List list memberships
      description: 'Support:


        | Provider   | Object                                      | Common Schema support | Notes                                 |

        | ---------- | ------------------------------------------- | --------------------- | ------------------------------------- |

        | Hubspot    | `contact`, `account`                        | Yes                   | Raw data response from V3 API         |

        | Salesforce | `contact`, `account`, `lead`, `opportunity` | Yes                   | Raw data response from V57.0 REST API |

        '
      tags:
      - Lists
      security:
      - x-api-key: []
      parameters:
      - $ref: '#/components/parameters/remote_provider_page_size'
      - $ref: '#/components/parameters/cursor'
      - $ref: '#/components/parameters/object_type'
      responses:
        '200':
          description: List membership
          content:
            application/json:
              schema:
                type: object
                properties:
                  pagination:
                    $ref: '#/components/schemas/pagination'
                  records:
                    type: array
                    items:
                      $ref: '#/components/schemas/list_membership'
                required:
                - pagination
                - records
        '400':
          $ref: '#/components/responses/badRequest'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
        '499':
          $ref: '#/components/responses/remoteProviderError'
        '500':
          $ref: '#/components/responses/internalServerError'
        '501':
          $ref: '#/components/responses/notImplemented'
components:
  schemas:
    lifecycle_stage:
      type: string
      nullable: true
      enum:
      - subscriber
      - lead
      - marketingqualifiedlead
      - salesqualifiedlead
      - opportunity
      - customer
      - evangelist
      - other
    lead:
      type: object
      properties:
        addresses:
          $ref: '#/components/schemas/addresses'
        company:
          type: string
          nullable: true
          example: Supaglue
        converted_account_id:
          type: string
          nullable: true
          example: 88cc44ca-7a34-4e8b-b0da-51c3aae34daf
        converted_account:
          $ref: '#/components/schemas/account'
        converted_contact_id:
          type: string
          nullable: true
          example: 8c8de778-a219-4d6c-848c-1d57b52149f6
        converted_contact:
          $ref: '#/components/schemas/contact'
        converted_date:
          type: string
          nullable: true
          format: date-time
          example: '2023-02-27T00:00:00Z'
        email_addresses:
          $ref: '#/components/schemas/email_addresses'
        first_name:
          type: string
          nullable: true
          example: George
        id:
          type: string
          example: 54312
        last_name:
          type: string
          nullable: true
          example: Xing
        lead_source:
          type: string
          nullable: true
          example: API Blogger
        owner_id:
          type: string
          nullable: true
          example: 62e5e0f7-becd-4ae2-be82-8b4e1d5ed8a2
        phone_numbers:
          $ref: '#/components/schemas/phone_numbers'
        title:
          type: string
          nullable: true
          example: Co-Founder
        created_at:
          type: string
          nullable: true
          format: date-time
          example: '2023-02-10T00:00:00Z'
        updated_at:
          type: string
          nullable: true
          format: date-time
          example: '2023-02-10T00:00:00Z'
        is_deleted:
          type: boolean
          example: false
        last_modified_at:
          type: string
          format: date-time
          example: '2022-02-27T00:00:00Z'
      required:
      - addresses
      - company
      - converted_account_id
      - converted_contact_id
      - converted_date
      - id
      - last_name
      - lead_source
      - owner_id
      - phone_numbers
      - title
      - created_at
      - updated_at
      - is_deleted
      - last_modified_at
    account:
      type: object
      properties:
        addresses:
          $ref: '#/components/schemas/addresses'
        description:
          type: string
          nullable: true
          example: Integration API
        id:
          type: string
          example: 1234
        industry:
          type: string
          nullable: true
          example: API's
        last_activity_at:
          type: string
          nullable: true
          format: date-time
          example: '2022-02-27T00:00:00Z'
        name:
          type: string
          nullable: true
          example: Sample Customer
        number_of_employees:
          type: integer
          nullable: true
          example: 276000
        owner_id:
          type: string
          nullable: true
          example: d8ceb3ff-8b7f-4fa7-b8de-849292f6ca69
        phone_numbers:
          $ref: '#/components/schemas/phone_numbers'
        lifecycle_stage:
          $ref: '#/components/schemas/lifecycle_stage'
        website:
          type: string
          nullable: true
          example: https://supaglue.com/
        created_at:
          type: string
          nullable: true
          format: date-time
          example: '2022-02-27T00:00:00Z'
        updated_at:
          type: string
          nullable: true
          format: date-time
          example: '2022-02-27T00:00:00Z'
        is_deleted:
          type: boolean
          example: false
        last_modified_at:
          type: string
          format: date-time
          example: '2022-02-27T00:00:00Z'
      required:
      - addresses
      - description
      - id
      - industry
      - last_activity_at
      - name
      - number_of_employees
      - owner_id
      - phone_numbers
      - website
      - lifecycle_stage
      - created_at
      - updated_at
      - is_deleted
      - last_modified_at
    addresses:
      type: array
      items:
        type: object
        properties:
          address_type:
            type: string
            enum:
            - primary
            - mailing
            - other
            - billing
            - shipping
          city:
            type: string
            nullable: true
            example: San Francisco
          country:
            type: string
            nullable: true
            example: USA
          postal_code:
            type: string
            nullable: true
            example: '94107'
          state:
            type: string
            nullable: true
            example: CA
          street_1:
            type: string
            nullable: true
            example: 525 Brannan
          street_2:
            type: string
            nullable: true
            example: null
        required:
        - address_type
        - city
        - country
        - postal_code
        - state
        - street_1
        - street_2
      example:
      - address_type: shipping
        city: San Francisco
        country: US
        postal_code: '94107'
        state: CA
        street_1: 525 Brannan
        street_2: null
    email_addresses:
      type: array
      items:
        type: object
        properties:
          email_address:
            type: string
            example: hello@supaglue.com
          email_address_type:
            type: string
            enum:
            - primary
            - work
            - other
        required:
        - email_address
        - email_address_type
      example:
      - email_address: hello@supaglue.com
        email_address_type: work
    opportunity:
      type: object
      properties:
        account_id:
          type: string
          nullable: true
          example: fd089246-09b1-4e3b-a60a-7a76314bbcce
        amount:
          type: integer
          nullable: true
          example: 100000
        close_date:
          type: string
          nullable: true
          format: date-time
          example: '2023-02-27T00:00:00Z'
        description:
          type: string
          nullable: true
          example: Wants to use open source unified API for third-party integrations
        id:
          type: string
          example: 54312
        last_activity_at:
          type: string
          nullable: true
          format: date-time
          example: '2023-02-27T00:00:00Z'
        name:
          type: string
          nullable: true
          example: Needs third-party integrations
        owner_id:
          type: string
          nullable: true
          example: d8ceb3ff-8b7f-4fa7-b8de-849292f6ca69
        pipeline:
          type: string
          nullable: true
        stage:
          type: string
          nullable: true
          example: Closed Won
        status:
          type: string
          nullable: true
          example: OPEN
        created_at:
          type: string
          nullable: true
          format: date-time
          example: '2023-02-27T00:00:00Z'
        updated_at:
          type: string
          nullable: true
          format: date-time
          example: '2023-02-27T00:00:00Z'
        is_deleted:
          type: boolean
          example: false
        last_modified_at:
          type: string
          format: date-time
          example: '2022-02-27T00:00:00Z'
      required:
      - account_id
      - amount
      - description
      - id
      - last_activity_at
      - name
      - owner_id
      - stage
      - status
      - pipeline
      - created_at
      - updated_at
      - is_deleted
      - last_modified_at
    contact:
      type: object
      properties:
        account_id:
          type: string
          nullable: true
          example: fd089246-09b1-4e3b-a60a-7a76314bbcce
        owner_id:
          type: string
          nullable: true
          example: 23e640fe-6105-4a11-a636-3aa6b6c6e762
        addresses:
          $ref: '#/components/schemas/addresses'
        email_addresses:
          $ref: '#/components/schemas/email_addresses'
        first_name:
          type: string
          nullable: true
          example: George
        id:
          type: string
          example: 54312
        last_activity_at:
          type: string
          nullable: true
          format: date-time
          example: '2022-02-27T00:00:00Z'
        last_name:
          type: string
          nullable: true
          example: Xing
        phone_numbers:
          $ref: '#/components/schemas/phone_numbers'
        lifecycle_stage:
          $ref: '#/components/schemas/lifecycle_stage'
        created_at:
          type: string
          nullable: true
          format: date-time
          example: '2022-02-27T00:00:00Z'
        updated_at:
          type: string
          nullable: true
          format: date-time
          example: '2022-02-27T00:00:00Z'
        is_deleted:
          type: boolean
          example: false
        last_modified_at:
          type: string
          format: date-time
          example: '2022-02-27T00:00:00Z'
        raw_data:
          type: object
          additionalProperties: true
      required:
      - account_id
      - owner_id
      - description
      - id
      - addresses
      - email_addresses
      - first_name
      - last_activity_at
      - last_name
      - phone_numbers
      - lifecycle_stage
      - created_at
      - updated_at
      - is_deleted
      - last_modified_at
    phone_numbers:
      type: array
      items:
        type: object
        properties:
          phone_number:
            type: string
            nullable: true
            example: '+14151234567'
          phone_number_type:
            type: string
            enum:
            - primary
            - mobile
            - fax
            - other
        required:
        - phone_number
        - phone_number_type
      example:
      - phone_number: '+14151234567'
        phone_number_type: primary
    errors:
      type: array
      items:
        type: object
        properties:
          id:
            type: string
            description: A unique identifier for the instance of the error. Provide this to support when contacting Supaglue.
            example: 9366efb4-8fb1-4a28-bfb0-8d6f9cc6b5c5
          detail:
            type: string
            description: A detailed description of the error.
            example: 'Property values were not valid: [{"isValid":false,"message":"Property \"__about_us\" does not exist","error":"PROPERTY_DOESNT_EXIST","name":"__about_us","localizedErrorMessage":"Property \"__about_us\" does not exist"}]'
          problem_type:
            type: string
            description: The Supaglue error code associated with the error.
            example: MISSING_REQUIRED_FIELD
            deprecated: true
          title:
            type: string
            description: A brief description of the error. The schema and type of message will vary by Provider.
            example: 'Property values were not valid

              '
          code:
            type: string
            description: The Supaglue error code associated with the error.
            example: MISSING_REQUIRED_FIELD
          status:
            type: string
            description: The HTTP status code associated with the error.
            example: '400'
          meta:
            type: object
            description: Additional metadata about the error.
            properties:
              cause:
                type: object
                description: The cause of the error. Usually the underlying error from the remote Provider.
                example:
                  code: 400
                  body:
                    status: error
                    message: 'Property values were not valid: [{"isValid":false,"message":"Property \"__about_us\" does not exist","error":"PROPERTY_DOESNT_EXIST","name":"__about_us","localizedErrorMessage":"Property \"__about_us\" does not exist"}]'
                    correlationId: ac94252c-90b5-45d2-ad1d-9a9f7651d7d2
                    category: VALIDATION_ERROR
                  headers:
                    access-control-allow-credentials: 'false'
                    cf-cache-status: DYNAMIC
                    cf-ray: 8053d17b9dae9664-SJC
                    connection: close
                    content-length: '361'
                    content-type: application/json;charset=utf-8
                    date: Mon, 11 Sep 2023 23:51:22 GMT
                    nel: '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}'
                    report-to: '{"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v3?s=FgwuXObO%2Fz6ahUJKsxjDLaXTWjooJ8tB0w4%2B%2BKaulGStx0FGkn1PoJoOx2KrFMfihzNdfAqikq7CmgbdlmwKB8hkmp3eTb68qpg10LXFlRgiSqRhbWM7yYSfo8CXmPBc"}],"group":"cf-nel","max_age":604800}'
                    server: cloudflare
                    strict-transport-security: max-age=31536000; includeSubDomains; preload
                    vary: origin, Accept-Encoding
                    x-content-type-options: nosniff
                    x-envoy-upstream-service-time: '91'
                    x-evy-trace-listener: listener_https
                    x-evy-trace-route-configuration: listener_https/all
                    x-evy-trace-route-service-name: envoyset-translator
                    x-evy-trace-served-by-pod: iad02/hubapi-td/envoy-proxy-6c94986c56-9xsh2
                    x-evy-trace-virtual-host: all
                    x-hubspot-correlation-id: ac94252c-90b5-45d2-ad1d-9a9f7651d7d2
                    x-hubspot-ratelimit-interval-milliseconds: '10000'
                    x-hubspot-ratelimit-max: '100'
                    x-hubspot-ratelimit-remaining: '99'
                    x-hubspot-ratelimit-secondly: '10'
                    x-hubspot-ratelimit-secondly-remaining: '9'
                    x-request-id: ac94252c-90b5-45d2-ad1d-9a9f7651d7d2
                    x-trace: 2B1B4386362759B6A4C34802AD168B803DDC1BE770000000000000000000
              origin:
                type: string
                enum:
                - remote-provider
                - supaglue
                description: The origin of the error.
                example: remote-provider
              application_name:
                type: string
                description: The name of the application that generated the error.
                example: MyCompany Production
            required:
            - origin
            additionalProperties: true
        required:
        - id
        - detail
        - problem_type
        - title
        - code
        - status
        - meta
        example:
        - meta:
            cause:
              code: 400
              body:
                status: error
                message: 'Property values were not valid: [{"isValid":false,"message":"Property \"__about_us\" does not exist","error":"PROPERTY_DOESNT_EXIST","name":"__about_us","localizedErrorMessage":"Property \"__about_us\" does not exist"}]'
                correlationId: ac94252c-90b5-45d2-ad1d-9a9f7651d7d2
                category: VALIDATION_ERROR
              headers:
                access-control-allow-credentials: 'false'
                cf-cache-status: DYNAMIC
                cf-ray: 8053d17b9dae9664-SJC
                connection: close
                content-length: '361'
                content-type: application/json;charset=utf-8
                date: Mon, 11 Sep 2023 23:51:22 GMT
                nel: '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}'
                report-to: '{"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v3?s=FgwuXObO%2Fz6ahUJKsxjDLaXTWjooJ8tB0w4%2B%2BKaulGStx0FGkn1PoJoOx2KrFMfihzNdfAqikq7CmgbdlmwKB8hkmp3eTb68qpg10LXFlRgiSqRhbWM7yYSfo8CXmPBc"}],"group":"cf-nel","max_age":604800}'
                server: cloudflare
                strict-transport-security: max-age=31536000; includeSubDomains; preload
                vary: origin, Accept-Encoding
                x-content-type-options: nosniff
                x-envoy-upstream-service-time: '91'
                x-evy-trace-listener: listener_https
                x-evy-trace-route-configuration: listener_https/all
                x-evy-trace-route-service-name: envoyset-translator
                x-evy-trace-served-by-pod: iad02/hubapi-td/envoy-proxy-6c94986c56-9xsh2
                x-evy-trace-virtual-host: all
                x-hubspot-correlation-id: ac94252c-90b5-45d2-ad1d-9a9f7651d7d2
                x-hubspot-ratelimit-interval-milliseconds: '10000'
                x-hubspot-ratelimit-max: '100'
                x-hubspot-ratelimit-remaining: '99'
                x-hubspot-ratelimit-secondly: '10'
                x-hubspot-ratelimit-secondly-remaining: '9'
                x-request-id: ac94252c-90b5-45d2-ad1d-9a9f7651d7d2
                x-trace: 2B1B4386362759B6A4C34802AD168B803DDC1BE770000000000000000000
          detail: 'Property values were not valid: [{"isValid":false,"message":"Property \"__about_us\" does not exist","error":"PROPERTY_DOESNT_EXIST","name":"__about_us","localizedErrorMessage":"Property \"__about_us\" does not exist"}]'
          problem_type: MISSING_REQUIRED_FIELD
          title: 'Property values were not valid

            '
          code: MISSING_REQUIRED_FIELD
          status: '400'
          id: 9366efb4-8fb1-4a28-bfb0-8d6f9cc6b5c5
    pagination:
      type: object
      properties:
        next:
          type: string
          nullable: true
          example: eyJpZCI6IjQyNTc5ZjczLTg1MjQtNDU3MC05YjY3LWVjYmQ3MDJjNmIxNCIsInJldmVyc2UiOmZhbHNlfQ==
        previous:
          type: string
          nullable: true
          example: eyJpZCI6IjBjZDhmYmZkLWU5NmQtNDEwZC05ZjQxLWIwMjU1YjdmNGI4NyIsInJldmVyc2UiOnRydWV9
        total_count:
          type: number
          example: 100
      required:
      - next
      - previous
    list_membership:
      oneOf:
      - $ref: '#/components/schemas/contact'
      - $ref: '#/components/schemas/account'
      - $ref: '#/components/schemas/lead'
      - $ref: '#/components/schemas/opportunity'
    list_metadata:
      type: object
      properties:
        id:
          type: string
          example: 00BDn00000RHS32MAH
          description: The provider-specific unique identifier for this list.
        object_type:
          type: string
          enum:
          - contact
          - account
          - lead
          - opportunity
        name:
          type: string
          example: RecentlyViewedContacts
          description: The developer name of this list.
        label:
          type: string
          example: Recently Viewed Contacts
          description: The label for this list.
        raw_data:
          type: object
          description: The raw data from the provider for this list.
          additionalProperties: true
          example:
            attributes:
              type: ListView
              url: /services/data/v57.0/sobjects/ListView/00BDn00000RHS32MAH
            Id: 00BDn00000RHS32MAH
            Name: Recently Viewed Contacts
            DeveloperName: RecentlyViewedContacts
            NamespacePrefix: null
            SobjectType: Contact
            IsSoqlCompatible: true
            CreatedDate: 2023-05-26T22:25:47.000+0000
            CreatedById: 005Dn0000079fN6IAI
            LastModifiedDate: 2023-05-26T22:25:47.000+0000
            LastModifiedById: 005Dn0000079fN6IAI
            SystemModstamp: 2023-05-26T22:25:47.000+0000
            LastViewedDate: null
            LastReferencedDate: null
      required:
      - id
      - object_type
      - name
      - label
      - raw_data
  parameters:
    remote_provider_page_size:
      name: page_size
      in: query
      schema:
        type: string
      example: 100
      description: 'Number of results to return per page. (Max: 100)'
    object_type:
      name: object_type
      in: query
      schema:
        type: string
        enum:
        - contact
        - account
        - opportunity
        - lead
      example: contact
      description: "The Supaglue common object type to fetch a list for.\n\nSupport:\n\n<table>\n  <thead>\n    <tr>\n    <th>Provider</th>\n    <th>Object Type</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>Salesforce</td>\n      <td>countact, account, opportunity, lead</td>\n    </tr>\n    <tr>\n      <td>Hubspot</td>\n      <td>contact, account</td>\n    </tr>\n  </tbody>\n  </table>\n"
      required: true
    x-provider-name:
      name: x-provider-name
      in: header
      schema:
        type: string
      example: salesforce
      description: The provider name
      required: true
    x-customer-id:
      name: x-customer-id
      in: header
      schema:
        type: string
      example: my-customer-1
      description: The customer ID that uniquely identifies the customer in your application
      required: true
    cursor:
      name: cursor
      in: query
      schema:
        type: string
      example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw
      description: The pagination cursor value
  responses:
    notImplemented:
      description: Not implemented
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                $ref: '#/components/schemas/errors'
    badRequest:
      description: Bad request
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                $ref: '#/components/schemas/errors'
    notFound:
      description: Not found
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                $ref: '#/components/schemas/errors'
    forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                $ref: '#/components/schemas/errors'
    unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                $ref: '#/components/schemas/errors'
    internalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                $ref: '#/components/schemas/errors'
    remoteProviderError:
      description: Remote provider error
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                $ref: '#/components/schemas/errors'
  securitySchemes:
    x-api-key:
      type: apiKey
      name: x-api-key
      in: header
      description: API key to allow developers to access the API