Skip to main content
POST
Report an application activity event (server-to-server)

Body

application/json
client_id
string
required

Public app identifier (pidapp_*)

client_secret
string
required

Confidential-client secret (pidsk_*; never logged, never echoed)

event_id
string
required

App-scoped idempotency key (dedup is per app + event_id)

user_id
string
required

Subject user PID

Pattern: ^[a-z0-9_]{3,20}@pid$
event_type
string
required

Approved event type (e.g. onboarding_completed)

resource_id
string

Checker input (e.g. achievement/resource reference)

Response

Processing result (awarded, duplicate, or rejected with a reason)

Event-intake processing result. awarded_xp is always the server-side task reward (clients can never submit XP); reason is a machine-readable cause that never oracles PID existence.

status
enum<string>
required
Available options:
awarded,
duplicate,
rejected
awarded_xp
integer
required
Required range: x >= 0
level
integer

Authoritative level after processing (awarded/duplicate)

Required range: x >= 1
leveledUp
boolean
reason
string

Machine-readable cause (duplicate_event, not_eligible, task_limit, cooldown, quota_exceeded, suspended, no_active_task, task_not_available, app_not_permitted)