> ## Documentation Index
> Fetch the complete documentation index at: https://docs.guile.app/llms.txt
> Use this file to discover all available pages before exploring further.

# List my appointments

> Get a list of appointments for the current customer.

When `reviewable` is `true`, the server returns completed appointments
that still need a review and have not had their review prompt dismissed.
That filter replaces any included `state` value with `completed`.



## OpenAPI

````yaml /api-reference/Customers/openapi.yaml get /me/appointments
openapi: 3.0.0
info:
  title: Customers
  version: 0.1.0
  contact:
    name: Guile Engineering
    url: https://www.guile.app
    email: engineering@guile.app
  license:
    name: MIT
    url: https://opensource.org/license/mit
  description: The Customer API provides operations for customers on the Guile platform.
servers:
  - url: https://api.guile.app
    variables: {}
  - url: https://guile.fly.dev
    variables: {}
security: []
tags:
  - name: Customers
    description: Customer profile, cards on file, and bookings
paths:
  /me/appointments:
    get:
      tags:
        - Customers
      summary: List my appointments
      description: |-
        Get a list of appointments for the current customer.

        When `reviewable` is `true`, the server returns completed appointments
        that still need a review and have not had their review prompt dismissed.
        That filter replaces any included `state` value with `completed`.
      operationId: listMyAppointments
      parameters:
        - name: state
          in: query
          required: false
          description: >-
            When included, filter to appointments with any of these appointment
            states.

            Multiple values are pipe-delimited (for example
            `scheduled|completed`).

            When excluded, defaults to scheduled appointments.

            Ignored when `reviewable` is `true`.
          schema:
            type: array
            items:
              $ref: '#/components/schemas/appointmentState'
            default:
              - scheduled
          explode: false
          style: pipeDelimited
        - name: date
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/dateRange'
          explode: false
        - name: barberId
          in: query
          required: false
          description: |-
            When included, limit appointments to this specific barber.
            When excluded, appointments are not filtered by barber.
          schema:
            $ref: '#/components/schemas/resourceId'
          explode: false
        - name: reviewable
          in: query
          required: false
          description: |-
            When `true`, return completed appointments the customer has not
            reviewed and has not dismissed from the review prompt. When
            excluded or `false`, appointments are not filtered by reviewability.
          schema:
            type: boolean
          explode: false
        - name: limit
          in: query
          required: true
          schema:
            type: integer
            format: int16
            default: 10
          explode: false
        - name: offset
          in: query
          required: true
          schema:
            type: integer
            format: int16
            default: 0
          explode: false
      responses:
        '200':
          description: |-
            Ok.
            The operation succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/appointments'
        '400':
          description: >-
            Bad Request.

            The request body, request headers, and/or query parameters are not
            well-formed.



            This problem response may have one of the following `type` values:

            *
            [https://docs.guile.app/problems/badRequest](https://docs.guile.app/problems/badRequest)
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/apiProblem'
        '401':
          description: >-
            Unauthorized.

            The operation requires authentication but no authentication or
            insufficient authentication was given.



            This problem response may have one of the following `type` values:

            *
            [https://docs.guile.app/problems/unauthorized](https://docs.guile.app/problems/unauthorized)
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/apiProblem'
        '403':
          description: >-
            Forbidden.

            The authenticated caller is not authorized to perform the requested
            operation.



            This problem response may have one of the following `type` values:

            *
            [https://docs.guile.app/problems/forbidden](https://docs.guile.app/problems/forbidden)
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/apiProblem'
        '429':
          description: >-
            Too Many Requests.

            The client has sent too many requests in a given amount of time.



            This problem response may have one of the following `type` values:

            *
            [https://docs.guile.app/problems/tooManyRequests](https://docs.guile.app/problems/tooManyRequests)
          headers:
            Retry-After:
              required: true
              description: The number of seconds to wait before retrying the request.
              schema:
                type: integer
                format: uint32
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/apiProblem'
      security:
        - BearerAuth: []
components:
  schemas:
    appointmentState:
      type: string
      enum:
        - pending
        - scheduled
        - canceled
        - completed
        - rejected
        - expired
      description: Valid states of the appointment.
    dateRange:
      type: string
      maxLength: 24
      pattern: >-
        ^(\d{4}-\d{2}-\d{2}|[\[(](\d{4}-\d{2}-\d{2},(\d{4}-\d{2}-\d{2})?|,\d{4}-\d{2}-\d{2})[)\]])$
      description: >-
        A date range, supporting inclusive or exclusive endpoints.

        Dates ranges use dates expressed in `YYYY-MM-DD` [RFC
        3339](https://tools.ietf.org/html/rfc3339)

        `date` format.

        The value may have the following forms:

        - `YYYY-MM-DD` match the date exactly; equivalent to matching dates in
        the range `[YYYY-MM-DD,YYYY-MM-DD]`

        - `[YYYY-MM-DD,YYYY-MM-DD]` between two dates, inclusive of the
        endpoints

        - `(YYYY-MM-DD,YYYY-MM-DD)` between two dates, exclusive of the
        endpoints

        - `[YYYY-MM-DD,]` on or after the date

        - `(YYYY-MM-DD,)` after the date

        - `[,YYYY-MM-DD]` before or on the date

        - `(,YYYY-MM-DD)` before the date


        Examples:

        - '2022-05-19'

        - '[2022-05-01,2022-05-31]'

        - '[2022-05-01,2022-06-01)'

        - '[2022-05-19,]'

        - '(2022-05-19,)'

        - '[,2022-05-19]'

        - '(,2022-05-19)'.
    resourceId:
      type: string
      description: >-
        The unique, opaque system identifier for a resource.

        This case-sensitive ID is also used as path parameters in URLs or in
        other

        properties or parameters that reference a resource by ID rather than
        URL.
    appointments:
      type: object
      required:
        - items
        - count
        - offset
        - limit
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/appointmentItem'
          minItems: 0
        count:
          type: integer
          format: int16
          minimum: 0
        offset:
          type: integer
          format: int16
          minimum: 0
          description: The offset of list results for the current page.
        limit:
          type: integer
          format: int16
          minimum: 0
          description: The maximum number of results included in `items`.
      description: |-
        A list response for appointment resources. This response contains the
        full result set after any filters are applied.
    apiProblem:
      type: object
      required:
        - type
        - title
        - occurredAt
        - id
        - status
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/uri'
          description: A URI reference that identifies the problem type.
        title:
          type: string
          maxLength: 120
          description: >-
            A short, human-readable summary of the problem type. The title is
            usually the same for all

            problems with the same `type`.
        occurredAt:
          type: string
          format: date-time
          description: >-
            The date-time when this problem occurred, in [RFC
            3339](https://tools.ietf.org/html/rfc3339)

            date-time `YYYY-MM-DDThh:mm:ss.sssZ` format, UTC. This is derived
            and immutable.
        detail:
          type: string
          maxLength: 256
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
        id:
          allOf:
            - $ref: '#/components/schemas/resourceId'
          description: >-
            The unique identifier for this problem. This is an immutable opaque
            string.
        status:
          allOf:
            - $ref: '#/components/schemas/statusCode'
          description: >-
            The [HTTP status
            code](https://datatracker.ietf.org/doc/html/rfc7231#section-6)for
            this

            occurrence of the problem.
        instance:
          allOf:
            - $ref: '#/components/schemas/uri'
          maxLength: 2048
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem. This is the URI of an

            API resource that the problem is related to, with a unique error
            correlation ID URI fragment.
        attributes:
          type: object
          additionalProperties: {}
          description: >-
            Additional optional attributes related to the problem. This data
            conforms to the schema

            associated with the error type.
        recovery:
          allOf:
            - $ref: '#/components/schemas/clientFailureRecovery'
          description: The recovery contract for this problem occurrence.
        problems:
          type: array
          items:
            $ref: '#/components/schemas/problem'
          maxItems: 128
          description: |-
            Optional root-causes if there are multiple problems in the request
            or API call processing.
      description: >-
        API problem or error response, as per

        [RFC 9457
        application/problem+json](https://tools.ietf.org/html/rfc9457).
    appointmentItem:
      type: object
      required:
        - givenName
        - services
        - occursOn
        - duration
        - cost
        - barber
        - location
        - id
        - createdAt
        - updatedAt
      properties:
        givenName:
          type: string
          minLength: 1
          maxLength: 55
          format: text
          description: The given name of the customer.
        services:
          type: array
          items:
            $ref: '#/components/schemas/Common.ServiceReference'
          description: The services for this appointment.
        occursOn:
          type: string
          format: date-time
          description: |-
            The date and time the appointment occurs on. This is expressed in
            [RFC 3339](https://tools.ietf.org/html/rfc3339)
            `YYYY-MM-DDThh:mm:ss.sssZ` date-time format in UTC time zone.
        duration:
          type: string
          format: duration
          description: >-
            The duration of the appointment. The value is an

            [ISO 8601
            duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) string.


            For example, an appointment lasting 30 minutes would be represented
            as

            `PT30M`.
        cost:
          allOf:
            - $ref: '#/components/schemas/money'
          description: The cost of the appointment, excluding any tips, fees or taxes.
        paymentMethodSource:
          allOf:
            - $ref: '#/components/schemas/appointmentPaymentMethod'
          description: >-
            The payment source for this appointment.

            Only platform payments can be authorized through Guile; external
            payments,

            such as cash or peer-to-peer payments, cannot.
        pendingType:
          allOf:
            - $ref: '#/components/schemas/appointmentPendingType'
          description: >-
            Why this appointment is pending. `bookingApproval` means the
            customer

            is waiting for the barber's decision. `cardConfirmation` means the

            appointment is not awaiting booking approval but still needs card

            confirmation. Absent when the appointment is not pending or when an

            older server has not classified the pending state.
        bookingRequest:
          allOf:
            - $ref: '#/components/schemas/appointmentBookingRequest'
          description: >-
            The immutable request lifecycle when this appointment originated as
            a

            booking request. Present while the request is pending and after it
            is

            resolved so the barber and customer can render the same outcome.
        barber:
          allOf:
            - $ref: '#/components/schemas/appointmentBarberReference'
          description: The barber for this appointment.
        location:
          allOf:
            - $ref: '#/components/schemas/appointmentLocationReference'
          description: The location for this appointment.
        offHoursFee:
          allOf:
            - $ref: '#/components/schemas/money'
          description: |-
            The off-hours fee accepted when the appointment was created. This is
            derived and immutable. It is separate from `cost`. Creating the
            appointment does not authorize or capture this fee; Guile settles it
            only after the barber confirms the appointment.
        openingBand:
          allOf:
            - $ref: '#/components/schemas/appointmentOpeningBand'
          description: |-
            The opening band accepted when the appointment was created. This is
            derived and immutable.
        tipAmount:
          allOf:
            - $ref: '#/components/schemas/money'
          description: >-
            The tip the customer selected at booking time, when one was
            included. Not charged until capture.
        surname:
          type: string
          minLength: 1
          maxLength: 55
          format: text
          description: >-
            The customer's full surname when the authenticated barber may see
            it.
        displayName:
          type: string
          description: >-
            The customer name the authenticated barber may display under the
            customer's surname visibility preference.
        timeZone:
          type: string
          allOf:
            - $ref: '#/components/schemas/ianaTimeZone'
          nullable: true
          description: The IANA time zone for the appointment occurrence.
        id:
          $ref: '#/components/schemas/resourceId'
        recurringAppointmentId:
          allOf:
            - $ref: '#/components/schemas/resourceId'
          description: >-
            The identifier of the recurring appointment this appointment belongs
            to, if any.

            This field is only present for appointments that are part of a
            recurring series.
        createdAt:
          type: string
          format: date-time
          description: |-
            The date-time when this resource was created, in
            [RFC 3339](https://tools.ietf.org/html/rfc3339) date-time
            `YYYY-MM-DDThh:mm:ss.sssZ` format, UTC. This is derived and
            immutable.
        updatedAt:
          type: string
          format: date-time
          description: |-
            The date-time when this resource was updated, in
            [RFC 3339](https://tools.ietf.org/html/rfc3339) date-time
            `YYYY-MM-DDThh:mm:ss.sssZ` format, UTC. This is derived and
            immutable.
        state:
          allOf:
            - $ref: '#/components/schemas/appointmentState'
          description: |-
            The appointment state when the server supports stateful list rows.
            Optional for compatibility with older list responses.
        paymentState:
          allOf:
            - $ref: '#/components/schemas/appointmentPaymentState'
          description: |-
            The appointment payment state when the server supports stateful list
            rows. Optional for compatibility with older list responses.
        reviewed:
          type: boolean
          description: >-
            Whether the appointment's customer has already submitted a review
            for

            this visit. Present for the owning customer; omitted for other

            audiences.
        reviewPromptDismissed:
          type: boolean
          description: >-
            Whether the appointment's customer dismissed the review prompt for
            this

            visit. Present for the owning customer; omitted for other audiences.

            Dismissing the prompt does not create a review and does not block

            leaving a review later from appointment history.
      description: A summary representation of an appointment.
    uri:
      type: string
      maxLength: 1024
      format: uri
      description: A URI reference to an internal or external resource.
    statusCode:
      type: integer
      format: uint16
      minimum: 100
      maximum: 599
      description: The HTTP status code for a response.
    clientFailureRecovery:
      type: object
      required:
        - outcome
        - retry
      properties:
        outcome:
          allOf:
            - $ref: '#/components/schemas/clientFailureOutcome'
          description: The known outcome of the request.
        retry:
          allOf:
            - $ref: '#/components/schemas/clientRetryDirective'
          description: The safe retry action for the request.
        sessionAction:
          allOf:
            - $ref: '#/components/schemas/clientSessionAction'
          description: The session action required before the request can continue.
        rateLimit:
          allOf:
            - $ref: '#/components/schemas/rateLimit'
          description: The rate limit state that prevented the request.
      description: The recovery contract for a failed client request.
    problem:
      type: object
      required:
        - type
        - title
        - occurredAt
        - id
        - status
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/uri'
          description: A URI reference that identifies the problem type.
        title:
          type: string
          maxLength: 120
          description: >-
            A short, human-readable summary of the problem type. The title is
            usually the same for all

            problems with the same `type`.
        occurredAt:
          type: string
          format: date-time
          description: >-
            The date-time when this problem occurred, in [RFC
            3339](https://tools.ietf.org/html/rfc3339)

            date-time `YYYY-MM-DDThh:mm:ss.sssZ` format, UTC. This is derived
            and immutable.
        detail:
          type: string
          maxLength: 256
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
        id:
          allOf:
            - $ref: '#/components/schemas/resourceId'
          description: >-
            The unique identifier for this problem. This is an immutable opaque
            string.
        status:
          allOf:
            - $ref: '#/components/schemas/statusCode'
          description: >-
            The [HTTP status
            code](https://datatracker.ietf.org/doc/html/rfc7231#section-6)for
            this

            occurrence of the problem.
        instance:
          allOf:
            - $ref: '#/components/schemas/uri'
          maxLength: 2048
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem. This is the URI of an

            API resource that the problem is related to, with a unique error
            correlation ID URI fragment.
        attributes:
          type: object
          additionalProperties: {}
          description: >-
            Additional optional attributes related to the problem. This data
            conforms to the schema

            associated with the error type.
      description: >-
        Standard problem or error response, as per

        [RFC 9457
        application/problem+json](https://tools.ietf.org/html/rfc9457).
    Common.ServiceReference:
      type: object
      required:
        - id
      properties:
        id:
          allOf:
            - $ref: '#/components/schemas/resourceId'
          description: The unique identifier for the service.
        name:
          type: string
          description: The display name for this service.
        cost:
          allOf:
            - $ref: '#/components/schemas/money'
          description: The cost of the service, excluding any fees or taxes.
        duration:
          type: string
          format: duration
          description: The duration of the service.
      description: |-
        A reference to a service resource. This contains a subset of properties
        for the service. Use Service for the full resource entity.
    money:
      type: string
      pattern: ^-?(0|[1-9][0-9]*)\.[0-9][0-9]$
      format: decimal
      description: >-
        A monetary amount in the lowest denomination for the given currency.

        The numeric value is represented as a string so that it can be exact
        with no

        loss of precision. Values may be positive or negative.
      example: '456.78'
    appointmentPaymentMethod:
      type: string
      enum:
        - platform
        - external
      description: |-
        The method used to process the payment.

        `platform` means Guile manages the payment through our
        payment provider.

        `external` means the payment is managed externally. This
        is either cash or a peer-to-peer payment system, such as
        Venmo.
    appointmentPendingType:
      type: string
      enum:
        - bookingApproval
        - cardConfirmation
      description: Why an appointment is pending.
    appointmentBookingRequest:
      type: object
      required:
        - state
        - value
        - expiresAt
      properties:
        state:
          allOf:
            - $ref: '#/components/schemas/appointmentBookingRequestState'
          description: The current booking-request decision state.
        value:
          allOf:
            - $ref: '#/components/schemas/appointmentBookingRequestValue'
          description: The immutable value of the request as shown to the barber.
        expiresAt:
          type: string
          format: date-time
          description: >-
            The server-owned UTC deadline for a barber decision. It is never
            later

            than the appointment occurrence.
        resolvedAt:
          type: string
          format: date-time
          description: When a terminal request decision was committed.
        declineReason:
          type: string
          maxLength: 500
          description: >-
            The client-visible reason supplied by the barber for a rejected
            request.
        expirationReason:
          allOf:
            - $ref: '#/components/schemas/appointmentBookingRequestExpirationReason'
          description: Why the request expired.
      description: >-
        The immutable value, deadline, and resolution of a booking request
        embedded

        in its appointment. This is not a separate top-level resource.
    appointmentBarberReference:
      type: object
      required:
        - id
        - givenName
        - surname
      properties:
        id:
          allOf:
            - $ref: '#/components/schemas/resourceId'
          description: The unique identifier of the barber profile.
        givenName:
          type: string
          minLength: 1
          maxLength: 55
          format: text
          description: The given name of the barber.
        surname:
          type: string
          minLength: 1
          maxLength: 55
          format: text
          description: The surname of the barber.
        preferredName:
          type: string
          maxLength: 55
          format: text
          description: The preferred name of the barber.
        biography:
          type: string
          maxLength: 2000
          format: text
          description: A short biography of the barber.
        spokenLanguages:
          type: array
          items:
            $ref: '#/components/schemas/spokenLanguageTag'
          minItems: 1
          description: Languages the barber speaks, as IETF BCP 47 language tags.
        experience:
          type: integer
          format: int32
          minimum: 0
          maximum: 100
          description: |-
            Years of professional barbering experience.

            Omitted when the barber has not set a value.
        instagram:
          type: string
          minLength: 1
          maxLength: 30
          pattern: ^[A-Za-z0-9](?:[A-Za-z0-9._]{0,28}[A-Za-z0-9])?$
          description: |-
            Public Instagram username for the booking page, without a leading @.
            Absent when unset. Not a private messaging channel.
        urlSlug:
          allOf:
            - $ref: '#/components/schemas/bookingSlug'
          description: The barber's public booking slug, used in profile links.
        profileImage_URL:
          type: string
          maxLength: 255
          format: uri
          description: A URL to the barber's profile image.
        phoneNumber:
          allOf:
            - $ref: '#/components/schemas/formattedPhoneNumber'
          description: >-
            The barber's phone number, visible only to the customer who owns the
            appointment.
      description: A barber reference on an appointment response.
    appointmentLocationReference:
      type: object
      required:
        - id
        - name
        - shopName
      properties:
        id:
          allOf:
            - $ref: '#/components/schemas/resourceId'
          description: |-
            The unique identifier for this shop location reference.
            This is an immutable opaque string.
        name:
          type: string
          description: The name of this location for a shop.
        shopName:
          type: string
          description: The name of the shop business entity.
        address:
          allOf:
            - $ref: '#/components/schemas/usAddress'
          description: The street address of the appointment location.
      description: A shop location reference on an appointment response.
    appointmentOpeningBand:
      type: string
      enum:
        - regular
        - beforeHours
        - afterHours
      description: Which part of the barber's day an opening belongs to.
    ianaTimeZone:
      type: string
      description: An IANA time-zone identifier.
    appointmentPaymentState:
      type: string
      enum:
        - pending
        - processing
        - authorized
        - paid
        - failed
      description: |-
        The money position of an appointment's payment. `pending` means no funds
        have moved. `processing` means an authorization or capture attempt is in
        flight. `authorized` means funds are held but not captured, `paid` means
        captured and settled, and `failed` means the last authorization attempt
        failed.
    clientFailureOutcome:
      type: string
      enum:
        - notApplied
        - unknown
      description: The known outcome of a failed client request.
    clientRetryDirective:
      type: string
      enum:
        - doNotRetry
        - retrySameRequest
        - retrySameRequestAfterDelay
      description: The safe retry action for a failed client request.
    clientSessionAction:
      type: string
      enum:
        - refresh
        - signIn
      description: The session action required before a failed request can continue.
    rateLimit:
      type: object
      required:
        - limit
        - remaining
        - resetsAt
      properties:
        limit:
          type: integer
          format: uint64
          description: The maximum number of requests allowed in the active window.
        remaining:
          type: integer
          format: uint64
          description: The number of requests remaining in the active window.
        resetsAt:
          type: string
          format: date-time
          description: >-
            The date-time when the active window resets, in [RFC
            3339](https://tools.ietf.org/html/rfc3339) date-time
            `YYYY-MM-DDThh:mm:ss.sssZ` format, UTC.
      description: The rate limit state for the request.
    appointmentBookingRequestState:
      type: string
      enum:
        - pending
        - confirming
        - confirmed
        - rejected
        - expired
        - canceled
      description: The decision lifecycle of an embedded booking request.
    appointmentBookingRequestValue:
      type: object
      required:
        - serviceSubtotal
        - total
      properties:
        serviceSubtotal:
          allOf:
            - $ref: '#/components/schemas/money'
          description: >-
            The preserved service and add-on subtotal, excluding tips, fees, and
            taxes.
        offHoursFee:
          allOf:
            - $ref: '#/components/schemas/money'
          description: The preserved off-hours fee, when one applies.
        tipAmount:
          allOf:
            - $ref: '#/components/schemas/money'
          description: The customer's selected tip intent, when one was included.
        total:
          allOf:
            - $ref: '#/components/schemas/money'
          description: |-
            The sum of `serviceSubtotal`, `offHoursFee`, and `tipAmount`. This
            excludes taxes, platform fees, and other payment-processing amounts.
      description: Immutable monetary value captured when a booking request is created.
    appointmentBookingRequestExpirationReason:
      type: string
      enum:
        - approvalTimedOut
      description: Why an approval-pending booking request expired.
    spokenLanguageTag:
      type: string
      enum:
        - ar
        - de
        - en
        - es
        - fr
        - ko
        - ru
        - tl
        - vi
        - zh
      description: An IETF BCP 47 language tag supported on barber profiles.
    bookingSlug:
      type: string
      minLength: 3
      maxLength: 40
      pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
      description: A barber's public booking slug, used in profile links.
    formattedPhoneNumber:
      type: string
      minLength: 6
      maxLength: 32
      format: phoneNumber
      description: A formatted phone number.
    usAddress:
      type: object
      required:
        - address1
        - locality
        - regionCode
        - postalCode
        - countryCode
      properties:
        address1:
          type: string
          maxLength: 35
          description: >-
            The first line of the postal address. In the US, this typically
            includes

            the building number and street name.
        address2:
          type: string
          maxLength: 35
          description: |-
            The second line of the street address. This should only be used
            if it has a value. Typical values include building numbers, suite
            numbers, and other identifying information beyond the first line
            of the postal address.
        locality:
          type: string
          maxLength: 30
          description: The city/town/municipality of the address.
          example: Atlanta
        regionCode:
          type: string
          minLength: 2
          maxLength: 2
          pattern: ^[A-Za-z]{2}$
          description: The state, district, or outlying area of the postal address.
          example: VT
        postalCode:
          type: string
          minLength: 5
          maxLength: 10
          pattern: ^\d{5}(?:[- ]?\d{4})?$
          description: >-
            A group of five or nine numbers that are added to a postal address
            to

            assist the sorting of mail.
          example: 20521-9000
        countryCode:
          type: string
          minLength: 2
          maxLength: 2
          pattern: ^[A-Za-z]{2}$
          description: The ISO-3611 alpha-2 value for a country.
          example: CA
      description: A postal address within the United States or US territories.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: Bearer

````