Tripetto Forms API

Create and manage form definitions

OpenAPI Specification

tripetto-forms-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Tripetto FormBuilder SDK Forms API
  description: The Tripetto FormBuilder SDK API provides capabilities for building and running smart conversational forms and surveys. The SDK exposes client-side JavaScript/TypeScript APIs for embedding form builders and runners into web applications, along with webhook delivery for routing form responses to external services.
  version: 1.0.0
  contact:
    url: https://tripetto.com/help/
  termsOfService: https://tripetto.com/terms/
  license:
    name: Commercial
    url: https://tripetto.com/pricing/
servers:
- url: https://tripetto.com
  description: Tripetto Platform
tags:
- name: Forms
  description: Create and manage form definitions
paths:
  /app/api/forms:
    get:
      operationId: listForms
      summary: List Forms
      description: Retrieve a list of forms created in the Tripetto account.
      tags:
      - Forms
      security:
      - BearerAuth: []
      parameters:
      - name: page
        in: query
        description: Page number for pagination
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        description: Number of forms per page
        schema:
          type: integer
          default: 20
      responses:
        '200':
          description: List of forms
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Form'
                  total:
                    type: integer
                  page:
                    type: integer
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createForm
      summary: Create Form
      description: Create a new form with a definition.
      tags:
      - Forms
      security:
      - BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFormRequest'
      responses:
        '201':
          description: Form created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Form'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /app/api/forms/{formId}:
    get:
      operationId: getForm
      summary: Get Form
      description: Retrieve a specific form by its ID.
      tags:
      - Forms
      security:
      - BearerAuth: []
      parameters:
      - $ref: '#/components/parameters/formId'
      responses:
        '200':
          description: Form details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Form'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateForm
      summary: Update Form
      description: Update an existing form definition.
      tags:
      - Forms
      security:
      - BearerAuth: []
      parameters:
      - $ref: '#/components/parameters/formId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateFormRequest'
      responses:
        '200':
          description: Form updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Form'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteForm
      summary: Delete Form
      description: Delete a form and all its responses.
      tags:
      - Forms
      security:
      - BearerAuth: []
      parameters:
      - $ref: '#/components/parameters/formId'
      responses:
        '204':
          description: Form deleted
        '404':
          $ref: '#/components/responses/NotFound'
components:
  responses:
    Unauthorized:
      description: Authentication credentials missing or invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    CreateFormRequest:
      type: object
      required:
      - name
      - definition
      properties:
        name:
          type: string
          description: Form name
        description:
          type: string
          description: Optional form description
        definition:
          $ref: '#/components/schemas/FormDefinition'
    FormNode:
      type: object
      properties:
        id:
          type: string
          description: Unique node identifier
        type:
          type: string
          description: Block type identifier (e.g., text, email, yes-no, dropdown)
        name:
          type: string
          description: Node/question label
        required:
          type: boolean
          description: Whether a response is required
        settings:
          type: object
          description: Block-specific configuration settings
    UpdateFormRequest:
      type: object
      properties:
        name:
          type: string
          description: Updated form name
        description:
          type: string
          description: Updated form description
        definition:
          $ref: '#/components/schemas/FormDefinition'
    Error:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
        statusCode:
          type: integer
    FormDefinition:
      type: object
      description: JSON definition of a Tripetto form, including nodes, sections, conditions, and logic. Generated by the Builder and consumed by Runners.
      properties:
        nodes:
          type: array
          description: Array of form nodes (questions/blocks)
          items:
            $ref: '#/components/schemas/FormNode'
        sections:
          type: array
          description: Grouping sections within the form
          items:
            $ref: '#/components/schemas/FormSection'
        conditions:
          type: array
          description: Conditional logic rules
          items:
            type: object
    FormSection:
      type: object
      properties:
        id:
          type: string
          description: Unique section identifier
        name:
          type: string
          description: Section label
        nodes:
          type: array
          description: Node IDs within this section
          items:
            type: string
    Form:
      type: object
      properties:
        id:
          type: string
          description: Unique form identifier
        name:
          type: string
          description: Human-readable form name
        description:
          type: string
          description: Optional form description
        definition:
          $ref: '#/components/schemas/FormDefinition'
        created:
          type: string
          format: date-time
          description: Form creation timestamp
        modified:
          type: string
          format: date-time
          description: Last modification timestamp
        responseCount:
          type: integer
          description: Total number of responses collected
  parameters:
    formId:
      name: formId
      in: path
      required: true
      description: The unique identifier of the form
      schema:
        type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Bearer token for API authentication
externalDocs:
  description: Tripetto FormBuilder SDK Documentation
  url: https://tripetto.com/sdk/docs/