Sendlane Contacts API

The Contacts API from Sendlane — 18 operation(s) for contacts.

Operations 26

GET /contacts Contacts #
GET /contacts/{contactId} Get Contact #
DELETE /contacts/{contactId} Delete Contact #
GET /contacts/unsubscribed Contacts Unsubscribed #
GET /contacts/{contactId}/custom-fields Get Contact Custom Fields #
POST /contacts/{contactId}/custom-fields Add Contact Custom Field #
GET /contacts/{contactId}/custom-fields/{contactCustomFieldId} Get Contact Custom Field #
DELETE /contacts/{contactId}/custom-fields/{contactCustomFieldId} Remove Custom Field from Contact #
POST /contacts/{contactId}/email-consent Contact Email Consent #
GET /contacts/{contactId}/history Contact History #
GET /contacts/{contactId}/segments Contact Segments #
GET /contacts/{contactId}/subscriptions Contact Subscriptions #
GET /contacts/subscriptions Contact Search Subscriptions #
POST /contacts/{contactId}/sms-consent Contact Add SMS Consent #
POST /contacts/sms-consent Contact Search and Add SMS Consent #
GET /contacts/{contactId}/tags Get Contact Tags #
POST /contacts/{contactId}/tags Add Contact Tag #
GET /contacts/{contactId}/tags/{tagId} Get Contact Tag #
DELETE /contacts/{contactId}/tags/{tagId} Remove Tag from Contact #
POST /contacts/{contactId}/unsubscribe Contact Unsubscribe #
GET /back-in-stock-contacts Back In Stock Contacts #
GET /back-in-stock-contacts/{contactId} Get Back In Stock Contact #
DELETE /back-in-stock-contacts/{contactId} Delete Back In Stock Contact #

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/sendlane-contacts-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

sendlane-contacts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Reference Contacts API
  version: '2.0'
  contact:
    name: Sendlane
    url: https://sendlane.com
    email: support@sendlane.com
  description: Sendlane V2 API
servers:
- url: https://api.sendlane.com/v2
  description: Sendlane
security:
- BearerToken: []
tags:
- name: Contacts
paths:
  /contacts:
    get:
      summary: Contacts
      parameters:
      - $ref: '#/components/parameters/from'
      - $ref: '#/components/parameters/to'
      tags:
      - Contacts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Contact.v2'
                  links:
                    $ref: '#/components/schemas/PaginatorLinks.v2'
                  meta:
                    $ref: '#/components/schemas/PaginatorMeta.v2'
      operationId: get-contacts
      description: Get Contacts
  /contacts/{contactId}:
    parameters:
    - schema:
        type: integer
      name: contactId
      in: path
      required: true
    get:
      summary: Get Contact
      tags:
      - Contacts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactResponse.v2'
      operationId: get-contacts-contactId
      parameters: []
      description: Get Contact
    delete:
      description: Delete contact
      summary: Delete Contact
      operationId: delete-contacts-contactId
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AcceptedResponse.v2'
      tags:
      - Contacts
  /contacts/unsubscribed:
    get:
      summary: Contacts Unsubscribed
      parameters:
      - $ref: '#/components/parameters/from'
      - $ref: '#/components/parameters/to'
      tags:
      - Contacts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Contact.v2'
                  links:
                    $ref: '#/components/schemas/PaginatorLinks.v2'
                  meta:
                    $ref: '#/components/schemas/PaginatorMeta.v2'
      operationId: get-contacts-unsubscribed
      description: Get Contacts Unsubscribed
  /contacts/{contactId}/custom-fields:
    parameters:
    - schema:
        type: integer
      name: contactId
      in: path
      required: true
    get:
      summary: Get Contact Custom Fields
      tags:
      - Contacts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/ContactCustomField.v2'
                  links:
                    $ref: '#/components/schemas/PaginatorLinks.v2'
                  meta:
                    $ref: '#/components/schemas/PaginatorMeta.v2'
      operationId: get-contacts-contactId-custom-fields
      parameters: []
      description: Get Contact Custom Fields
    post:
      description: Add Custom Field(s) To Contact
      summary: Add Contact Custom Field
      operationId: post-contacts-contactId-custom-fields
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactCustomFieldStoreRequest.v2'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/ContactCustomField.v2'
                  links:
                    $ref: '#/components/schemas/PaginatorLinks.v2'
                  meta:
                    $ref: '#/components/schemas/PaginatorMeta.v2'
      tags:
      - Contacts
  /contacts/{contactId}/custom-fields/{contactCustomFieldId}:
    parameters:
    - schema:
        type: integer
      name: contactCustomFieldId
      in: path
      required: true
    get:
      summary: Get Contact Custom Field
      description: Get Contact Custom Field
      tags:
      - Contacts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactCustomFieldResponse.v2'
      operationId: get-contacts-contactId-custom-fields-contactCustomFieldId
      parameters: []
    delete:
      description: Remove Custom Field from Contact
      summary: Remove Custom Field  from Contact
      operationId: delete-contacts-contactId-custom-fields-contactCustomFieldId
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AcceptedResponse.v2'
      tags:
      - Contacts
  /contacts/{contactId}/email-consent:
    parameters:
    - schema:
        type: integer
      name: contactId
      in: path
      required: true
    post:
      summary: Contact Email Consent
      tags:
      - Contacts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactEmailConsentRequest.v2'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactResponse.v2'
      operationId: post-contacts-email-consent
      description: Add/Remove email consent to a contact *(This endpoint must first be enabled in your account by contacting support)*. Omit **list_ids** for global contacts.
  /contacts/{contactId}/history:
    parameters:
    - schema:
        type: integer
      name: contactId
      in: path
      required: true
    get:
      summary: Contact History
      tags:
      - Contacts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactHistoryRequest.v2'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ContactHistory.v2'
      operationId: get-contacts-history
      description: Contact History
  /contacts/search:
    get:
      summary: Contact Search
      tags:
      - Contacts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactSearchRequest.v2'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Contact.v2'
      operationId: get-contacts-search
      description: Contact Search
  /contacts/{contactId}/segments:
    parameters:
    - schema:
        type: integer
      name: contactId
      in: path
      required: true
    get:
      summary: Contact Segments
      tags:
      - Contacts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Segment.v2'
      operationId: get-contacts-segments
      description: Contact Segments
  /contacts/{contactId}/subscriptions:
    parameters:
    - schema:
        type: integer
      name: contactId
      in: path
      required: true
    get:
      summary: Contact Subscriptions
      tags:
      - Contacts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Subscription.v2'
      operationId: get-contacts-subscriptions
      description: Contact Subscriptions
  /contacts/subscriptions:
    get:
      summary: Contact Search Subscriptions
      tags:
      - Contacts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactSubscriptionsRequest.v2'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Subscription.v2'
      operationId: get-search-contacts-subscriptions
      description: Contact Search Subscriptions
  /contacts/{contactId}/sms-consent:
    parameters:
    - schema:
        type: integer
      name: contactId
      in: path
      required: true
    get:
      summary: Get Contact SMS Consent
      description: Get Contact SMS Consent
      tags:
      - Contacts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmsConsentResponse.v2'
      operationId: get-contacts-contactId-sms-consent
      parameters: []
    post:
      summary: Contact Add SMS Consent
      tags:
      - Contacts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactSmsConsentRequest.v2'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/SmsConsent.v2'
      operationId: post-contacts-sms-consent
      description: Add SMS Consent to a contact (This endpoint must first be enabled in your account by contacting support)
    delete:
      description: Remove SMS Consent from Contact
      summary: Remove SMS Consent from Contact
      tags:
      - Contacts
      operationId: delete-contacts-contactId-sms-consent
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmsConsentResponse.v2'
              examples:
                SMS Consent Response:
                  value:
                    data:
                    - id: 1
                      phone: string
                      has_sms_consent: false
                      sms_consent:
                        sms_consent: false
                        unsubscribed_date: '2025-01-01 09:00:00'
  /contacts/sms-consent:
    post:
      summary: Contact Search and Add SMS Consent
      tags:
      - Contacts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactSearchSmsConsentRequest.v2'
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AcceptedResponse.v2'
      operationId: post-contacts-search-sms-consent
      description: Search for a contact by email or phone to add SMS Consent
  /contacts/{contactId}/tags:
    parameters:
    - schema:
        type: integer
      name: contactId
      in: path
      required: true
    get:
      summary: Get Contact Tags
      tags:
      - Contacts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/TagIndexResponse.v2'
                  links:
                    $ref: '#/components/schemas/PaginatorLinks.v2'
                  meta:
                    $ref: '#/components/schemas/PaginatorMeta.v2'
      operationId: get-contacts-contactId-tags
      parameters: []
      description: Get Contact Tags
    post:
      description: Add Tag To Contact
      summary: Add Contact Tag
      operationId: post-contacts-contactId-tags
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactTagStoreRequest.v2'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/TagIndexResponse.v2'
                  links:
                    $ref: '#/components/schemas/PaginatorLinks.v2'
                  meta:
                    $ref: '#/components/schemas/PaginatorMeta.v2'
      tags:
      - Contacts
  /contacts/{contactId}/tags/{tagId}:
    parameters:
    - schema:
        type: integer
      name: tagId
      in: path
      required: true
    get:
      summary: Get Contact Tag
      description: Get Contact Tag
      tags:
      - Contacts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TagResponse.v2'
      operationId: get-contacts-contactId-tags-tagId
      parameters: []
    delete:
      description: Remove Tag from Contact
      summary: Remove Tag from Contact
      operationId: delete-contacts-contactId-tags-tagId
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AcceptedResponse.v2'
      tags:
      - Contacts
  /contacts/{contactId}/unsubscribe:
    parameters:
    - schema:
        type: integer
      name: contactId
      in: path
      required: true
    post:
      summary: Contact Unsubscribe
      tags:
      - Contacts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ContactUnsubscribeResponse.v2'
      operationId: post-contacts-unsubscribe
      description: Contact Unsubscribe
  /back-in-stock-contacts:
    get:
      summary: Back In Stock Contacts
      tags:
      - Contacts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/BackInStockContact.v2'
                  links:
                    $ref: '#/components/schemas/PaginatorLinks.v2'
                  meta:
                    $ref: '#/components/schemas/PaginatorMeta.v2'
      operationId: get-back-in-stock-contacts
      description: Get Back In Stock Contacts
  /back-in-stock-contacts/{contactId}:
    parameters:
    - schema:
        type: integer
      name: contactId
      in: path
      required: true
    get:
      summary: Get Back In Stock Contact
      tags:
      - Contacts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BackInStockContactResponse.v2'
      operationId: get-back-in-stock-contacts-contactId
      parameters: []
      description: Get Back In Stock Contact
    delete:
      description: Delete Back In Stock Contact
      summary: Delete Back In Stock Contact
      operationId: delete-back-in-stock-contacts-contactId
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AcceptedResponse.v2'
      tags:
      - Contacts
components:
  schemas:
    ContactSearchSmsConsentRequest.v2:
      title: Contact SMS Consent Request
      type: object
      x-examples:
        SMS Consent Request:
          email: user@example.com
          phone: 15551234567
          ip_address: 12.34.567.89
          optin_date: 202X-01-01 09:00:00
          sms_consent: true
          user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_3 rv:6.0; sl-SI) AppleWebKit/533.24.5 (KHTML, like Gecko) Version/4.0 Safari/533.24.5
          optin_url: http://example.com/optin-url
          consent_language: http://example.com/terms-of-service
          cookie_uuid: 0H28vBAcx8PBbAmXqamTjY3BDyvMcyN8Xy5nAquShpB
      properties:
        email:
          type: string
          format: email
          example: user@example.com
        phone:
          type: string
          format: phone
          example: 15551234567
        ip_address:
          type: string
          format: ip
          example: 12.34.567.89
        optin_date:
          type: string
          format: date-time
          example: 202X-01-01 09:00:00
        sms_consent:
          type: boolean
          example: true
        user_agent:
          type: string
          example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_3 rv:6.0; sl-SI) AppleWebKit/533.24.5 (KHTML, like Gecko) Version/4.0 Safari/533.24.5
        optin_url:
          type: string
          format: url
          example: http://example.com/optin-url
        consent_language:
          type: string
          description: text snippet or url to language
          example: http://example.com/terms-of-service
        cookie_uuid:
          type: string
          example: 0H28vBAcx8PBbAmXqamTjY3BDyvMcyN8Xy5nAquShpB
      required:
      - phone
      - ip_address
      - optin_date
      - sms_consent
      - user_agent
      - optin_url
    ContactResponse.v2:
      title: Contact Response
      type: object
      x-examples:
        Contact Response:
          data:
            id: 1
            email: string
            first_name: string
            last_name: string
            phone: string
            sms_consent: []
            subscribed: true
            suppressed: false
      properties:
        data:
          $ref: '#/components/schemas/Contact.v2'
      required:
      - data
    TagIndexResponse.v2:
      title: TagIndexResponse
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Tag.v2'
        links:
          $ref: '#/components/schemas/PaginatorLinks.v2'
        meta:
          $ref: '#/components/schemas/PaginatorMeta.v2'
      description: ''
      x-examples:
        Response:
          data:
          - id: 1
            name: string
            audience_count: 1
            created_at: string
          links:
            first: string
            last: string
            prev: string
            next: string
          meta:
            current_page: 1
            from: 1
            last_page: 1
            path: string
            per_page: 100
            to: 1
            total: 1
    ContactHistoryRequest.v2:
      title: Contact History Request
      type: object
      x-examples:
        Contact History Request:
          filter: email_open
      properties:
        filter:
          type: string
          format: email, email_open, email_click, subscribe, unsubscribe, global_unsubscribe, tracked_event, conversion, shopify_checkout, shopify_order, shopify_refund
      optional:
      - filter
    ContactCustomFieldStoreRequest.v2:
      title: Contact Custom Field Store Request
      type: object
      x-examples:
        Contact Custom Field Store Request:
          custom_fields:
          - id: 1
            value: value1
          - id: 2
            value: value2
      properties:
        custom_fields:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              value:
                type: string
      required:
      - custom_fields
    ContactSearchRequest.v2:
      title: Contact Search Request
      type: object
      x-examples:
        Contact Search Request:
          email: string
      properties:
        email:
          type: string
        phone:
          type: string
    SmsConsentResponse.v2:
      title: SMS Consent Response
      type: object
      x-examples:
        Contact Response:
          data:
            id: 1
            phone: string
            has_sms_consent: boolean
            sms_consent: {}
      properties:
        data:
          $ref: '#/components/schemas/SmsConsent.v2'
      required:
      - data
    Contact.v2:
      description: ''
      type: object
      title: Contact
      properties:
        id:
          type: integer
        custom_fields:
          type: array
          items:
            $ref: '#/components/schemas/CustomField.v2'
        email:
          type: string
        first_name:
          type: string
        integration_customer:
          type: array
        last_name:
          type: string
        lifetime_value:
          type: number
        lists:
          type: array
          items:
            $ref: '#/components/schemas/ContactList.v2'
        phone:
          type: string
        sms_consent:
          type: array
        subscribed:
          type: boolean
        suppressed:
          type: boolean
        tags:
          type: array
          items:
            $ref: '#/components/schemas/ContactTag.v2'
    AcceptedResponse.v2:
      title: Accepted Response
      type: object
      properties:
        message:
          type: string
      x-examples:
        Success Response:
          message: Successfully handled request
    ContactEmailConsentRequest.v2:
      title: Contact Email Consent Request
      type: object
      x-examples:
        Email Consent Request:
          email_consent: true
      properties:
        email_consent:
          type: boolean
          example: true
        list_ids:
          type: array
          example:
          - 1
          - 2
      required:
      - email_consent
    PaginatorLinks.v2:
      description: ''
      type: object
      x-examples: {}
      properties:
        first:
          type: string
          minLength: 1
          format: uri
          readOnly: true
        last:
          type: string
          minLength: 1
          format: uri
          readOnly: true
        prev:
          type: string
          minLength: 1
          format: uri
          readOnly: true
        next:
          type: string
          minLength: 1
          format: uri
          readOnly: true
      title: Paginator Links
    Subscription.v2:
      title: Subscription
      type: object
      properties:
        id:
          type: integer
        subscriber_id:
          type: integer
        list_id:
          type: integer
        list_name:
          type: string
        subscribed:
          type: boolean
        suppressed:
          type: boolean
        added_by:
          type: string
        date_added:
          type: string
          format: date-time
    ContactUnsubscribeResponse.v2:
      title: Contact Unsubscribe Response
      type: object
      properties:
        message:
          type: string
      x-examples:
        Success Response:
          message: Contact unsubscribed successfully
    BackInStockContact.v2:
      description: ''
      type: object
      title: BackInStockContact
      properties:
        id:
          type: integer
        email:
          type: string
        phone:
          type: string
        shop:
          type: string
        platform:
          type: string
        product_id:
          type: string
        sku:
          type: string
    ContactHistory.v2:
      title: Contact History
      type: object
      properties:
        type:
          type: string
        campaign_id:
          type: integer
        title:
          type: string
        list_id:
          type: integer
        list_name:
          type: string
        amount:
          type: number
        currency:
          type: string
        event_id:
          type: integer
        event_name:
          type: string
        event_location:
          type: string
        completed_at:
          type: string
          format: date-time
        restock:
          type: boolean
        processed_at:
          type: string
          format: date-time
        event_date:
          type: string
          format: date-time
    ContactCustomFieldResponse.v2:
      title: Contact Custom Field Response
      type: object
      x-examples:
        Contact Response:
          data:
            id: 1
            custom_field_id: 1
            name: string
            value: string
            created_at: string
      properties:
        data:
          $ref: '#/components/schemas/ContactCustomField.v2'
      required:
      - data
    PaginatorMeta.v2:
      description: ''
      type: object
      x-examples: {}
      properties:
        current_page:
          type: integer
          readOnly: true
        from:
          type: integer
          readOnly: true
        last_page:
          type: integer
          readOnly: true
        path:
          type: string
          minLength: 1
          readOnly: true
        per_page:
          type: integer
          readOnly: true
        to:
          type: integer
          readOnly: true
        total:
          type: integer
          readOnly: true
      title: Paginator Meta
    ContactTag.v2:
      title: Contact Tag
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
    SmsConsent.v2:
      title: SMS Consent
      type: object
      properties:
        id:
          type: integer
        phone:
          type: string
        has_sms_consent:
          type: boolean
        sms_consent:
          type: object
          properties:
            consent_type:
              type: string
              example: sms_keyword,web_form,integration
            ip_address:
              type: string
              format: ip
              example: 12.34.567.89
            optin_date:
              type: string
              format: date-time
              example: 202X-01-01 09:00:00
            sms_consent:
              type: boolean
              example: true
            user_agent:
              type: string
              example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_3 rv:6.0; sl-SI) AppleWebKit/533.24.5 (KHTML, like Gecko) Version/4.0 Safari/533.24.5
            optin_url:
              type: string
              format: url
              example: http://example.com/optin-url
            consent_language:
              type: string
              description: text snippet or url to language
              example: http://example.com/terms-of-service
            cookie_uuid:
              type: string
              example: 0H28vBAcx8PBbAmXqamTjY3BDyvMcyN8Xy5nAquShpB
    ContactTagStoreRequest.v2:
      title: Contact Tag Store Request
      type: object
      x-examples:
        Contact Tag Store Request:
          tag_ids:
          - 1
          - 2
      properties:
        tag_ids:
          type: array
          items:
            type: integer
      required:
      - tag_ids
    ContactSmsConsentRequest.v2:
      title: Contact SMS Consent Request
      type: object
      x-examples:
        SMS Consent Request:
          phone: 15551234567
          ip_address: 12.34.567.89
          optin_date: 202X-01-01 09:00:00
          sms_consent: true
          user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_3 rv:6.0; sl-SI) AppleWebKit/533.24.5 (KHTML, like Gecko) Version/4.0 Safari/533.24.5
          optin_url: http://example.com/optin-url
          consent_language: http://example.com/terms-of-service
          cookie_uuid: 0H28vBAcx8PBbAmXqamTjY3BDyvMcyN8Xy5nAquShpB
      properties:
        phone:
          type: string
          format: phone
          example: 15551234567
        ip_address:
          type: string
          format: ip
          example: 12.34.567.89
        optin_date:
          type: string
          format: date-time
          example: 202X-01-01 09:00:00
        sms_consent:
          type: boolean
          example: true
        user_agent:
          type: string
          example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_3 rv:6.0; sl-SI) AppleWebKit/533.24.5 (KHTML, like Gecko) Version/4.0 Safari/533.24.5
        optin_url:
          type: string
          format: url
          example: http://example.com/optin-url
        consent_language:
          type: string
          description: text snippet or url to language
          example: http://example.com/terms-of-service
        cookie_uuid:
          type: string
          example: 0H28vBAcx8PBbAmXqamTjY3BDyvMcyN8Xy5nAquShpB
      required:
      - phone
      - ip_address
      - optin_date
      - sms_consent
      - user_agent
      - optin_url
    TagResponse.v2:
      title: TagResponse
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Tag.v2'
      x-examples:
        Tag Response:
          data:
            id: 1
            name: string
            audience_count: 1
            created_at: string
    CustomField.v2:
      title: CustomField
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        type:
          type: string
        created_at:
          type: string
      required:
      - name
    ContactCustomField.v2:
      title: ContactCustomField
      type: object
      properties:
        id:
          type: integer
        custom_field_id:
          type: integer
        name:
          type: string
        value:
          type: string
        created_at:
          type: string
          format: date-time
          readOnly: true
      required:
      - custom_field_id
      - value
    Segment.v2:
      title: Segment
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        list_id:
          type: integer
        match:
          type: string
        last_count:
          type: integer
        processed_at:
          type: string
          format: date-time
        created_at:
          type: string
          format: date-time
        is_in_progress:
          type: boolean
    ContactSubscriptionsRequest.v2:
      title: Contact Subscriptions Request
      type: object
      x-examples:
        Contact Subscriptions Request:
          email: string
      properties:
        email:
          type: string
        phone:
          type: string
    ContactList.v2:
      title: Contact List
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
    Tag.v2:
      title: Tag
      type: object
      x-examples:
        Create Tag:
          name: string
        Update Tag:
          name: string
          status: active
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
        audience_count:
          type: integer
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
      required:
      - name
    BackInStockContactResponse.v2:
      description: ''
      type: object
      x-examples:
        BackInStockContact 

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