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

# Create Pixel

> Create a campaign-scoped tracking pixel

## Request Body

<ParamField body="campaignId" type="string" required>
  Campaign ID. Pixels are campaign-scoped.
</ParamField>

<ParamField body="name" type="string" required>
  Pixel display name
</ParamField>

<ParamField body="pixelCode" type="string" required>
  Global unique code, `3..50` chars, letters/numbers/`-`/`_`
</ParamField>

<ParamField body="description" type="string">
  Optional description
</ParamField>

<ParamField body="eventName" type="string">
  Optional event label
</ParamField>

<ParamField body="captureParams" type="array">
  Optional query parameters to capture
</ParamField>

<ParamField body="conversionTracking" type="boolean">
  Enable conversion tracking for this pixel
</ParamField>

<ParamField body="enabled" type="boolean" default="true">
  Initial enabled state
</ParamField>

<ParamField body="expiresAt" type="string">
  Optional ISO datetime expiry
</ParamField>

<ParamField body="firesLimit" type="number">
  Optional positive cap for total fires
</ParamField>

## Access and gates

* Permission: `pixels:create`
* Feature gate: `pixelSdk`

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://api.linquid.io/api/pixels \
    -H "Authorization: Bearer <token>" \
    -H "Content-Type: application/json" \
    -d '{
      "campaignId": "campaign_123",
      "name": "Checkout Pixel",
      "pixelCode": "checkout_pixel",
      "conversionTracking": true
    }'
  ```
</RequestExample>

## Common Errors

* `404`: campaign not found or inaccessible
* `409`: duplicate `pixelCode`
* `403`: feature or permission denied
