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

# Get a Routing Form Submission

> Get one routing form submission by ID via the Zeeg API, with its answers, the route the answers selected, and the UTM and ad-click values captured at submit.

Returns one routing form submission with its answers.

`route` holds the destination that the answers selected, as it stood at the time of the submission. `utm` and `adAttribution` hold the campaign values that the page carried when the invitee sent the submission.

## The two forms of every answer

Each answer ships twice:

* `answer` is the display value. Show this value to a person.
* `rawAnswer` is the stored value. For a question that maps onto a CRM select attribute it is the canonical `{"id","value","color"}` JSON that identifies the option. Map into a CRM by this value.

`questionsAndAnswers` repeats the same answers as a flat map from question text to display value.

<Warning>
  Never show `rawAnswer` to a person. For a CRM select answer it is a JSON blob, not a label.
</Warning>

<Note>
  The id is a UUID. A malformed id answers `404`, not `422`. A submission outside your workspace answers `404` as well.
</Note>


## OpenAPI

````yaml GET /routing-form-submissions/{id}
openapi: 3.0.0
info:
  title: Zeeg Public API
  description: >-
    Zeeg public API documentation.


    ## Authentication

    All endpoints require a Bearer token. You can generate an API token from
    [your Zeeg dashboard](https://app.zeeg.me/account/settings/api-access).


    Each token is scoped to specific permissions (e.g. `events:read`,
    `webhooks:write`). Make sure your token has the required scopes for the
    endpoints you want to use.


    ## Recommended Headers

    We recommend including the `Accept: application/json` header in all API
    requests to ensure you receive JSON responses.
  version: 2.0.0
  x-logo:
    url: https://app.zeeg.me/img/logo-dark.2ca83593.svg
    backgroundColor: '#f7f7f9'
    altText: zeeg
  contact:
    name: Zeeg Support
    email: support@zeeg.me
    url: https://zeeg.me/en/contact
  license:
    name: Proprietary
    url: https://zeeg.me/en/legal/terms
  termsOfService: https://zeeg.me/en/legal/terms
servers:
  - url: https://api.zeeg.me/v2
    description: Production
security:
  - bearer: []
tags:
  - name: Scheduled Events
    description: Management of events scheduled via Zeeg
  - name: Scheduling Pages
    description: Scheduling pages information and management
  - name: Availability Schedule
    description: Read and change availability for users
  - name: Webhooks
    description: Webhooks management
  - name: Notes
    description: Notes for scheduled events
  - name: Workspaces & Teams
    description: Workspace users and team member management
  - name: AI Agent
    description: AI Agent integration endpoints
  - name: Payloads
    description: Webhook payload schemas
  - name: CRM - Objects
    description: >-
      Discover the schema of CRM objects (standard and custom) including all
      attribute definitions
  - name: CRM - Companies
    description: Create, read, update, and delete CRM company records
  - name: CRM - People
    description: Create, read, update, and delete CRM person records
  - name: Routing Forms - Forms
    description: Read routing forms with their questions and their routes
  - name: Routing Forms - Submissions
    description: Read and delete the submissions that invitees send through a routing form
paths:
  /routing-form-submissions/{id}:
    get:
      tags:
        - Routing Forms - Submissions
      summary: Get a routing form submission
      description: >-
        Returns one routing form submission with its answers.


        A submission outside your workspace answers 404, so the response never
        tells you that the submission exists. An id that is not a UUID answers
        404 as well.


        **Required scope:** `routing_forms:read` or `routing_forms:write`
      operationId: get-routing-form-submission
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID of the submission.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  status:
                    type: integer
                    example: 200
                  submission:
                    $ref: '#/components/schemas/RoutingFormSubmission'
              examples:
                Success:
                  value:
                    success: true
                    status: 200
                    submission:
                      id: 71621fb7-30b0-4d91-9f2e-a3e009cc6853
                      createdAt: '2026-04-10T08:30:00+00:00'
                      routingForm:
                        id: f1cbafc4-b646-4cf9-af29-193491b555d9
                        name: Inbound Lead Qualification
                        slug: inbound-lead-qual
                      route:
                        type: EVENT_TYPE
                        isFallback: false
                        customUrl: null
                        headline: null
                        eventType:
                          id: 80f46bf5-eb01-4c07-960e-a9a3e18aae5e
                          title: 30-Minute Discovery Call
                          slug: 30min-discovery-call
                          uri: >-
                            https://api.zeeg.me/v2/event-types/80f46bf5-eb01-4c07-960e-a9a3e18aae5e
                        team: null
                      answers:
                        - inputId: f7c82298-6dd9-43bd-98e4-c437b5c0ae47
                          order: 1
                          question: What is your company size?
                          type: object
                          answer: 50-200 employees
                          rawAnswer: >-
                            {"id":"size-50-200","value":"50-200
                            employees","color":"blue"}
                          crmAttribute:
                            objectSlug: companies
                            attributeSlug: size
                      questionsAndAnswers:
                        What is your company size?: 50-200 employees
                      utm:
                        campaign: spring_launch
                        source: linkedin
                      adAttribution:
                        gclid: Cj0KCQjw_pO_BhDgARIsAOgg
        '401':
          $ref: '#/components/responses/401'
        '403':
          description: >-
            Forbidden — the token misses the scope, or the user may not read
            this routing form
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      error:
                        type: object
                        properties:
                          type:
                            type: string
                          message:
                            type: string
                          error_id:
                            type: string
                          required_scopes:
                            type: array
                            items:
                              type: string
                  - type: object
                    properties:
                      success:
                        type: boolean
                      message:
                        type: string
                      status:
                        type: integer
              examples:
                Missing scope:
                  value:
                    error:
                      type: insufficient_scope
                      message: >-
                        Your token is missing the required scope(s). Include at
                        least one of: routing_forms:read, routing_forms:write.
                      error_id: 6f0a2d31-9c4e-4a80-8f2b-1d5c7e9a4b03
                      required_scopes:
                        - routing_forms:read
                        - routing_forms:write
                No permission:
                  value:
                    success: false
                    message: You don't have permission to view this routing form.
                    status: 403
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: integer
              examples:
                Not found:
                  value:
                    success: false
                    message: Data Not Found
                    status: 404
      security:
        - bearer: []
components:
  schemas:
    RoutingFormSubmission:
      type: object
      description: >-
        One set of answers that an invitee sent through a routing form, together
        with the route that the answers selected.
      properties:
        id:
          type: string
          format: uuid
          example: 71621fb7-30b0-4d91-9f2e-a3e009cc6853
        createdAt:
          type: string
          format: date-time
          nullable: true
          description: Time at which the invitee sent the submission, in UTC.
          example: '2026-04-10T08:30:00+00:00'
        routingForm:
          type: object
          description: The routing form that the invitee filled in.
          properties:
            id:
              type: string
              format: uuid
              example: f1cbafc4-b646-4cf9-af29-193491b555d9
            name:
              type: string
              example: Inbound Lead Qualification
            slug:
              type: string
              example: inbound-lead-qual
        route:
          type: object
          description: >-
            The route that the answers selected, as it stood at the time of the
            submission.
          properties:
            type:
              type: string
              nullable: true
              enum:
                - EVENT_TYPE
                - URL
                - CUSTOM_PAGE
                - TEAM_PAGE
              example: EVENT_TYPE
            isFallback:
              type: boolean
              description: >-
                True when the answers matched no route and the fallback route
                took the submission.
              example: false
            customUrl:
              type: string
              nullable: true
              description: Destination address of a `URL` route.
              example: null
            headline:
              type: string
              nullable: true
              description: The headline that the invitee saw, with the HTML tags removed.
              example: null
            eventType:
              $ref: '#/components/schemas/RoutingFormEventTypeReference'
            team:
              $ref: '#/components/schemas/RoutingFormTeamReference'
        answers:
          type: array
          description: The answers of the submission, in the order of the questions.
          items:
            $ref: '#/components/schemas/RoutingFormAnswer'
        questionsAndAnswers:
          type: object
          description: >-
            The same answers as a map. The key is the question text, the value
            is the display answer.
          additionalProperties:
            type: string
          example:
            What is your company size?: 50-200 employees
        utm:
          type: object
          description: >-
            The UTM parameters that the page carried when the invitee sent the
            submission. A parameter that carries no value is absent.
          properties:
            campaign:
              type: string
              example: spring_launch
            source:
              type: string
              example: linkedin
            medium:
              type: string
            content:
              type: string
            term:
              type: string
        adAttribution:
          type: object
          nullable: true
          description: >-
            The advertisement click identifiers that the page carried when the
            invitee sent the submission. It is `null` when the page carried
            none.
          properties:
            gclid:
              type: string
              description: Google Ads click identifier.
            fbclid:
              type: string
              description: Meta click identifier.
            fbp:
              type: string
              description: Meta browser identifier.
            fbc:
              type: string
              description: Meta click cookie value.
            landingUrl:
              type: string
              description: The address at which the visit started.
          example:
            gclid: Cj0KCQjw_pO_BhDgARIsAOgg
    RoutingFormEventTypeReference:
      type: object
      nullable: true
      description: >-
        The event type that a route or a submission points at. It is `null` when
        no event type is set.
      properties:
        id:
          type: string
          format: uuid
          example: 80f46bf5-eb01-4c07-960e-a9a3e18aae5e
        title:
          type: string
          example: 30-Minute Discovery Call
        slug:
          type: string
          example: 30min-discovery-call
        uri:
          type: string
          format: uri
          description: Address of the event type in this API.
          example: >-
            https://api.zeeg.me/v2/event-types/80f46bf5-eb01-4c07-960e-a9a3e18aae5e
    RoutingFormTeamReference:
      type: object
      nullable: true
      description: >-
        The team that a route or a submission points at. It is `null` when no
        team is set.
      properties:
        id:
          type: string
          format: uuid
          example: 3d9b1a77-2c58-4e6a-9f30-8b1c5d4e2f6a
        title:
          type: string
          example: Sales EMEA
        slug:
          type: string
          example: sales-emea
    RoutingFormAnswer:
      type: object
      description: >-
        One answer of a submission. The answer ships twice, once for a person to
        read and once for a machine to map.
      properties:
        inputId:
          type: string
          format: uuid
          description: Id of the question that the invitee answered.
          example: f7c82298-6dd9-43bd-98e4-c437b5c0ae47
        order:
          type: integer
          description: >-
            Position of the question in the routing form at the time of the
            submission. The first question carries `1`, so this counter starts
            one higher than `order` on the question itself.
          example: 1
        question:
          type: string
          nullable: true
          description: The question text at the time of the submission.
          example: What is your company size?
        type:
          type: string
          nullable: true
          description: >-
            The stored type of the answer, for example `text`. A question that
            maps onto a CRM select attribute carries `object`.
          example: object
        answer:
          type: string
          description: The display value of the answer. Show this value to a person.
          example: 50-200 employees
        rawAnswer:
          type: string
          nullable: true
          description: >-
            The stored value of the answer. A question that maps onto a CRM
            select attribute carries the canonical `{"id","value","color"}` JSON
            that identifies the option. Map into a CRM by this value.
          example: '{"id":"size-50-200","value":"50-200 employees","color":"blue"}'
        crmAttribute:
          $ref: '#/components/schemas/RoutingFormCrmAttributeReference'
    RoutingFormCrmAttributeReference:
      type: object
      nullable: true
      description: >-
        The CRM attribute that a question maps onto. It is `null` when the
        question maps onto no attribute.
      properties:
        objectSlug:
          type: string
          description: Slug of the CRM object that holds the attribute.
          example: companies
        attributeSlug:
          type: string
          description: Slug of the attribute on that object.
          example: industries
  responses:
    '401':
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                example: Unauthenticated.
          examples:
            Unauthenticated:
              value:
                message: Unauthenticated.
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: ''

````