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

# Post Events

> Accept a batch of visitor events from the floo JS SDK.

Unauthenticated. IP-rate-limited. The body is parsed as JSON
regardless of the declared Content-Type header — the SDK uses
`text/plain` specifically so that `navigator.sendBeacon` and
cross-origin fetch both count as CORS "simple requests" and skip
preflight. The server still validates the body with the same
Pydantic schema as if it were JSON.

The `app_id` must resolve to an existing app — we don't leak
whether the ID was malformed vs missing vs simply unknown.



## OpenAPI

````yaml https://api.getfloo.com/openapi.json post /v1/insights/events
openapi: 3.1.0
info:
  title: floo API
  version: 0.1.0
servers:
  - url: https://api.getfloo.com
security: []
paths:
  /v1/insights/events:
    post:
      tags:
        - insights
      summary: Post Events
      description: |-
        Accept a batch of visitor events from the floo JS SDK.

        Unauthenticated. IP-rate-limited. The body is parsed as JSON
        regardless of the declared Content-Type header — the SDK uses
        `text/plain` specifically so that `navigator.sendBeacon` and
        cross-origin fetch both count as CORS "simple requests" and skip
        preflight. The server still validates the body with the same
        Pydantic schema as if it were JSON.

        The `app_id` must resolve to an existing app — we don't leak
        whether the ID was malformed vs missing vs simply unknown.
      operationId: insights_post_events
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IngestResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security: []
components:
  schemas:
    IngestResponse:
      properties:
        accepted:
          type: integer
          title: Accepted
      type: object
      required:
        - accepted
      title: IngestResponse
      description: Acknowledgement for a successful ingest.
    ErrorResponse:
      properties:
        detail:
          $ref: '#/components/schemas/ErrorDetail'
      type: object
      required:
        - detail
      title: ErrorResponse
      description: Body of every error response except request validation (422).
    ErrorDetail:
      properties:
        code:
          type: string
          title: Code
        message:
          type: string
          title: Message
      additionalProperties: true
      type: object
      required:
        - code
        - message
      title: ErrorDetail
      description: Standard error envelope with operation-specific JSON context.

````

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