Paperform Webhooks API

The Webhooks API from Paperform — 2 operation(s) for webhooks.

Operations 5

GET /forms/{slug_or_id}/webhooks List form webhooks #
POST /forms/{slug_or_id}/webhooks Create form webhook #
GET /webhooks/{id} Get form webhook #
PUT /webhooks/{id} Update form webhook #
DELETE /webhooks/{id} Delete form webhook #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/paperform-webhooks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

paperform-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  title: Paperform Webhooks API
  contact:
    name: Paperform API Support
    url: https://paperform.co
    email: support@paperform.co
servers:
- url: https://api.paperform.co/v1
security:
- bearerAuth: []
tags:
- name: Webhooks
paths:
  /forms/{slug_or_id}/webhooks:
    get:
      parameters:
      - $ref: '#/components/parameters/slugOrID'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/skip'
      - $ref: '#/components/parameters/afterId'
      - $ref: '#/components/parameters/beforeId'
      - $ref: '#/components/parameters/beforeDate'
      - $ref: '#/components/parameters/afterDate'
      - $ref: '#/components/parameters/sort'
      description: 'This endpoint returns a list of webhooks for a form that are accessible by the authorized user.

        Please note that this feature is exclusively available as part of the Business API.'
      operationId: listFormWebhooks
      tags:
      - Webhooks
      responses:
        '200':
          description: Successfully returned a list of webhooks for a form
          content:
            application/json:
              schema:
                type: object
                allOf:
                - properties:
                    status:
                      type: string
                      enum:
                      - ok
                    results:
                      type: object
                      properties:
                        webhooks:
                          type: array
                          items:
                            $ref: '#/components/schemas/Webhook'
                - $ref: '#/components/schemas/Pagination'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/Throttled'
        5XX:
          $ref: '#/components/responses/Unexpected'
      summary: List form webhooks
      x-summary-source: derived
    post:
      parameters:
      - $ref: '#/components/parameters/slugOrID'
      description: 'This endpoint creates a specific webhook on a form.

        Please note that this feature is exclusively available as part of the Business API.'
      operationId: createFormWebhook
      tags:
      - Webhooks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Webhook'
              required:
              - target_url
              - triggers
      responses:
        '200':
          description: 'Successfully created a single webhook with the provided values

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                    - ok
                  results:
                    type: object
                    properties:
                      webhook:
                        $ref: '#/components/schemas/Webhook'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/Validation'
        '429':
          $ref: '#/components/responses/Throttled'
        5XX:
          $ref: '#/components/responses/Unexpected'
      summary: Create form webhook
      x-summary-source: derived
  /webhooks/{id}:
    get:
      parameters:
      - $ref: '#/components/parameters/webhookID'
      description: 'This endpoint returns a webhook for a form by ID.

        Please note that this feature is exclusively available as part of the Business API.'
      operationId: getFormWebhook
      tags:
      - Webhooks
      responses:
        '200':
          description: Successfully returned a webhook for a form by ID
          content:
            application/json:
              schema:
                type: object
                allOf:
                - properties:
                    status:
                      type: string
                      enum:
                      - ok
                    results:
                      type: object
                      properties:
                        webhook:
                          $ref: '#/components/schemas/Webhook'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/Throttled'
        5XX:
          $ref: '#/components/responses/Unexpected'
      summary: Get form webhook
      x-summary-source: derived
    put:
      parameters:
      - $ref: '#/components/parameters/webhookID'
      description: 'This endpoint updates a specific webhook on a form.

        Please note that this feature is exclusively available as part of the Business API.'
      operationId: updateFormWebhook
      tags:
      - Webhooks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Webhook'
      responses:
        '200':
          description: 'Successfully updated a single webhook with the provided values

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                    - ok
                  results:
                    type: object
                    properties:
                      webhook:
                        $ref: '#/components/schemas/Webhook'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/Validation'
        '429':
          $ref: '#/components/responses/Throttled'
        5XX:
          $ref: '#/components/responses/Unexpected'
      summary: Update form webhook
      x-summary-source: derived
    delete:
      parameters:
      - $ref: '#/components/parameters/webhookID'
      description: 'This endpoint deletes a specific webhook by ID.

        Please note that this feature is exclusively available as part of the Business API.'
      operationId: deleteFormWebhook
      tags:
      - Webhooks
      responses:
        '200':
          description: 'Successfully deleted a single webhook that matched the provided ID

            '
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                    - ok
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/Throttled'
        5XX:
          $ref: '#/components/responses/Unexpected'
      summary: Delete form webhook
      x-summary-source: derived
components:
  parameters:
    skip:
      in: query
      name: skip
      schema:
        type: integer
        default: 0
      description: Number of results to skip in the result set.
    sort:
      in: query
      name: sort
      schema:
        type: string
        enum:
        - ASC
        - DESC
        default: DESC
      description: The direction to sort in. Results are sorted by `created_at`, and defaults to `"DESC"`.
      example: ASC
    limit:
      in: query
      name: limit
      schema:
        type: integer
        maximum: 100
        default: 20
      description: The number or results to return.
    beforeId:
      in: query
      name: before_id
      schema:
        type: string
      description: Return results before the provided ID.
      example: 5d40fdaf174b4c0007043072
    webhookID:
      in: path
      required: true
      name: id
      schema:
        type: string
      description: The ID of the webhook to get results for.
      example: 5d40fdaf174b4c0007043072
    afterId:
      in: query
      name: after_id
      schema:
        type: string
      description: Return results after the provided ID.
      example: 5d40fdaf174b4c0007043072
    afterDate:
      in: query
      name: after_date
      schema:
        type: string
        format: date-time
      description: Return results created before this date (UTC). Overwritten by `after_id`.
      example: '2019-06-11T20:36:29Z'
    slugOrID:
      in: path
      name: slug_or_id
      required: true
      schema:
        type: string
      description: The form's slug, custom slug or ID.
      example: my-form-slug
    beforeDate:
      in: query
      name: before_date
      schema:
        type: string
        format: date-time
      description: Return results created on or after this date-time (UTC). Overwritten by `before_id`.
      example: '2019-06-11T20:36:29Z'
  responses:
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            allOf:
            - $ref: '#/components/schemas/Error'
            - properties:
                error_type:
                  type: string
                  enum:
                  - authentication
                  description: Token not provided for not valid.
    Forbidden:
      description: Not Permitted
      content:
        application/json:
          schema:
            type: object
            allOf:
            - $ref: '#/components/schemas/Error'
            - properties:
                error_type:
                  type: string
                  enum:
                  - permission
                  description: Not permitted to access requested resource.
    NotFound:
      description: Not Found
      content:
        application/json:
          schema:
            type: object
            allOf:
            - $ref: '#/components/schemas/Error'
            - properties:
                error_type:
                  type: string
                  enum:
                  - not_found
                  description: The requested resource was not found.
    Unexpected:
      description: Unexpected Error
      content:
        application/json:
          schema:
            type: object
            allOf:
            - $ref: '#/components/schemas/Error'
            - properties:
                error_type:
                  type: string
                  enum:
                  - server_error
                  description: An unexpected error.
    BadRequest:
      description: Invalid Request
      content:
        application/json:
          schema:
            type: object
            allOf:
            - $ref: '#/components/schemas/Error'
            - properties:
                error_type:
                  type: string
                  enum:
                  - validation
                  description: Invalid parameters provided.
    Validation:
      description: Validation Error
      content:
        application/json:
          schema:
            type: object
            allOf:
            - $ref: '#/components/schemas/Error'
            - properties:
                error_type:
                  type: string
                  enum:
                  - validation
                  description: Invalid parameters provided.
    Throttled:
      description: Too Many Requests
      content:
        text/html:
          schema:
            type: string
            enum:
            - Too many requests.
  schemas:
    Pagination:
      type: object
      properties:
        total:
          type: integer
          description: The total number of items.
          readOnly: true
          example: 57
        has_more:
          description: Whether there are more items.
          type: boolean
          example: true
          readOnly: true
        limit:
          description: The limit of items per page.
          type: integer
          example: 20
          default: 20
        skip:
          description: The number of items to skip.
          type: integer
          default: 0
          example: 0
    Webhook:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The id of the webhook.
          readOnly: true
        target_url:
          type: string
          format: url
          example: https://example.com/webhook
          description: The url for the webhook.
        triggers:
          type: array
          description: The triggers for the webhook.
          example:
          - submission
          items:
            type: string
            enum:
            - submission
            - partial_submission
        created_at:
          type: string
          format: date-time
          description: A formatted date-time string in your account timezone indicating the time the webhook was created.
          example: '2018-01-01T12:00:00Z'
          readOnly: true
        updated_at:
          type: string
          format: date-time
          description: A formatted date-time string in your account timezone indicating the time the webhook was last updated.
          example: '2018-01-01T12:00:00Z'
          readOnly: true
        account_timezone:
          type: string
          description: The timezone of your account.
          example: America/Los_Angeles
          readOnly: true
        created_at_utc:
          type: string
          format: date-time
          description: A formatted date-time string in UTC timezone indicating the time the webhook was created.
          example: '2018-01-01T12:00:00Z'
          readOnly: true
        updated_at_utc:
          type: string
          format: date-time
          description: A formatted date-time string in UTC timezone indicating the time the webhook was last updated.
          example: '2018-01-01T12:00:00Z'
          readOnly: true
    Error:
      type: object
      properties:
        status:
          type: string
          enum:
          - error
          example: error
        message:
          type: string
          description: An error message.
          example: Invalid request
        details:
          type: array
          description: Suggested actions to resolve the error.
          items:
            type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
x-readme:
  explorer-enabled: true
  proxy-enabled: true