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

# List Markets

> The carriers you are appointed with, and where each relationship stands

A **market** is your relationship with one carrier. This returns them: who the carrier is, which of your entities holds the relationship, its status, and where onboarding has got to.

## Narrowing

`downstreamEntityId` limits the list to markets held by one of your entities.

<Note>
  The identifier is called `upstreamDownstreamAssociationId`, not `marketId`. It names the association between your entity and the carrier, and it is the same value the contacts endpoints publish under that name — one concept, one name.
</Note>


## OpenAPI

````yaml openapi/v2.json GET /v2/downstream/markets
openapi: 3.0.0
info:
  title: Turris Public API
  description: API for managing insurance compliance data
  version: 2.0.0
  contact: {}
servers:
  - url: https://public.api.live.turrisfi.com
    description: Production
  - url: https://public.api.sandbox.turrisfi.com
    description: Sandbox
security: []
tags: []
paths:
  /v2/downstream/markets:
    get:
      tags:
        - downstream/markets
      summary: List markets
      description: >-
        Returns your relationships with carriers, MGAs and wholesalers: one row
        per relationship, ordered by the carrier legal name. Covers your entity
        plus every branch beneath it; narrow with downstreamEntityId.
        Relationships the carrier has removed are excluded.
      operationId: MarketsController_getMarkets_v2
      parameters:
        - name: page
          required: false
          in: query
          description: 1-based page number
          schema:
            minimum: 1
            default: 1
            example: 1
            type: number
        - name: limit
          required: false
          in: query
          description: Page size (max 100)
          schema:
            minimum: 1
            maximum: 100
            default: 50
            example: 50
            type: number
        - name: downstreamEntityId
          required: false
          in: query
          description: >-
            Narrow the results to a single entity in your organization. Defaults
            to your whole subtree (your entity plus every branch beneath it).
            Returns 404 if the id is not in your subtree.
          schema:
            example: 6610b3d2c2e0a51b8c0d1f02
            type: string
      responses:
        '200':
          description: A page of markets
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/DownstreamMarketResponse'
                      total:
                        type: integer
                        description: Total rows matching the query across all pages
                        example: 137
                      page:
                        type: integer
                        description: 1-based page number
                        example: 1
                      limit:
                        type: integer
                        description: Page size
                        example: 50
                      totalPages:
                        type: integer
                        description: Number of pages, or 0 when there are no rows
                        example: 3
                    required:
                      - items
                      - total
                      - page
                      - limit
                      - totalPages
                  requestId:
                    type: string
                    description: Unique request identifier
                    example: dev-2c5e7cf2-9acf-4c8c-ab2f-b81f39d775a8
                  timestamp:
                    type: string
                    description: Response timestamp
                    example: '2025-11-12T20:49:03.293Z'
                required:
                  - data
                  - requestId
                  - timestamp
        '400':
          description: Invalid query parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '401':
          description: Invalid or missing auth token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '403':
          description: Your organization is not entitled to the public API
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '404':
          description: downstreamEntityId is not in your organization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
components:
  schemas:
    DownstreamMarketResponse:
      type: object
      properties:
        upstreamDownstreamAssociationId:
          type: string
          description: Unique identifier of the market relationship
          example: 6627f1a9c2e0a51b8c0d4e3a
        downstreamEntityId:
          type: string
          description: Which of your entities holds this relationship
          example: 6610b3d2c2e0a51b8c0d1f02
        branchName:
          type: string
          description: The name this carrier records for your location
          example: Philadelphia Branch
        category:
          type: string
          description: How the carrier classifies you in this relationship
          enum:
            - agency
            - agency network
            - wholesale brokerage
            - third party administrator
          example: agency
        upstreamEntity:
          description: The carrier on the other side
          allOf:
            - $ref: '#/components/schemas/DownstreamMarketUpstreamEntityResponse'
        producerCount:
          type: number
          description: Producers attached to this relationship, excluding removed ones
          example: 12
        producerCode:
          type: string
          description: The carrier internal code for this relationship
          example: PA-0042
        externalId:
          type: string
          description: External identifier the carrier stores for you
          example: CRM-88213
        doingBusinessAs:
          type: string
          description: Doing-business-as name on this relationship
          example: Example Insurance
        website:
          type: string
          description: Website recorded on this relationship
          example: https://example-insurance.com
        portalUrl:
          type: string
          description: The carrier agent or partner portal for this relationship
          example: https://partners.example.example/login
        phoneNumber:
          type: string
          description: Phone number on this relationship
          example: '+12155550100'
        faxNumber:
          type: string
          description: Fax number on this relationship
          example: '+12155550101'
        legalAddress:
          description: Legal address on this relationship
          allOf:
            - $ref: '#/components/schemas/MarketAddressResponse'
        mailingAddress:
          description: Mailing address on this relationship
          allOf:
            - $ref: '#/components/schemas/MarketAddressResponse'
        onboarding:
          description: Your onboarding progress with this carrier
          allOf:
            - $ref: '#/components/schemas/DownstreamMarketOnboardingResponse'
        isInvited:
          type: boolean
          description: Whether the carrier has sent an onboarding invitation
          example: true
        hasAcknowledgedTerms:
          type: boolean
          description: Whether you have acknowledged this carrier terms
          example: true
        parentUpstreamDownstreamAssociationId:
          type: string
          description: >-
            The parent relationship in the CARRIER branch structure, which is
            independent of your own org chart. Absent on a head-office row.
          example: 6627f1a9c2e0a51b8c0d4e39
        createdAt:
          type: string
          description: ISO 8601 creation timestamp
          example: '2025-01-15T10:30:00.000Z'
        updatedAt:
          type: string
          description: ISO 8601 last-update timestamp
          example: '2025-06-02T08:12:44.000Z'
      required:
        - upstreamDownstreamAssociationId
        - downstreamEntityId
        - branchName
        - category
        - upstreamEntity
        - producerCount
        - onboarding
        - isInvited
        - hasAcknowledgedTerms
    ErrorResponseDto:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
        requestId:
          type: string
          description: Unique request identifier for debugging
        errorType:
          type: string
          description: >-
            Machine-readable error classification. Branch on this rather than on
            `errorMessage`, which is prose and may change. Authentication
            failures returned by our identity provider are forwarded verbatim,
            so a 401 can carry a code outside this list; treat an unrecognised
            value as a generic failure of its HTTP status.
          enum:
            - conflict
            - contact_not_authorized
            - document_exceeds_page_limit
            - downstream_entity_member_exists
            - duplicate_external_id_error
            - duplicate_member_email
            - duplicate_producer_code_error
            - forbidden
            - gateway_timeout
            - inactive_email
            - internal_server_error
            - invalid_email
            - invalid_email_for_invites
            - invalid_organization_category
            - invalid_organization_slug
            - invalid_phone_number
            - invalid_token
            - invite_limit_reached
            - jwt_invalid
            - m2m_client_not_found
            - not_found
            - organization_already_exists
            - organization_slug_already_used
            - payment_required
            - producer_agreement_required
            - product_feature_subscription_required
            - service_unavailable
            - session_authorization_error
            - some_custom_error_string
            - throttled
            - too_many_requests
            - unauthorized
            - unauthorized_client
            - unexpected_400_stytch_error
            - unexpected_403_stytch_error
            - unexpected_404_stytch_error
            - unexpected_error
            - unexpected_stytch_error
            - unprocessable_entity
            - validation_error
          example: validation_error
        errorMessage:
          description: Array of error messages
          type: array
          items:
            type: string
        timestamp:
          type: string
          description: ISO timestamp when the error occurred
        details:
          type: object
          description: Additional error context
      required:
        - statusCode
        - requestId
        - errorType
        - errorMessage
        - timestamp
    DownstreamMarketUpstreamEntityResponse:
      type: object
      properties:
        upstreamEntityId:
          type: string
          description: Unique identifier of the carrier
          example: 65f0a1b2c3d4e5f6a7b8c9d0
        legalName:
          type: string
          description: Registered legal name of the carrier
          example: Example Specialty Insurance Co.
        category:
          type: string
          description: What kind of upstream organization this is
          enum:
            - carrier
            - wholesaler
            - mga
            - third party administrator
            - service provider
            - governmental
          example: carrier
      required:
        - upstreamEntityId
        - legalName
        - category
    MarketAddressResponse:
      type: object
      properties:
        line1:
          type: string
          description: Street address line 1
          example: 1200 Market St
        line2:
          type: string
          description: Street address line 2
          example: Suite 400
        city:
          type: string
          description: City
          example: Philadelphia
        zip:
          type: string
          description: ZIP code
          example: '19107'
        state:
          type: string
          description: Two-letter state code
          enum:
            - AL
            - AK
            - AZ
            - AR
            - CA
            - CO
            - CT
            - DE
            - FL
            - GA
            - HI
            - ID
            - IL
            - IN
            - IA
            - KS
            - KY
            - LA
            - ME
            - MD
            - MA
            - MI
            - MN
            - MS
            - MO
            - MT
            - NE
            - NV
            - NH
            - NJ
            - NM
            - NY
            - NC
            - ND
            - OH
            - OK
            - OR
            - PA
            - RI
            - SC
            - SD
            - TN
            - TX
            - UT
            - VT
            - VA
            - WA
            - WV
            - WI
            - WY
          example: PA
        country:
          type: string
          description: Country
          example: USA
      required:
        - country
    DownstreamMarketOnboardingResponse:
      type: object
      properties:
        isIdentityDone:
          type: boolean
          description: Identity verification step complete
          example: true
        isProfileDone:
          type: boolean
          description: Agency profile step complete
          example: true
        isMemberCreationDone:
          type: boolean
          description: Member creation step complete
          example: true
        isUploadDocumentsDone:
          type: boolean
          description: >-
            Document upload step complete. Absent when this carrier does not
            require the step.
          example: true
        isRequestedAuthorityDone:
          type: boolean
          description: Requested-authority step complete. Absent when not required.
          example: false
        isPaymentDetailsDone:
          type: boolean
          description: Payment details step complete. Absent when not required.
          example: false
        isCustomQuestionsDone:
          type: boolean
          description: Custom questions step complete. Absent when not required.
          example: false
        isLicensedProducersDone:
          type: boolean
          description: Licensed producers step complete. Absent when not required.
          example: false
        isPreContractReviewDone:
          type: boolean
          description: Pre-contract review step complete. Absent when not required.
          example: false
        isContractSigned:
          type: boolean
          description: Whether the producer agreement is fully executed
          example: false
      required:
        - isIdentityDone
        - isProfileDone
        - isMemberCreationDone

````

## Related topics

- [List Market Contacts](/api-reference/v1/market-contacts/list-market-contacts.md)
- [List a Market's Contacts](/api-reference/v2/downstream/markets/market-contacts.md)
- [List a Market's Documents](/api-reference/v2/downstream/markets/market-documents.md)
