Skip to main content
POST

Authorizations

Authorization
string
header
required

API Key Authentication

Use your API key in the Authorization header:

Key Types:

Secret Keys (Server-Side Only):

  • Format: tybrite_sk_live_* (production) or tybrite_sk_test_* (sandbox)
  • Full read/write access to all endpoints
  • ⚠️ NEVER expose in client-side code or public repositories
  • Required for: write operations, authentication, payment verification, AI recommendations

Publishable Keys (Client-Safe):

  • Format: tybrite_pk_live_* (production) or tybrite_pk_test_* (sandbox)
  • Read-only access (GET requests only, plus POST semantic search)
  • ✅ Safe for client-side JavaScript, mobile apps, and public code
  • Allowed for: browsing products, search, CMS content, pricing queries

Endpoint-Specific Requirements:

  • Authentication endpoints (/v1/auth/*): Secret key required
  • Payment verification (POST /v1/payments/verify): Secret key required
  • AI Recommendations (POST /v1/recommendations): Secret key required
  • Semantic Search (POST /v1/search): Both key types allowed (read-only operation)
  • All write operations: Secret key required
  • All read operations: Both key types allowed

Using a publishable key for restricted operations returns 403 Forbidden.

Body

application/json
booking_id
string<uuid>
required

The placement's identifier, taken from the slot response.

event_type
enum<string>
required

Whether the placement was shown (impression) or clicked (click).

Available options:
impression,
click
product_id
string<uuid>

Optional — the specific product within the placement the event relates to.

session_id
string

Optional — an opaque storefront session identifier used to de-duplicate events.

Response

The beacon was accepted.

Acknowledges an impression or click beacon.

recorded
boolean
required

Always true — the beacon was accepted.

Example:

true

billable
boolean
required

Whether this event counted toward billing after de-duplication and invalid-traffic filtering. Informational only — the storefront does not need to act on it.