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

# Create a tracked request

> Requires request.create. X-Api-Key is required; sessions are not accepted. Omit projectId only when the key is restricted to exactly one project; global and multiple-project keys must provide it. X-Team-Id is unnecessary and must match the key team when supplied. Missing trafficSource defaults to direct. customData accepts at most 15 top-level keys and 8192 UTF-8 bytes after JSON serialization; omitted or empty customData is returned as null.



## OpenAPI

````yaml https://api.trackup.me/openapi.json post /v1/requests
openapi: 3.1.0
info:
  title: Trackup API
  description: >-
    API-key-accessible Trackup operations. Send your key in the `X-Api-Key`
    header.


    Keys belong to a team. `X-Team-Id` is not required; if supplied, it must
    match that team.


    Each operation lists its required key permission. The key creator must
    remain a team member and normally hold that permission. The ingest-only
    permissions `visitor.create`, `conversion.create`, and `request.create` do
    not need to be held by the creator.


    Project access and selection are described per operation. Session-only
    account, administration and OAuth operations are not part of this reference.


    The same operations are available as MCP tools at `/mcp` (Streamable HTTP).
    Authenticate with `X-Api-Key` or connect through OAuth, which issues an API
    key on consent.


    Schema validation errors return HTTP 422 with an `errors` object. Other
    errors generally contain `error` and `message`; operation-specific responses
    describe exceptions.
  version: 1.0.0
servers:
  - url: /
    description: Current API environment
security:
  - ApiKey: []
paths:
  /v1/requests:
    post:
      tags:
        - Ingest
      summary: Create a tracked request
      description: >-
        Requires request.create. X-Api-Key is required; sessions are not
        accepted. Omit projectId only when the key is restricted to exactly one
        project; global and multiple-project keys must provide it. X-Team-Id is
        unnecessary and must match the key team when supplied. Missing
        trafficSource defaults to direct. customData accepts at most 15
        top-level keys and 8192 UTF-8 bytes after JSON serialization; omitted or
        empty customData is returned as null.
      operationId: createRequest
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                projectId:
                  type: string
                  format: uuid
                host:
                  type: string
                path:
                  type: string
                event:
                  type: string
                ip:
                  type: string
                userAgent:
                  type: string
                visitorId:
                  type: string
                trafficSource:
                  type: string
                utmSource:
                  type: string
                utmMedium:
                  type: string
                utmCampaign:
                  type: string
                utmTerm:
                  type: string
                utmContent:
                  type: string
                clickId:
                  type: string
                sub1:
                  type: string
                sub2:
                  type: string
                sub3:
                  type: string
                sub4:
                  type: string
                sub5:
                  type: string
                sub6:
                  type: string
                sub7:
                  type: string
                sub8:
                  type: string
                customData:
                  type: object
                  additionalProperties: {}
            examples:
              singleProject:
                summary: Synthetic tracked request with custom data
                value:
                  host: track.example.test
                  path: /offer
                  event: pageview
                  customData:
                    sku: EXAMPLE-1
              explicitProject:
                summary: Synthetic example selecting a project
                value:
                  projectId: 22222222-2222-4222-8222-222222222222
                  host: track.example.test
                  path: /offer
                  event: pageview
                  customData:
                    sku: EXAMPLE-1
        required: false
      responses:
        '201':
          description: Created tracked request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IngestRequest'
        '400':
          description: Malformed request or an invalid operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: The X-Api-Key header is missing or the API key is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >-
            The key is expired, revoked, lacks permission, or its creator no
            longer has the required team access. A conflicting X-Team-Id is also
            rejected.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >-
            The requested resource was not found or is outside the permitted
            scope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >-
            Invalid input. Each field path maps to its first validation message;
            _form identifies an object-level error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '500':
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
components:
  schemas:
    IngestRequest:
      type: object
      properties:
        id:
          type: string
        timestamp:
          type: string
          description: ClickHouse UTC timestamp.
        host:
          type: string
        path:
          type: string
        event:
          type: string
        visitorId:
          type: string
        trafficSource:
          type: string
        utmSource:
          type: string
        utmMedium:
          type: string
        utmCampaign:
          type: string
        utmTerm:
          type: string
        utmContent:
          type: string
        clickId:
          type: string
        sub1:
          type: string
        sub2:
          type: string
        sub3:
          type: string
        sub4:
          type: string
        sub5:
          type: string
        sub6:
          type: string
        sub7:
          type: string
        sub8:
          type: string
        customData:
          type:
            - object
            - 'null'
          additionalProperties: {}
      required:
        - id
        - timestamp
        - host
        - path
        - event
        - visitorId
        - trafficSource
        - utmSource
        - utmMedium
        - utmCampaign
        - utmTerm
        - utmContent
        - clickId
        - sub1
        - sub2
        - sub3
        - sub4
        - sub5
        - sub6
        - sub7
        - sub8
        - customData
      example:
        id: 11111111-1111-4111-8111-111111111111
        timestamp: '2026-06-01 12:00:00.000'
        host: track.example.test
        path: /offer
        event: pageview
        visitorId: visitor-example-1
        trafficSource: newsletter
        utmSource: newsletter
        utmMedium: email
        utmCampaign: example-campaign
        utmTerm: ''
        utmContent: ''
        clickId: ''
        sub1: ''
        sub2: ''
        sub3: ''
        sub4: ''
        sub5: ''
        sub6: ''
        sub7: ''
        sub8: ''
        customData: null
    ApiError:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
      required:
        - error
        - message
      additionalProperties: true
    ValidationError:
      type: object
      properties:
        errors:
          type: object
          additionalProperties:
            type: string
      required:
        - errors
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: X-Api-Key

````

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