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

> Get one routing form by ID via the Zeeg API, including its questions in inputs and its routes with the rules that select each destination.

Returns one routing form with its questions in `inputs` and its routes in `routes`.

A question carries its `type`, its `options`, and the CRM attribute it maps onto. A question that takes no options carries an empty `options` array.

A route carries its destination and the `rules` that select it. Exactly one route is the fallback, which takes every submission that matches no other route. The fallback carries an empty `rules` array.

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


## OpenAPI

````yaml GET /routing-forms/{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-forms/{id}:
    get:
      tags:
        - Routing Forms - Forms
      summary: Get a routing form
      description: >-
        Returns one routing form with its questions in `inputs` and its routes
        in `routes`.


        A routing form outside your workspace answers 404, so the response never
        tells you that the routing form 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
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID of the routing form.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  status:
                    type: integer
                    example: 200
                  routingForm:
                    $ref: '#/components/schemas/RoutingFormDetail'
              examples:
                Success:
                  value:
                    success: true
                    status: 200
                    routingForm:
                      id: f1cbafc4-b646-4cf9-af29-193491b555d9
                      name: Inbound Lead Qualification
                      slug: inbound-lead-qual
                      url: https://zeeg.me/RF/inbound-lead-qual
                      isActive: true
                      headline: Tell us about your team
                      body: null
                      submitBtnText: Continue
                      styleSettings:
                        bgColor: '#ffffff'
                        buttonBgColor: '#1f2937'
                        buttonTextColor: '#ffffff'
                      createdAt: '2026-04-01T09:12:44+00:00'
                      updatedAt: '2026-04-10T08:30:00+00:00'
                      inputs:
                        - id: f7c82298-6dd9-43bd-98e4-c437b5c0ae47
                          label: What is your company size?
                          type: SELECT
                          order: 0
                          isRequired: true
                          isActive: true
                          options:
                            - 1-10 employees
                            - 50-200 employees
                          crmAttribute: null
                      routes:
                        - id: c4a1e0d2-5f39-4a7b-8f11-2b6d0c9e7a84
                          type: EVENT_TYPE
                          isFallback: false
                          order: 0
                          customUrl: null
                          headline: null
                          body: 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
                          rules:
                            all:
                              - inputId: f7c82298-6dd9-43bd-98e4-c437b5c0ae47
                                operator: is_any_of
                                values:
                                  - 50-200 employees
                        - id: 2e7f4b90-8a13-4c6d-b5e2-7f0a9c3d1e64
                          type: CUSTOM_PAGE
                          isFallback: true
                          order: 1
                          customUrl: null
                          headline: Thank you
                          body: >-
                            A member of the team contacts you within one working
                            day.
                          eventType: null
                          team: null
                          rules: []
        '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:
    RoutingFormDetail:
      description: >-
        A routing form with its questions and its routes, as returned when you
        fetch one routing form.
      allOf:
        - $ref: '#/components/schemas/RoutingForm'
        - type: object
          properties:
            inputs:
              type: array
              description: >-
                The questions of the routing form, which the invitee answers in
                the given order.
              items:
                $ref: '#/components/schemas/RoutingFormInput'
            routes:
              type: array
              description: >-
                The routes of the routing form. Exactly one route is the
                fallback.
              items:
                $ref: '#/components/schemas/RoutingFormRoute'
    RoutingForm:
      type: object
      description: >-
        A routing form, as returned by the list endpoint. The questions and the
        routes ship from the detail endpoint only.
      properties:
        id:
          type: string
          format: uuid
          example: f1cbafc4-b646-4cf9-af29-193491b555d9
        name:
          type: string
          description: The internal name of the routing form.
          example: Inbound Lead Qualification
        slug:
          type: string
          description: The slug that addresses the routing form in its public URL.
          example: inbound-lead-qual
        url:
          type: string
          format: uri
          description: The public address at which an invitee opens the routing form.
          example: https://zeeg.me/RF/inbound-lead-qual
        isActive:
          type: boolean
          description: An inactive routing form accepts no submission.
          example: true
        headline:
          type: string
          nullable: true
          description: The headline that the routing form shows above the questions.
          example: Tell us about your team
        body:
          type: string
          nullable: true
          description: The body text that the routing form shows below the headline.
          example: null
        submitBtnText:
          type: string
          nullable: true
          description: The label on the submit button of the routing form.
          example: Continue
        styleSettings:
          $ref: '#/components/schemas/RoutingFormStyleSettings'
        createdAt:
          type: string
          format: date-time
          nullable: true
          description: Time at which the routing form was created, in UTC.
          example: '2026-04-01T09:12:44+00:00'
        updatedAt:
          type: string
          format: date-time
          nullable: true
          description: Time of the last change to the routing form, in UTC.
          example: '2026-04-10T08:30:00+00:00'
    RoutingFormInput:
      type: object
      description: One question of a routing form.
      properties:
        id:
          type: string
          format: uuid
          example: f7c82298-6dd9-43bd-98e4-c437b5c0ae47
        label:
          type: string
          description: The question text that the invitee reads.
          example: What is your company size?
        type:
          type: string
          description: The answer control that the routing form shows for this question.
          enum:
            - TEXT_INPUT
            - TEXTAREA
            - SELECT
            - RADIO_INPUT
            - EMAIL
            - PHONE_NUMBER
            - NUMBER_INPUT
            - CRM_ATTRIBUTE
          example: SELECT
        order:
          type: integer
          description: >-
            Position of the question in the routing form. The first question
            carries `0`.
          example: 0
        isRequired:
          type: boolean
          description: True when the invitee must answer the question.
          example: true
        isActive:
          type: boolean
          description: The routing form hides the question when this is false.
          example: true
        options:
          type: array
          description: >-
            The selectable values of the question. A `SELECT` or `RADIO_INPUT`
            question carries plain strings. A `CRM_ATTRIBUTE` question carries
            the option objects of the CRM attribute. Every other type carries an
            empty array.
          items:
            oneOf:
              - type: string
              - type: object
          example:
            - 1-10 employees
            - 50-200 employees
        crmAttribute:
          $ref: '#/components/schemas/RoutingFormCrmAttributeReference'
    RoutingFormRoute:
      type: object
      description: >-
        One route of a routing form. A route sends the invitee to a destination
        after the routing form accepts the answers.
      properties:
        id:
          type: string
          format: uuid
          example: c4a1e0d2-5f39-4a7b-8f11-2b6d0c9e7a84
        type:
          type: string
          description: >-
            The kind of destination. `EVENT_TYPE` opens a scheduling page,
            `TEAM_PAGE` opens the page of a team, `URL` redirects to an external
            address, and `CUSTOM_PAGE` shows a message inside the routing form.
          enum:
            - EVENT_TYPE
            - URL
            - CUSTOM_PAGE
            - TEAM_PAGE
          example: EVENT_TYPE
        isFallback:
          type: boolean
          description: >-
            The fallback route takes every submission that matches no other
            route.
          example: false
        order:
          type: integer
          description: >-
            Position of the route in the routing form. The first route carries
            `0`. The routing form takes the first route whose conditions hold.
          example: 0
        customUrl:
          type: string
          nullable: true
          description: >-
            Destination address of a `URL` route. It is `null` for every other
            type.
          example: null
        headline:
          type: string
          nullable: true
          description: Headline of a `CUSTOM_PAGE` route.
          example: Thank you
        body:
          type: string
          nullable: true
          description: Body text of a `CUSTOM_PAGE` route.
          example: A member of the team contacts you within one working day.
        eventType:
          $ref: '#/components/schemas/RoutingFormEventTypeReference'
        team:
          $ref: '#/components/schemas/RoutingFormTeamReference'
        rules:
          description: >-
            The condition tree that selects this route. A node is either a group
            or a condition. A group holds child nodes under `any` for OR, or
            under `all` for AND. A condition holds `inputId`, `operator` and
            `values`. The operator is one of `equals`, `does_not_equal`,
            `is_any_of`, `is_not_any_of`, `contains`, `does_not_contain`,
            `starts_with`, `ends_with`, `greater_than`, `greater_than_or_equal`,
            `less_than`, `less_than_or_equal`, `is_empty` or `is_not_empty`. The
            fallback route carries an empty array, because it needs no
            condition.
          oneOf:
            - type: object
              additionalProperties: true
            - type: array
              items: {}
          example:
            all:
              - inputId: f7c82298-6dd9-43bd-98e4-c437b5c0ae47
                operator: is_any_of
                values:
                  - 50-200 employees
    RoutingFormStyleSettings:
      type: object
      description: >-
        The colours of the public routing form page. Each value is a CSS colour
        of at most 20 characters, or `null` when the routing form sets no
        colour. A response always carries the object with all three keys. The
        write endpoints accept the same shape, so a routing form that you read
        goes straight back to `PATCH /routing-forms/{id}` without reshaping.
      properties:
        bgColor:
          type: string
          nullable: true
          maxLength: 20
          description: Background colour of the page.
          example: '#ffffff'
        buttonBgColor:
          type: string
          nullable: true
          maxLength: 20
          description: Background colour of the submit button.
          example: '#1f2937'
        buttonTextColor:
          type: string
          nullable: true
          maxLength: 20
          description: Text colour of the submit button.
          example: '#ffffff'
    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
    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
  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: ''

````