OwlMetry
API Reference

Events

GET /v1/events — query events with filters for app, level, date range, session, and more.

Query stored events with filters and cursor-based pagination.

GET /v1/events

List events with optional filters. Results are ordered by timestamp descending (newest first).

Auth required: Yes (events:read permission or JWT)

Rate limited: Yes

Query parameters

ParameterTypeDescription
team_idstringFilter to a specific team.
project_idstringFilter to apps within a project.
app_idstringFilter to a specific app.
levelstringFilter by log level: info, debug, warn, error.
user_idstringFilter by user ID.
session_idstringFilter by session ID.
environmentstringFilter by environment: ios, ipados, macos, android, web, backend.
screen_namestringFilter by screen name (exact match).
sincestringStart time. Relative (1h, 30m, 7d, 1w, 30s) or ISO 8601.
untilstringEnd time. Relative (1h, 30m, 7d, 1w, 30s) or ISO 8601.
data_modestringproduction (default), development, or all.
cursorstringCursor from previous response for pagination.
limitnumberItems per page (1-200, default 50).

Response

{
  "events": [
    {
      "id": "uuid",
      "app_id": "uuid",
      "client_event_id": "uuid",
      "session_id": "uuid",
      "user_id": "owl_anon_abc123",
      "api_key_id": "uuid",
      "level": "info",
      "source_module": "HomeViewController",
      "message": "screen_viewed",
      "screen_name": "Home",
      "custom_attributes": {
        "button_color": "blue"
      },
      "environment": "ios",
      "os_version": "17.4",
      "app_version": "1.2.0",
      "build_number": "42",
      "device_model": "iPhone15,2",
      "locale": "en_US",
      "is_dev": false,
      "experiments": {
        "onboarding_flow": "variant_b"
      },
      "timestamp": "2024-01-15T10:30:00.000Z",
      "received_at": "2024-01-15T10:30:01.000Z"
    }
  ],
  "cursor": "2024-01-15T10:29:00.000Z",
  "has_more": true
}

When has_more is true, pass the cursor value to the next request to fetch the next page. When has_more is false, cursor is null.

GET /v1/events/:id

Get a single event by ID.

Auth required: Yes (events:read permission or JWT)

Response

{
  "id": "uuid",
  "app_id": "uuid",
  "client_event_id": "uuid",
  "session_id": "uuid",
  "user_id": "owl_anon_abc123",
  "api_key_id": "uuid",
  "level": "info",
  "source_module": "HomeViewController",
  "message": "screen_viewed",
  "screen_name": "Home",
  "custom_attributes": {
    "button_color": "blue"
  },
  "environment": "ios",
  "os_version": "17.4",
  "app_version": "1.2.0",
  "build_number": "42",
  "device_model": "iPhone15,2",
  "locale": "en_US",
  "is_dev": false,
  "experiments": null,
  "timestamp": "2024-01-15T10:30:00.000Z",
  "received_at": "2024-01-15T10:30:01.000Z"
}

Returns 404 if the event does not exist or belongs to an app outside the caller's team.

Ready to get started?

Install the CLI and let your agent handle the rest.