Support

Send Custom Event

Production

Send server-to-server (S2S) events from your Telegram bot or backend to GramPixel. Events are automatically mapped to native platform formats (Meta CAPI, TikTok Events) and forwarded to configured ad network integrations. Event Mapping: FTD/DEP/Purchase → Purchase (Meta) / CompletePayment (TikTok) with value. REG → CompleteRegistration / Registration. Subscribe/JoinRequest → Lead / SubmitForm. INSTALL → AppInstall / Download. TRIAL → StartTrial / Subscribe. Session Resolution: If session_id is not provided, the system resolves it automatically: 1) prelanding_invite_sessions by telegram_id, 2) ClickHouse events, 3) last known session. The session_id links the event to the original ad click for attribution.

POST/api/v1/events/custom

Body Parameters

event_namestringRequired

Event key: FTD, DEP, REG, Subscribe, JoinRequest, Purchase, INSTALL, TRIAL, or any custom name.

telegram_idintegerRequired

Telegram User ID. Used for session resolution and S2S attribution.

workspace_iduuidRequired

Your workspace ID.

session_idstringOptional

The GramPixel session ID (from ?start= deep link parameter, e.g. gp_a1b2c3). Auto-resolved if omitted.

valuefloatOptional

Monetary value. Required for FTD, DEP, Purchase events for ROAS tracking.

currencystringOptional

3-letter ISO 4217 currency code. Defaults to USD.

user_dataobjectOptional

Additional user metadata (e.g. { "plan": "premium" }).

How to get session_id in your bot

When a user clicks t.me/your_bot?start=gp_a1b2c3, your bot receives /start gp_a1b2c3. Parse and store this value per user, then pass it back as session_id on conversion events for precise attribution.

curl -X POST https://api.grampixel.com/v1/events/custom \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "event_name": "FTD",
    "telegram_id": 123456789,
    "session_id": "gp_a1b2c3",
    "workspace_id": "uuid-of-workspace",
    "value": 150.00,
    "currency": "USD",
    "user_data": { "plan": "premium" }
  }'

Response

{
  "ok": true,
  "data": {
    "event_id": "evt_89237498237",
    "session_id": "gp_a1b2c3",
    "status": "processed"
  }
}