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

# Get a survey

> Returns the resource only when it belongs to the organization encoded in the tenant API key. Missing and cross-tenant identifiers both return 404.



## OpenAPI

````yaml /api-reference/openapi.json get /api/v1/surveys/{surveyId}
openapi: 3.1.0
info:
  title: Nautilus Public API
  version: 1.0.0
  description: >-
    Tenant-scoped public API. Except for /api/v1/openapi.json, requests use a
    Clerk tenant API key as a Bearer token. The key's organizationId is the sole
    tenant scope; organization IDs supplied by callers are never accepted.
    Detail endpoints deliberately return 404 for both missing and cross-tenant
    records. Canonical collections use the standard envelope and endpoint-bound
    cursor pagination. Timestamps are UTC ISO 8601 values and monetary amounts
    ending in Cents are integer cents. Responses use narrow serializers and
    exclude credentials, API keys, provider configuration, access tokens,
    webhook secrets, raw provider payloads, and internal workflow or activity
    data.
servers:
  - url: https://app.nautilus.co
security:
  - tenantApiKey: []
tags:
  - name: Contract
  - name: Cancellations
  - name: Sites
  - name: Products
  - name: Checkout links
  - name: Purchases
  - name: Contact lists
  - name: Contacts
  - name: Marketing
  - name: Forms
  - name: Vouchers
  - name: Links
  - name: Automations
  - name: Surveys
  - name: Cases
  - name: Sonny's POS
  - name: Analytics
  - name: Messaging
  - name: Legacy
    description: Deprecated noncanonical endpoints retained for compatibility.
paths:
  /api/v1/surveys/{surveyId}:
    get:
      tags:
        - Surveys
      summary: Get a survey
      description: >-
        Returns the resource only when it belongs to the organization encoded in
        the tenant API key. Missing and cross-tenant identifiers both return
        404.
      operationId: getSurvey
      parameters:
        - name: surveyId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Tenant-scoped resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Survey'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    Survey:
      type: object
      additionalProperties: false
      properties:
        id:
          type: string
        surveyType:
          type: string
        name:
          type: string
        description:
          anyOf:
            - type: string
            - type: 'null'
        isPublished:
          type: boolean
        config:
          $ref: '#/components/schemas/SurveyConfig'
        publicUrl:
          type: string
        parentSurveyId:
          anyOf:
            - type: string
            - type: 'null'
        createdAt:
          type: string
          format: date-time
          description: UTC ISO 8601 timestamp.
        updatedAt:
          type: string
          format: date-time
          description: UTC ISO 8601 timestamp.
      required:
        - id
        - surveyType
        - name
        - description
        - isPublished
        - config
        - publicUrl
        - parentSurveyId
        - createdAt
        - updatedAt
      description: >-
        Sanitized public survey configuration; internal metadata and integration
        configuration are excluded.
    SurveyConfig:
      type: object
      additionalProperties: false
      properties:
        questionText:
          type: string
        incentiveInstructions:
          type: string
        incentiveClaimInstructions:
          type: string
        reviewButtonText:
          type: string
        lowScoreFreetextLabel:
          type: string
        lowScoreFreetextPlaceholder:
          type: string
        highScoreFreetextLabel:
          type: string
        highScoreFreetextPlaceholder:
          type: string
        submitButtonText:
          type: string
        lowScaleLabel:
          type: string
        highScaleLabel:
          type: string
        successMessage:
          type: string
        enableLocationSelection:
          type: boolean
        incentiveEnabled:
          type: boolean
        freetextThreshold:
          type: number
        visibleLocationIds:
          type: array
          items:
            type: string
        categoryContent:
          $ref: '#/components/schemas/SurveyCategoryContent'
        freetextLabel:
          type: string
        freetextPlaceholder:
          type: string
        enableFreetext:
          type: boolean
        freetextRequired:
          type: boolean
        satisfactionLabel:
          type: string
        notesLabel:
          type: string
        notesPlaceholder:
          type: string
        redirectInterstitialMessage:
          type: string
        redirectInterstitialButtonText:
          type: string
        enableSatisfaction:
          type: boolean
        enableNotes:
          type: boolean
        notesRequired:
          type: boolean
        redirectInterstitialEnabled:
          type: boolean
      required: []
      description: >-
        Allowlisted survey configuration. Webhooks, provider settings,
        credentials, tokens, workflow payloads, and internal metadata are
        excluded.
    Error:
      type: object
      additionalProperties: false
      properties:
        error:
          type: string
      required:
        - error
    SurveyCategoryContent:
      type: object
      additionalProperties: false
      properties:
        negative:
          $ref: '#/components/schemas/SurveyCategoryContentItem'
        neutral:
          $ref: '#/components/schemas/SurveyCategoryContentItem'
        positive:
          $ref: '#/components/schemas/SurveyCategoryContentItem'
        detractor:
          $ref: '#/components/schemas/SurveyCategoryContentItem'
        passive:
          $ref: '#/components/schemas/SurveyCategoryContentItem'
        promoter:
          $ref: '#/components/schemas/SurveyCategoryContentItem'
      required: []
    SurveyCategoryContentItem:
      type: object
      additionalProperties: false
      properties:
        label:
          type: string
        buttonText:
          type: string
        buttonUrl:
          type: string
        freetextPlaceholder:
          type: string
      required: []
  responses:
    BadRequest:
      description: >-
        Malformed parameters, unsupported provider, or unavailable resource for
        this organization.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing, invalid, legacy, or non-tenant Bearer credential.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: >-
        The resource does not exist, is unavailable, or belongs to another
        organization.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalServerError:
      description: Internal server error. No internal exception data is exposed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    tenantApiKey:
      type: http
      scheme: bearer
      bearerFormat: Clerk tenant API key
      description: >-
        Clerk tenant API key. The organizationId encoded by the key is the exact
        and only tenant scope.

````