FormAssembly Forms API

Create, read, update, and delete form definitions

OpenAPI Specification

formassembly-forms-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: FormAssembly REST Admin Forms API
  description: 'REST API for managing FormAssembly forms, responses, themes, connectors, form elements, and account data. Supports JSON, XML, CSV, and ZIP response formats. OAuth2 authentication is required for all requests. Endpoints vary by deployment edition including Developer Sandbox, FormAssembly.com cloud, and self-hosted Enterprise instances.

    '
  version: 1.0.0
  contact:
    name: FormAssembly Developer Hub
    url: https://help.formassembly.com/help/working-with-the-formassembly-api
  termsOfService: https://www.formassembly.com/terms-of-service/
  license:
    name: Proprietary
servers:
- url: https://app.formassembly.com
  description: FormAssembly.com Cloud
- url: https://developer.formassembly.com
  description: Developer Sandbox
- url: https://{instance_name}.tfaforms.net
  description: Enterprise / Teams / Government Instance
  variables:
    instance_name:
      default: yourinstance
      description: Your FormAssembly enterprise instance name
security:
- oauth2: []
tags:
- name: Forms
  description: Create, read, update, and delete form definitions
paths:
  /api_v1/forms/index.{format}:
    get:
      operationId: listForms
      summary: List user's forms
      description: Returns a list of all forms belonging to the authenticated user.
      tags:
      - Forms
      parameters:
      - $ref: '#/components/parameters/formatJson'
      responses:
        '200':
          description: List of forms
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormList'
            application/xml:
              schema:
                $ref: '#/components/schemas/FormList'
  /admin/api_v1/forms/index.{format}:
    get:
      operationId: adminListForms
      summary: List all forms (Admin)
      description: Admin-only endpoint that returns all forms across all users in the account.
      tags:
      - Forms
      parameters:
      - $ref: '#/components/parameters/formatJson'
      responses:
        '200':
          description: List of all forms
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormList'
            application/xml:
              schema:
                $ref: '#/components/schemas/FormList'
  /api_v1/forms/view/{formId}.{format}:
    get:
      operationId: getForm
      summary: View form definition
      description: Returns the full definition of a specific form including its XML structure.
      tags:
      - Forms
      parameters:
      - $ref: '#/components/parameters/formId'
      - $ref: '#/components/parameters/formatJson'
      responses:
        '200':
          description: Form definition
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Form'
            application/xml:
              schema:
                $ref: '#/components/schemas/Form'
        '404':
          description: Form not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api_v1/forms/create.{format}:
    post:
      operationId: createForm
      summary: Create a new form
      description: Creates a new form with the provided XML definition and metadata.
      tags:
      - Forms
      parameters:
      - $ref: '#/components/parameters/formatJson'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                xml_data:
                  type: string
                  description: XML definition of the form structure
                builder_version:
                  type: string
                  description: Version of the form builder
                language:
                  type: string
                  description: Language code (e.g., en_US)
                name:
                  type: string
                  description: Display name for the form
      responses:
        '200':
          description: Form created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Form'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api_v1/forms/edit/{formId}.{format}:
    post:
      operationId: updateForm
      summary: Update an existing form
      description: Updates the definition and metadata of an existing form.
      tags:
      - Forms
      parameters:
      - $ref: '#/components/parameters/formId'
      - $ref: '#/components/parameters/formatJson'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                xml_data:
                  type: string
                  description: Updated XML definition of the form
                builder_version:
                  type: string
                language:
                  type: string
                name:
                  type: string
      responses:
        '200':
          description: Form updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Form'
        '404':
          description: Form not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api_v1/forms/delete/{formId}.{format}:
    post:
      operationId: deleteForm
      summary: Delete a form
      description: Permanently deletes the specified form and all associated data.
      tags:
      - Forms
      parameters:
      - $ref: '#/components/parameters/formId'
      - $ref: '#/components/parameters/formatJson'
      responses:
        '200':
          description: Form deleted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
        '404':
          description: Form not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    FormList:
      type: object
      properties:
        forms:
          type: array
          items:
            $ref: '#/components/schemas/Form'
    Form:
      type: object
      properties:
        id:
          type: integer
          description: Unique identifier of the form
        name:
          type: string
          description: Display name of the form
        language:
          type: string
          description: Language code of the form
        builder_version:
          type: string
          description: Version of the form builder used
        xml_data:
          type: string
          description: XML definition of the form structure
      required:
      - id
      - name
    SuccessResponse:
      type: object
      properties:
        status:
          type: string
          enum:
          - success
        message:
          type: string
    ErrorResponse:
      type: object
      properties:
        status:
          type: string
          enum:
          - error
        message:
          type: string
  parameters:
    formId:
      name: formId
      in: path
      description: Unique identifier of the form
      required: true
      schema:
        type: integer
    formatJson:
      name: format
      in: path
      description: Response format (json or xml)
      required: true
      schema:
        type: string
        enum:
        - json
        - xml
        default: json
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://app.formassembly.com/oauth/login
          tokenUrl: https://app.formassembly.com/oauth/access_token
          scopes: {}
externalDocs:
  description: FormAssembly API Documentation
  url: https://help.formassembly.com/help/working-with-the-formassembly-api