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

# Send a public form

> Sends the answers of a visitor. It needs no token. The answers are checked by field type, then handled like any website form. A wrong answer returns 400 with a problems object. A sender address can send 20 answers an hour to one form, and more returns 429.



## OpenAPI

````yaml /openapi/platform.yaml post /api/v1/forms/{slug}
openapi: 3.1.0
info:
  title: ImpelLabs API
  version: '1'
  description: >-
    The routes an API token can reach. Send the token as a bearer token. See the
    Authentication and Conventions pages for tokens, errors and paging.
servers:
  - url: https://api.impellabs.tech
security:
  - bearer: []
tags:
  - name: Agents
    description: Agents, their versions, sharing and test chat.
  - name: Approvals
    description: Approvals, permissions and approval preferences.
  - name: Apps
    description: Apps and their records.
  - name: Availability
    description: Hours and away time of people.
  - name: Billing
    description: 'Credits: the wallet and where credits went.'
  - name: Booking
    description: Services, slots and bookings.
  - name: Broadcasts
    description: Broadcasts sent to a campaign audience.
  - name: Campaigns
    description: Campaigns, their members and audiences.
  - name: Capabilities
    description: What an agent can be given.
  - name: Conversations
    description: Conversations, their messages and handover.
  - name: Channels
    description: Channels, their profile, templates and catalogs.
  - name: Connectors
    description: Your own tools and apps connected to the workspace.
  - name: Contacts
    description: Contacts, notes, identities and consent.
  - name: Event sources
    description: Receivers for events from other systems.
  - name: Files
    description: Files you upload.
  - name: Imports
    description: Imports of records from a file.
  - name: Info requests
    description: Questions agents ask people for context.
  - name: Jobs
    description: Background jobs and their results.
  - name: Knowledge
    description: Documents, groups, facts and questions that no one answered.
  - name: Lead sources
    description: Forms and other sources of leads.
  - name: Member
    description: The member the token belongs to.
  - name: Memories
    description: Your private memories.
  - name: Reports
    description: Reports for the home view.
  - name: Runs
    description: Runs of agent replies and their steps.
  - name: Search
    description: Search across the workspace.
  - name: Tasks
    description: Tasks, lists, stages and comments.
  - name: Tool calls
    description: Calls agents made to tools.
  - name: Webhooks
    description: Outgoing webhook endpoints and their deliveries.
  - name: Workflows
    description: Workflows, their runs and templates.
  - name: Public form
    description: The public page of a form, with no token.
  - name: Public booking
    description: The public page of a service, with no token.
  - name: Incoming events
    description: The receiver that takes events from other systems, with no bearer token.
  - name: Email unsubscribe
    description: The unsubscribe link of a promotional email.
paths:
  /api/v1/forms/{slug}:
    post:
      tags:
        - Public form
      summary: Send a public form
      description: >-
        Sends the answers of a visitor. It needs no token. The answers are
        checked by field type, then handled like any website form. A wrong
        answer returns 400 with a problems object. A sender address can send 20
        answers an hour to one form, and more returns 429.
      operationId: post_api_v1_forms_slug
      parameters:
        - name: slug
          in: path
          required: true
          schema:
            type: string
          description: The slug of the form.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                answers:
                  type: object
                  description: >-
                    The answers. Each key is a field key of the form. Other keys
                    are dropped. A value is cut to 2000 characters.
                  additionalProperties:
                    type: string
                utm_campaign:
                  type: string
                  maxLength: 120
                  description: Matches a campaign that has a utm_campaign source.
                website:
                  type: string
                  description: >-
                    A hidden box. Leave it empty. A request that fills it is
                    thanked and nothing is kept.
              required:
                - answers
            example:
              answers:
                name: Sam
                phone: '+971501234567'
      responses:
        '200':
          description: The answers were taken.
          content:
            application/json:
              example:
                ok: true
                thanks:
                  title: Thank you
                  text: We will be in touch.
        '400':
          $ref: '#/components/responses/Invalid'
          description: >-
            A wrong answer. The body is {"problems": {"field key": "what to
            fix"}}.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
          description: This form does not exist.
        '429':
          description: Too many answers from one address. Try again later.
      security: []
components:
  responses:
    Invalid:
      description: >-
        A field is missing or wrong. The body names each field: {"field": "what
        to fix"}.
    Unauthorized:
      description: The credentials are missing, wrong, expired or revoked.
    Forbidden:
      description: These credentials may not do this.
    NotFound:
      description: There is no such row, or these credentials cannot see it.
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      bearerFormat: imp_...
      description: >-
        An API token made in the ImpelLabs app. It starts with imp_ and acts as
        the member who made it.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.