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/