Report observability events
POST
/devices/events
const url = 'https://example.com/v1/devices/events';const options = { method: 'POST', headers: {'X-Device-Signature': 'example', 'Content-Type': 'application/json'}, body: '{"events":[{"event_time":"2026-04-15T12:00:00Z","agent_type":"claude-code","mcp_name":"github","tool":"list_issues","event_type":"result","result":"allowed","deny_code":"example","deny_reason":"example","error_message":"example","rule_applied":"example","model":"example","session_id":"example","group":"example","actor_email":"hello@example.com","tokens_in":1,"tokens_out":1,"duration_ms":1,"skills":["example"],"prompt":"example","metadata":{}}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/v1/devices/events \ --header 'Content-Type: application/json' \ --header 'X-Device-Signature: example' \ --data '{ "events": [ { "event_time": "2026-04-15T12:00:00Z", "agent_type": "claude-code", "mcp_name": "github", "tool": "list_issues", "event_type": "result", "result": "allowed", "deny_code": "example", "deny_reason": "example", "error_message": "example", "rule_applied": "example", "model": "example", "session_id": "example", "group": "example", "actor_email": "hello@example.com", "tokens_in": 1, "tokens_out": 1, "duration_ms": 1, "skills": [ "example" ], "prompt": "example", "metadata": {} } ] }'Batch-ingests observability events (one per MCP tool call). Signed via the X-Device-Signature header.
Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”X-Device-Signature
required
string
Base64 signature over the canonical payload, made with the device key
Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
events
required
Array<object>
object
event_time
string format: date-time
agent_type
string
Example
claude-codemcp_name
string
Example
githubtool
string
Example
list_issuesevent_type
string
Example
resultresult
string
deny_code
string
deny_reason
string
error_message
string
rule_applied
string
model
string
session_id
string
group
string
actor_email
string format: email
tokens_in
integer
tokens_out
integer
duration_ms
integer
skills
Array<string>
prompt
string
metadata
object
key
additional properties
any
Responses
Section titled “Responses”Events accepted
Media typeapplication/json
object
accepted
integer
Example generated
{ "accepted": 1}Invalid payload or signature