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

# Ingest a consented capture

> Hand a consented email (and optional wallet) to a capture form from your server. If the form uses double opt-in, this starts the confirmation email. The key's workspace must own the form.



## OpenAPI

````yaml /api-reference/openapi.json post /forms/{token}/ingest
openapi: 3.0.3
info:
  title: Onchain Suite API
  version: 1.0.0
  description: >-
    The server-to-server API. Authenticate with a secret (`sk_`) key and call
    these endpoints from your backend to register contacts, send events, message
    users, ingest consented captures, and feed automations. Secret keys are
    server-only: never ship one to a browser, a mobile app, or a public repo.
servers:
  - url: https://api.onchainsuite.com/api/v1
    description: Production
security:
  - secretKey: []
tags:
  - name: Contacts
    description: Register and list contacts.
  - name: Events
    description: Send product events that drive automations and segments.
  - name: Messaging
    description: Send in-app pushes and launch campaigns.
  - name: Forms
    description: Ingest consented captures from your backend.
  - name: Automation
    description: Feed trigger events into the automation runtime.
paths:
  /forms/{token}/ingest:
    post:
      tags:
        - Forms
      summary: Ingest a consented capture
      description: >-
        Hand a consented email (and optional wallet) to a capture form from your
        server. If the form uses double opt-in, this starts the confirmation
        email. The key's workspace must own the form.
      parameters:
        - name: token
          in: path
          required: true
          schema:
            type: string
          description: The form's public token.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  format: email
                  example: alice@example.com
                walletAddress:
                  type: string
                consent:
                  type: boolean
                  example: true
                consentText:
                  type: string
                  example: I agree to receive product updates.
                fields:
                  type: object
                  additionalProperties: true
      responses:
        '200':
          description: Accepted (processed in the background).
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                  queued:
                    type: boolean
        '404':
          description: Form not owned by this workspace.
components:
  securitySchemes:
    secretKey:
      type: http
      scheme: bearer
      description: >-
        Your secret key, for example `sk_live_...`. Send it as `Authorization:
        Bearer sk_live_...`. A `sk_test_...` key runs in test mode.

````

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