VSCO Contacts API

The Contacts API from VSCO — 2 operation(s) for contacts.

Operations 5

GET /address-book List contacts of a studio #
POST /address-book Create an entry in the address book. #
GET /address-book/{id} Fetch a specific Address Book entity. #
PUT /address-book/{id} Update a specific entry in the address book #
DELETE /address-book/{id} Delete an entry in the address book. #

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/vsco-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

vsco-contacts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: VSCO Workspace Brands Contacts API
  termsOfService: https://terms-of-service.vsco.page/
  description: This API is for interacting with a single Studio using <a href="https://workspace.vsco.co/settings/api" target="_blank">an API Key</a>.
  contact:
    name: VSCO Workspace Support
    url: https://help.workspace.vsco.co/
    email: workspace-support@vsco.co
  version: v2.0.0
  x-logo:
    url: https://workspace.vsco.co/static/Images/Public/Logo.Black.vsco.svg
    altText: VSCO Workspace
servers:
- url: https://tave.io/v2
  description: Legacy Táve API production environment
- url: https://workspace.vsco.co/api/v2
  description: Workspace API production environment
security:
- ApiKeyAuth: []
- BearerAuth: []
tags:
- name: Contacts
paths:
  /address-book:
    get:
      summary: List contacts of a studio
      operationId: listResourceAddressBook
      x-entity: Contact
      tags:
      - Contacts
      parameters:
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/includeHidden'
      - $ref: '#/components/parameters/email'
      - name: sortBy
        in: query
        description: Sort items in the collection by the given property.
        schema:
          title: Sort objects by properties
          type: string
          anyOf:
          - title: id
            enum:
            - id
            - id asc
            - id desc
          - title: modified
            enum:
            - modified
            - modified asc
            - modified desc
          - title: created
            enum:
            - created
            - created asc
            - created desc
          - title: name
            enum:
            - name
            - name asc
            - name desc
          - title: kind
            enum:
            - kind
            - kind asc
            - kind desc
          - title: accountBalance
            enum:
            - accountBalance
            - accountBalance asc
            - accountBalance desc
          - title: anniversary
            enum:
            - anniversary
            - anniversary asc
            - anniversary desc
          - title: anonymized
            enum:
            - anonymized
            - anonymized asc
            - anonymized desc
          - title: bestDayToCall
            enum:
            - bestDayToCall
            - bestDayToCall asc
            - bestDayToCall desc
          - title: bestTimeToCall
            enum:
            - bestTimeToCall
            - bestTimeToCall asc
            - bestTimeToCall desc
          - title: cellPhone
            enum:
            - cellPhone
            - cellPhone asc
            - cellPhone desc
          - title: companyName
            enum:
            - companyName
            - companyName asc
            - companyName desc
          - title: contactPreference
            enum:
            - contactPreference
            - contactPreference asc
            - contactPreference desc
          - title: creditBalance
            enum:
            - creditBalance
            - creditBalance asc
            - creditBalance desc
          - title: email
            enum:
            - email
            - email asc
            - email desc
          - title: fax
            enum:
            - fax
            - fax asc
            - fax desc
          - title: firstName
            enum:
            - firstName
            - firstName asc
            - firstName desc
          - title: gender
            enum:
            - gender
            - gender asc
            - gender desc
          - title: homePhone
            enum:
            - homePhone
            - homePhone asc
            - homePhone desc
          - title: jobTitle
            enum:
            - jobTitle
            - jobTitle asc
            - jobTitle desc
          - title: lastName
            enum:
            - lastName
            - lastName asc
            - lastName desc
          - title: maidenName
            enum:
            - maidenName
            - maidenName asc
            - maidenName desc
          - title: previousClient
            enum:
            - previousClient
            - previousClient asc
            - previousClient desc
          - title: privacyOptIn
            enum:
            - privacyOptIn
            - privacyOptIn asc
            - privacyOptIn desc
          - title: requireStrictPrivacy
            enum:
            - requireStrictPrivacy
            - requireStrictPrivacy asc
            - requireStrictPrivacy desc
          - title: salutation
            enum:
            - salutation
            - salutation asc
            - salutation desc
          - title: schoolGradYear
            enum:
            - schoolGradYear
            - schoolGradYear asc
            - schoolGradYear desc
          - title: schoolName
            enum:
            - schoolName
            - schoolName asc
            - schoolName desc
          - title: sport
            enum:
            - sport
            - sport asc
            - sport desc
          - title: teamName
            enum:
            - teamName
            - teamName asc
            - teamName desc
          - title: teamPosition
            enum:
            - teamPosition
            - teamPosition asc
            - teamPosition desc
          - title: workPhone
            enum:
            - workPhone
            - workPhone asc
            - workPhone desc
          default: id
      responses:
        '200':
          description: Address book list response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddressBookCollection'
        '400':
          $ref: '#/components/responses/validationError'
        '429':
          $ref: '#/components/responses/tooManyRequestsError'
    post:
      summary: Create an entry in the address book.
      operationId: createResourceAddressBook
      tags:
      - Contacts
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/Person'
              - $ref: '#/components/schemas/Company'
              - $ref: '#/components/schemas/Location'
              discriminator:
                propertyName: kind
      responses:
        '201':
          description: Address book creation response.
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/Person'
                - $ref: '#/components/schemas/Company'
                - $ref: '#/components/schemas/Location'
                discriminator:
                  propertyName: kind
        '400':
          $ref: '#/components/responses/validationError'
        '429':
          $ref: '#/components/responses/tooManyRequestsError'
  /address-book/{id}:
    get:
      summary: Fetch a specific Address Book entity.
      operationId: getResourceAddressBook
      tags:
      - Contacts
      parameters:
      - $ref: '#/components/parameters/idInPath'
      responses:
        '200':
          description: Address book list response.
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/Person'
                - $ref: '#/components/schemas/Company'
                - $ref: '#/components/schemas/Location'
                discriminator:
                  propertyName: kind
        '400':
          $ref: '#/components/responses/validationError'
        '429':
          $ref: '#/components/responses/tooManyRequestsError'
    put:
      summary: Update a specific entry in the address book
      operationId: updateResourceAddressBook
      tags:
      - Contacts
      parameters:
      - $ref: '#/components/parameters/idInPath'
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/Person'
              - $ref: '#/components/schemas/Company'
              - $ref: '#/components/schemas/Location'
              discriminator:
                propertyName: kind
      responses:
        '200':
          description: Address book list response.
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/Person'
                - $ref: '#/components/schemas/Company'
                - $ref: '#/components/schemas/Location'
                discriminator:
                  propertyName: kind
                  mapping:
                    person: ../schemas/entities/Person.yaml
                    company: ../schemas/entities/Company.yaml
                    location: ../schemas/entities/Location.yaml
        '400':
          $ref: '#/components/responses/validationError'
        '429':
          $ref: '#/components/responses/tooManyRequestsError'
    delete:
      summary: Delete an entry in the address book.
      operationId: deleteResourceAddressBook
      tags:
      - Contacts
      parameters:
      - $ref: '#/components/parameters/idInPath'
      responses:
        '204':
          $ref: '#/components/responses/deleteSuccess'
        '400':
          $ref: '#/components/responses/validationError'
        '429':
          $ref: '#/components/responses/tooManyRequestsError'
components:
  schemas:
    Company:
      allOf:
      - title: Company
        description: A company entity
        type: object
        properties:
          kind:
            type: string
            enum:
            - company
          accountBalance:
            allOf:
            - readOnly: true
              description: The account balance of this company.
            - $ref: '#/components/schemas/MoneyAmount'
          accountNumber:
            type:
            - string
            - 'null'
            maxLength: 50
          brandId:
            allOf:
            - description: The default brand the company belongs to.
            - $ref: '#/components/schemas/NullableId'
          cellPhone:
            $ref: '#/components/schemas/Event/properties/phoneNumber'
          creditBalance:
            allOf:
            - readOnly: true
              description: The credit amount associated with this company.
            - $ref: '#/components/schemas/MoneyAmount'
          fax:
            $ref: '#/components/schemas/Event/properties/phoneNumber'
          mailingAddress:
            $ref: '#/components/schemas/Address'
          name:
            type: string
            description: Company name.
            maxLength: 255
          phone:
            $ref: '#/components/schemas/Event/properties/phoneNumber'
          primaryContactFirstName:
            type:
            - string
            - 'null'
            maxLength: 48
          primaryContactLastName:
            type:
            - string
            - 'null'
            maxLength: 48
          startingCost:
            allOf:
            - description: The cost of this person in software used prior to VSCO Workspace.
            - $ref: '#/components/schemas/MoneyAmount'
          startingRevenue:
            allOf:
            - description: The revenue from this person in software used prior to VSCO Workspace.
            - $ref: '#/components/schemas/MoneyAmount'
          tollFree:
            $ref: '#/components/schemas/Event/properties/phoneNumber'
          vendorRoleId:
            description: 'This is a vendor and defines the default job role does this

              contact have when added to a job.'
            type:
            - string
            - 'null'
            format: ulid
      - $ref: '#/components/schemas/Contact'
    Person:
      allOf:
      - title: Person
        description: A person entity
        type: object
        properties:
          kind:
            type: string
            enum:
            - person
          accountBalance:
            allOf:
            - readOnly: true
              description: The account balance of this person.
            - $ref: '#/components/schemas/MoneyAmount'
          anniversary:
            $ref: '#/components/schemas/NullableDate'
          anonymized:
            type: boolean
            description: 'This person requested to be anonymized so personally identifiable

              information has been anonymized.'
            default: false
            readOnly: true
          bestDayToCall:
            type:
            - string
            - 'null'
            enum:
            - weekdays
            - weekends
            - mondays
            - tuesdays
            - wednesdays
            - thursdays
            - fridays
            - saturdays
            - sundays
            - null
          bestTimeToCall:
            type:
            - string
            - 'null'
            enum:
            - mornings
            - afternoons
            - evenings
            - null
          birthdate:
            $ref: '#/components/schemas/NullableDate'
          brandId:
            allOf:
            - description: The default brand the person belongs to.
            - $ref: '#/components/schemas/NullableId'
          cellPhone:
            $ref: '#/components/schemas/Event/properties/phoneNumber'
          companyName:
            type:
            - string
            - 'null'
            maxLength: 128
          contactPreference:
            type:
            - string
            - 'null'
            enum:
            - email
            - cell-phone
            - home-phone
            - work-phone
            - null
          creditBalance:
            allOf:
            - readOnly: true
              description: The credit amount associated with this contact.
            - $ref: '#/components/schemas/MoneyAmount'
          email:
            type:
            - string
            - 'null'
            format: email
          fax:
            $ref: '#/components/schemas/Event/properties/phoneNumber'
          firstName:
            type:
            - string
            - 'null'
            maxLength: 48
          gender:
            type:
            - string
            - 'null'
            enum:
            - male
            - female
            - null
          homePhone:
            $ref: '#/components/schemas/Event/properties/phoneNumber'
          jobTitle:
            type:
            - string
            - 'null'
            maxLength: 64
          lastName:
            type:
            - string
            - 'null'
            maxLength: 48
          maidenName:
            type:
            - string
            - 'null'
            maxLength: 48
          mailingAddress:
            $ref: '#/components/schemas/Address'
          name:
            type: string
            description: This is used as the combination of firstName and lastName fields.
            maxLength: 255
            readOnly: true
          previousClient:
            type:
            - boolean
            - 'null'
          privacyOptIn:
            type:
            - boolean
            - 'null'
            description: Contact has Opted-In to Marketing and Processing
            default: false
          requireStrictPrivacy:
            type:
            - boolean
            - 'null'
            description: Require Strict Privacy (e.g. subject to Europe's GDPR)
            default: false
          salutation:
            type:
            - string
            - 'null'
            enum:
            - mr
            - miss
            - mrs
            - ms
            - dr
            - null
          schoolGradYear:
            type:
            - integer
            - 'null'
            minimum: 1900
            maximum: 2100
          schoolName:
            type:
            - string
            - 'null'
            maxLength: 255
          sport:
            type:
            - string
            - 'null'
            maxLength: 255
          startingCost:
            allOf:
            - description: The cost of this person in software used prior to VSCO Workspace.
            - $ref: '#/components/schemas/MoneyAmount'
          startingRevenue:
            allOf:
            - description: The revenue from this person in software used prior to VSCO Workspace.
            - $ref: '#/components/schemas/MoneyAmount'
          teamName:
            type:
            - string
            - 'null'
            maxLength: 255
          teamPosition:
            type:
            - string
            - 'null'
            maxLength: 255
          vendorRoleId:
            description: 'This is a vendor and defines the default job role does this

              contact have when added to a job.'
            type:
            - string
            - 'null'
            format: ulid
          workPhone:
            $ref: '#/components/schemas/Event/properties/phoneNumber'
      - $ref: '#/components/schemas/Contact'
    MoneyAmount:
      title: Numeric representing an amount in the studio's currency
      type: integer
      minimum: -99999999999
      maximum: 99999999999
      example: 200
    Pinned:
      title: Whether or not the entity is favorited.
      type:
      - boolean
      - 'null'
      default: false
    CustomFieldValue:
      title: Custom Field Value
      type: object
      required:
      - fieldId
      properties:
        id:
          $ref: '#/components/schemas/Id'
        created:
          $ref: '#/components/schemas/ServerTimestamp'
        modified:
          $ref: '#/components/schemas/ServerTimestamp'
        hidden:
          $ref: '#/components/schemas/IsHidden'
        fieldId:
          title: Entity Identifier
          description: A lowercase [ULID](https://github.com/ulid/spec) entity identifier
          type: string
          format: ulid
          example: 01h35ccwymj5ctckp8px1azhg6
        value:
          type:
          - string
          - 'null'
    Location:
      allOf:
      - title: Location
        description: A Location entity
        type: object
        properties:
          kind:
            type: string
            enum:
            - location
          name:
            type: string
            description: Location name.
            maxLength: 255
          phone:
            $ref: '#/components/schemas/Event/properties/phoneNumber'
          tollFree:
            $ref: '#/components/schemas/Event/properties/phoneNumber'
      - $ref: '#/components/schemas/Contact'
    Note:
      title: Note
      description: Additional notes about a specific entity.
      type: object
      required:
      - contentHtml
      properties:
        links:
          $ref: '#/components/schemas/Links'
        id:
          $ref: '#/components/schemas/Id'
        created:
          $ref: '#/components/schemas/ServerTimestamp'
        modified:
          $ref: '#/components/schemas/ServerTimestamp'
        hidden:
          $ref: '#/components/schemas/IsHidden'
        authorId:
          $ref: '#/components/schemas/NullableId'
        contactId:
          $ref: '#/components/schemas/NullableId'
        contentHtml:
          type:
          - string
          - 'null'
          minLength: 1
          maxLength: 1000000000
        date:
          $ref: '#/components/schemas/NullableDate'
        jobId:
          $ref: '#/components/schemas/NullableId'
    Error:
      description: An error.
      type: object
      properties:
        type:
          description: A namespace URI uniquely identifying the error type.
          type: string
          enum:
          - unknown
          - quota-limit
          - not-implemented
        title:
          description: A short description of the error encountered.
          type: string
          example: Bad Request
        detail:
          description: A longer description of of the error encountered.
          type: string
          example: There was a problem with your request. Please see `info` for more information.
        status:
          description: The HTTP status code associated with this error.
          type: integer
          example: 400
    IsHidden:
      title: Hidden attribute
      description: Whether or not the object is hidden.
      type: boolean
      example: false
      readOnly: true
    NullableId:
      title: Entity Identifier that might be null instead
      description: A ULID entity identifier that is nullable.
      type:
      - string
      - 'null'
      format: ulid
      example: 01fqcr215r79p3h19crqbpzwzh
    Link:
      title: Hypermedia Link Relationship
      description: 'The target URL indicated in the `href` property is related to the

        current resource according to the defined semantics of the link

        property name.'
      type: object
      required:
      - href
      properties:
        href:
          description: The hypertext reference to the API resource at tave.io.
          type: string
          format: uri
        managerHref:
          description: The URL to this item inside the Manager application at workspace.vsco.co.
          type: string
          format: uri
        clientHref:
          description: The URL to this item in Client Access, if available.
          type: string
          format: uri
    ErrorValidation:
      description: A validation error.
      type: object
      properties:
        type:
          description: A namespace URI uniquely identifying the error type.
          type: string
          enum:
          - validation-error
        title:
          description: A short description of the error encountered.
          type: string
          example: Validation Error
        detail:
          description: Breakdown of what fields valid validation and why
          type: object
        status:
          description: The HTTP status code associated with this error.
          type: integer
          example: 400
    Contact:
      title: Contact common fields
      description: Contact common fields that all kinds share
      type: object
      required:
      - kind
      properties:
        links:
          $ref: '#/components/schemas/Links'
        id:
          $ref: '#/components/schemas/Id'
        created:
          $ref: '#/components/schemas/ServerTimestamp'
        modified:
          $ref: '#/components/schemas/ServerTimestamp'
        hidden:
          $ref: '#/components/schemas/IsHidden'
        address:
          $ref: '#/components/schemas/Address'
        chatAccount1:
          allOf:
          - description: Chat Account 1
          - $ref: '#/components/schemas/ChatAccount'
        chatAccount2:
          allOf:
          - description: Chat Account 2
          - $ref: '#/components/schemas/ChatAccount'
        chatAccount3:
          allOf:
          - description: Chat Account 3
          - $ref: '#/components/schemas/ChatAccount'
        customFields:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/CustomFieldValue'
        customNumber:
          type:
          - string
          - 'null'
          maxLength: 32
          deprecated: true
          readOnly: true
        email:
          type:
          - string
          - 'null'
          format: email
          maxLength: 255
        externalMappings:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/ExternalMapping'
        facebookUsername:
          type:
          - string
          - 'null'
          pattern: ^[a-zA-Z\d\.]{5,50}$
        kind:
          type: string
          enum:
          - company
          - employee
          - location
          - person
        notes:
          description: 'A list of notes attached to this contact. This will only be returned

            in a get of a specific contact and not in the list response.'
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Note'
        pinned:
          $ref: '#/components/schemas/Pinned'
        secondaryEmail:
          type:
          - string
          - 'null'
          format: email
          maxLength: 64
        totalCost:
          allOf:
          - readOnly: true
          - $ref: '#/components/schemas/MoneyAmount'
        totalRevenue:
          allOf:
          - readOnly: true
          - $ref: '#/components/schemas/MoneyAmount'
        twitterUsername:
          type:
          - string
          - 'null'
          pattern: ^[a-zA-Z\d.]{5,15}$
        url:
          type:
          - string
          - 'null'
          format: uri
    ExternalMapping:
      title: External Mapping
      description: 'This is used to relate a unique entity id in an external system to an

        entity inside of VSCO Workspace.  These objects can not be updated currently.'
      type: object
      required:
      - id
      - url
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 64
        url:
          description: The url to the remote item.
          type: string
          format: uri
          minLength: 12
          maxLength: 255
    ServerTimestamp:
      title: Server Timestamp
      description: A server timestamp (always in UTC)
      type: string
      format: date-time
      readOnly: true
      example: '2020-08-01T17:32:32Z'
    Id:
      title: Entity Identifier
      description: A lowercase [ULID](https://github.com/ulid/spec) entity identifier
      type: string
      format: ulid
      example: 01h35ccwymj5ctckp8px1azhg6
      readOnly: true
    List:
      title: Collection
      description: A collection (or list) of resources.
      type: object
      required:
      - type
      - items
      properties:
        meta:
          description: Metadata describing the current result set.
          type: object
          readOnly: true
          properties:
            currentPage:
              description: The current page of results returned.
              type: integer
            totalPages:
              description: 'The total number of pages in the result set. This is affected by

                the `pageSize` parameter (`totalItems / pageSize == totalPages`).'
              type: integer
            totalItems:
              description: 'The total number of items in the result set. This may be

                affected by active search/filter parameters.'
              type: integer
            rows:
              description: The number of rows returned per page for the current result set.
              type: integer
        type:
          $ref: '#/components/schemas/ResourceType'
        items:
          description: A collection of resources returned in the current result set.
          type: array
          items:
            type: object
    ResourceType:
      title: Resource Type
      description: The type of resource represented.
      type: string
      example: resource-type
    AddressBookCollection:
      allOf:
      - $ref: '#/components/schemas/List'
      - properties:
          type:
            enum:
            - addressbook-collection
          items:
            title: Address Book
            type: array
            items:
              discriminator:
                propertyName: kind
                mapping:
                  person: ../entities/Person.yaml
                  company: ../entities/Company.yaml
                  location: ../entities/Location.yaml
                  employee: ../entities/Employee.yaml
              anyOf:
              - $ref: '#/components/schemas/Company'
              - $ref: '#/components/schemas/Employee'
              - $ref: '#/components/schemas/Location'
              - $ref: '#/components/schemas/Person'
    NullableDate:
      title: A date that could be null instead
      description: 'A date string consisting of year, month and day in the timezone of the

        event if specified or the studio.'
      type:
      - string
      - 'null'
      format: date
      example: '2020-04-10'
    Employee:
      allOf:
      - title: Employee
        description: An employee entity
        type: object
        properties:
          anniversary:
            $ref: '#/components/schemas/NullableDate'
          birthdate:
            $ref: '#/components/schemas/NullableDate'
          brandId:
            allOf:
            - description: The default brand the person belongs to.
            - $ref: '#/components/schemas/NullableId'
          cellPhone:
            $ref: '#/components/schemas/Event/properties/phoneNumber'
          companyName:
            type:
            - string
            - 'null'
            maxLength: 128
          contactPreference:
            type:
            - string
            - 'null'
            enum:
            - email
            - cell-phone
            - home-phone
            - work-phone
            - null
          displayAs:
            type:
            - string
            - 'null'
            maxLength: 64
          fax:
            $ref: '#/components/schemas/Event/properties/phoneNumber'
          firstName:
            type:
            - string
            - 'null'
            maxLength: 48
          gender:
            type:
            - string
            - 'null'
            enum:
            - male
            - female
            - null
          kind:
            type: string
            enum:
            - employee
          homePhone:
            $ref: '#/components/schemas/Event/properties/phoneNumber'
          jobTitle:
            type:
            - string
            - 'null'
            maxLength: 64
          lastName:
            type:
            - string
            - 'null'
            maxLength: 48
          maidenName:
            type:
            - string
            - 'null'
            maxLength: 48
          mailingAddress:
            $ref: '#/components/schemas/Address'
          name:
            type: string
            description: This is used as the combination of firstName and lastName fields.
            maxLength: 255
            readOnly: true
          salutation:
            type:
            - string
            - 'null'
            enum:
            - mr
            - miss
            - mrs
            - ms
            - dr
            - null
          vendorRoleId:
            description: 'This is a vendor and defines the default job role this

              contact will have when added to a job.'
            type:
            - string
            - 'null'
            format: ulid
          workPhone:
            $ref: '#/components/schemas/Event/properties/phoneNumber'
      - $ref: '#/components/schemas/Contact'
    Address:
      description: Represents an address.
      type:
      - object
      - 'null'
      additionalProperties: false
      properties:
        links:
          $ref: '#/components/schemas/Links'
        id:
          $ref: '#/components/schemas/Id'
        created:
          $ref: '#/components/schemas/ServerTimestamp'
        modified:
          $ref: '#/components/schemas/ServerTimestamp'
        hidden:
          $ref: '#/components/schemas/IsHidden'
        name:
          type:
          - string
          - 'null'
          maxLength: 255
          readOnly: true
        streetAddress:
          type:
          - string
          - 'null'
          maxLength: 512
        village:
          type:
          - string
          - 'null'
          maxLength: 255
        city:
          type:
          - string
          - 'null'
          maxLength: 255
        state:
          type:
          - string
          - 'null'
          maxLength: 255
        postalCode:
          type:
          - string
          - 'null'
          maxLength: 255
        country:
          type:
          - string
          - 'null'
          maxLength: 2
        latitude:
          type:
          - number
          - 'null'
          readOnly: true
        longitude:
          type:
          - number
          - 'null'
          readOnly: true
        googlePlaceId:
          type:
          - string
          - 'null'
          maxLength: 255
          readOnly: true
        timezone:
          type:
          - string
          - 'null'
          readOnly: true
    Event:
      properties:
        phoneNumber:
          title: Representation of a phone number
          type:
          - object
          - 'null'
          properties:
            id:
              allOf:
              - readOnly: true
                description: The ID of th

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