> ## 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.

# Get a Surplus-Lines Filing

> One filing with its escalations and finished documents

Returns one filing with its policy and tax detail, the escalation threads on the checklist items you can see, and any finished filing documents.

Returns **404** when the filing was not submitted by your organization, which is the same response as an id that does not exist.

## Escalations

An escalation is a thread on one checklist item. `status` tells you whether Turris is waiting on you, and each message carries an `authorLabel` of either `Turris` or `Agency` rather than a user identity.

Checklist categories Turris keeps internal are excluded entirely, along with their reference fields. Replying to a thread happens in the Turris agency application; this API is read-only.

## Completion artifacts

Finished documents, such as the accepted stamped filing, arrive as `downloadUrl` and `viewUrl` presigned links.

<Warning>
  Those links are short-lived. Fetch the file when you receive the response rather than storing the URL, and never place it in a public page. An artifact whose link could not be signed is omitted rather than returned with a dead URL.
</Warning>

## Taxes

`totalTaxDue` is `null` until Turris has computed the tax for the filing. `grossPremium` is always present.


## OpenAPI

````yaml openapi/v2.json GET /v2/downstream/surplus-lines-filings/{filingId}
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/surplus-lines-filings/{filingId}:
    get:
      tags:
        - downstream/surplus-lines-filings
      summary: Get a surplus-lines filing
      description: >-
        Returns one filing with its policy and tax detail, the escalation
        threads on the checklist items you can see, and any finished filing
        documents as short-lived presigned links. Checklist categories Turris
        keeps internal are excluded entirely. Returns 404 if the filing was not
        filed by your organization, which is the same response as an id that
        does not exist.
      operationId: DownstreamSurplusLinesController_getFiling_v2
      parameters:
        - name: filingId
          required: true
          in: path
          description: The filing id
          schema:
            example: 6650a1b2c3d4e5f6a7b8c9d0
            type: string
      responses:
        '200':
          description: Surplus-lines filing detail
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: >-
                      #/components/schemas/DownstreamSurplusLinesFilingDetailResponse
                  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 filing id
          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, or does not
            have the Surplus-Lines Filing feature
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '404':
          description: Filing not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
components:
  schemas:
    DownstreamSurplusLinesFilingDetailResponse:
      type: object
      properties:
        filingId:
          type: string
          description: The filing id
          example: 6650a1b2c3d4e5f6a7b8c9d0
        downstreamEntityId:
          type: string
          description: >-
            Which of your entities filed it. Present because the list covers
            your whole subtree.
          example: 6610b3d2c2e0a51b8c0d1f02
        externalReference:
          type: string
          description: Your own reference recorded on the filing
          nullable: true
          example: REF-2026-0001
        policyNumber:
          type: string
          description: Policy number the filing covers
          example: POL-123456
        stateCode:
          type: string
          description: The state the filing was made in
          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
            - GU
            - PR
            - VI
            - DC
          example: PA
        policyTransactionType:
          type: string
          description: What kind of transaction the filing records
          enum:
            - bind
            - endorsement
            - renewal
            - cancellation
          example: bind
        status:
          type: string
          description: Where the filing stands
          enum:
            - not started
            - in progress
            - ready to file
            - filed
            - completed
            - on hold
            - canceled
          example: not started
        actionRequired:
          type: boolean
          description: >-
            True when Turris is waiting on something from you. See the
            escalations on the detail endpoint.
          example: false
        effectiveDate:
          type: string
          description: Policy effective date
          nullable: true
          example: '2026-01-01T00:00:00.000Z'
        updatedAt:
          type: string
          description: When the filing last changed
          example: '2026-06-01T12:00:00.000Z'
        namedInsured:
          type: string
          description: The insured named on the policy
          example: Example Corp
        carrier:
          type: string
          description: The carrier writing the policy
          example: Example Mutual Insurance Company
        carrierNaicCode:
          type: string
          description: The carrier NAIC code
          example: '12345'
        grossPremium:
          type: number
          description: Gross premium, in dollars
          example: 25000
        totalTaxDue:
          type: number
          description: Total tax due once Turris has computed it, otherwise null
          nullable: true
          example: 875.5
        escalations:
          description: Open and resolved escalations on the checklist items you can see
          type: array
          items:
            $ref: '#/components/schemas/EscalationResponse'
        completionArtifacts:
          description: Finished filing documents, each with short-lived presigned links
          type: array
          items:
            $ref: '#/components/schemas/CompletionArtifactResponse'
      required:
        - filingId
        - downstreamEntityId
        - policyNumber
        - stateCode
        - policyTransactionType
        - status
        - actionRequired
        - updatedAt
        - namedInsured
        - carrier
        - carrierNaicCode
        - grossPremium
        - escalations
        - completionArtifacts
    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
    EscalationResponse:
      type: object
      properties:
        checklistItemLabel:
          type: string
          description: The checklist item label this escalation is attached to
        status:
          type: string
          description: Current status of the escalation
          enum:
            - waiting turris input
            - waiting customer input
            - resolved
          example: waiting customer input
        openedAt:
          type: string
          description: ISO 8601 timestamp when the escalation was opened
          nullable: true
        resolvedAt:
          type: string
          description: ISO 8601 timestamp when the escalation was resolved
          nullable: true
        messages:
          description: Chronological list of messages on this escalation
          type: array
          items:
            $ref: '#/components/schemas/EscalationMessageResponse'
      required:
        - checklistItemLabel
        - status
        - messages
    CompletionArtifactResponse:
      type: object
      properties:
        type:
          type: string
          description: Type of completion artifact
          enum:
            - accepted stamped
            - receipt
            - confirmation
            - tax remittance proof
          example: accepted stamped
        fileName:
          type: string
          description: Original file name of the artifact
          example: stamped-filing.pdf
        uploadedAt:
          type: string
          description: ISO 8601 timestamp when the artifact was uploaded
          example: '2025-06-15T09:00:00.000Z'
        downloadUrl:
          type: string
          description: Short-lived presigned URL to download the artifact file
        viewUrl:
          type: string
          description: Short-lived presigned URL to view the artifact inline in the browser
      required:
        - type
        - fileName
        - uploadedAt
        - downloadUrl
        - viewUrl
    EscalationMessageResponse:
      type: object
      properties:
        authorLabel:
          type: string
          description: Display label for the message author (Turris or Agency)
          example: Turris
        body:
          type: string
          description: Message body text
        createdAt:
          type: string
          description: ISO 8601 timestamp when the message was created
          example: '2025-06-01T12:00:00.000Z'
      required:
        - authorLabel
        - body
        - createdAt

````

## Related topics

- [List Surplus-Lines Filings](/api-reference/v2/downstream/surplus-lines-filings/list-filings.md)
- [Surplus Lines Filings](/api-reference/v1/surplus-lines-filings/list-filings.md)
- [Surplus Lines Filing](/api-reference/v2/surplus-lines-filings/get-filing.md)
