Freshpaint Events API

The Events API from Freshpaint — 1 operation(s) for events.

Operations 1

POST /track Send a server-side event to Freshpaint. #

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/freshpaint-events-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

freshpaint-events-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Freshpaint HTTP Events API
  description: The Freshpaint server-side HTTP API for sending events to Freshpaint from your backend. Events are sent as POST requests to the /track endpoint and are fanned out to your active destinations. The same endpoint is used to track custom events, identify users ($identify), and emit page and screen events. Authentication is performed with your environment token, supplied in the event payload as properties.token.
  termsOfService: https://www.freshpaint.io/legal/terms-of-service
  contact:
    name: Freshpaint Support
    url: https://documentation.freshpaint.io/reference/developer/http-api
  version: '1.0'
servers:
- url: https://api.perfalytics.com
  description: Freshpaint HTTP API ingestion host
security:
- EnvironmentToken: []
tags:
- name: Events
paths:
  /track:
    post:
      operationId: track
      tags:
      - Events
      summary: Send a server-side event to Freshpaint.
      description: Send a single server-side event to Freshpaint. The event is routed to all active destinations unless restricted via the $options property. Reserved event names ($identify, $page, $screen) drive identify, page, and screen behavior; any other value of `event` is treated as a custom tracked event. The environment token is supplied in properties.token.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Event'
            examples:
              track:
                summary: Custom tracked event
                value:
                  event: Order Completed
                  properties:
                    distinct_id: user@example.com
                    token: YOUR_ENVIRONMENT_ID
                    time: 1719446400
                    revenue: 49.99
              identify:
                summary: Server-side identify
                value:
                  event: $identify
                  properties:
                    distinct_id: user@example.com
                    token: YOUR_ENVIRONMENT_ID
                    time: 1719446400
                    $user_props:
                      plan: pro
                      company: Acme
              page:
                summary: Page event
                value:
                  event: $page
                  properties:
                    distinct_id: user@example.com
                    token: YOUR_ENVIRONMENT_ID
                    time: 1719446400
                    name: Pricing
                    category: Marketing
                    url: https://www.example.com/pricing
      responses:
        '200':
          description: Event accepted for ingestion.
        '400':
          description: Malformed event payload or missing required properties.
        '429':
          description: Rate limited. The HTTP API enforces a 5000 request/second burst limit; throttle requests accordingly.
components:
  schemas:
    Event:
      type: object
      required:
      - event
      - properties
      properties:
        event:
          type: string
          description: Name of the event. Use $identify for server-side identify, $page for a page event, $screen for a screen event, or any custom string for a tracked event.
          example: Order Completed
        properties:
          $ref: '#/components/schemas/EventProperties'
    EventProperties:
      type: object
      required:
      - distinct_id
      - token
      - time
      properties:
        distinct_id:
          type: string
          description: Identifier that uniquely identifies the user that performed the event, usually an email address. Matches the identifier passed to freshpaint.identify().
          example: user@example.com
        token:
          type: string
          description: Your environment ID, available from the Server Side API section on the Sources page of the Freshpaint app.
          example: YOUR_ENVIRONMENT_ID
        time:
          type: integer
          format: int64
          description: Epoch time the event occurred, in seconds.
          example: 1719446400
        $device_id:
          type: string
          description: Optional device identifier used for stitching and deduplication.
        $insert_id:
          type: string
          description: Optional unique event identifier used for deduplication. When omitted, Freshpaint computes a value from time and $device_id.
        $ip:
          type: string
          description: Optional override of the captured IP address. By default the IP from which the event is sent is captured automatically.
        $user_props:
          type: object
          additionalProperties: true
          description: User properties to attach to the profile, primarily used with the $identify event.
        $options:
          type: object
          description: Optional destination routing controls. Pass a list of destinations the event should only go to, or a list of destinations the event should not go to.
          additionalProperties: true
      additionalProperties: true
      description: Event properties. In addition to the required distinct_id, token, and time, any custom properties may be included.
  securitySchemes:
    EnvironmentToken:
      type: apiKey
      in: query
      name: token
      description: Freshpaint authenticates server-side events with your environment ID (token). The token is supplied inside the event payload as properties.token rather than as a header or query string; this scheme documents the token-based, in-body authentication used by the HTTP API. Obtain the token from the Server Side API section of the Sources page in the Freshpaint app.