REST /api/v1/analytics/expense-type-events 6 endpoints
GET /api/v1/analytics/expense-type-events/api/v1/analytics/expense-type-events

List recorded analytics events for expense type interactions

Public

Response Example

{
  "data": [
    {
      "id": "evt-001",
      "event_type": "type_selected",
      "expense_type": "kilometers",
      "session_id": "sess-abc123",
      "user_id": "usr-447",
      "occurred_at": "2026-03-26T09:15:22Z",
      "flushed": true
    },
    {
      "id": "evt-002",
      "event_type": "exclusion_triggered",
      "trigger_type": "kilometers",
      "disabled_types": [
        "publicTransit"
      ],
      "session_id": "sess-abc123",
      "user_id": "usr-447",
      "occurred_at": "2026-03-26T09:15:22Z",
      "flushed": true
    },
    {
      "id": "evt-003",
      "event_type": "validation_error",
      "error_message": "Cannot combine publicTransit with kilometers",
      "session_id": "sess-abc124",
      "user_id": "usr-448",
      "occurred_at": "2026-03-26T10:05:00Z",
      "flushed": false
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 3
  }
}
GET /api/v1/analytics/expense-type-events/api/v1/analytics/expense-type-events/:id

Get a specific analytics event by ID

Public

Response Example

{
  "id": "evt-002",
  "event_type": "exclusion_triggered",
  "trigger_type": "kilometers",
  "disabled_types": [
    "publicTransit"
  ],
  "session_id": "sess-abc123",
  "user_id": "usr-447",
  "occurred_at": "2026-03-26T09:15:22Z",
  "flushed": true
}
POST /api/v1/analytics/expense-type-events/api/v1/analytics/expense-type-events

Track a new expense type analytics event

Public

Request Example

{
  "event_type": "type_selected",
  "expense_type": "parking",
  "session_id": "sess-abc125",
  "user_id": "usr-449",
  "occurred_at": "2026-03-26T14:00:00Z"
}

Response Example

{
  "id": "evt-004",
  "event_type": "type_selected",
  "expense_type": "parking",
  "session_id": "sess-abc125",
  "user_id": "usr-449",
  "occurred_at": "2026-03-26T14:00:00Z",
  "flushed": false
}
PUT /api/v1/analytics/expense-type-events/api/v1/analytics/expense-type-events/:id

Update or annotate an analytics event (e.g. mark flushed)

Public

Request Example

{
  "flushed": true
}

Response Example

{
  "id": "evt-004",
  "event_type": "type_selected",
  "expense_type": "parking",
  "session_id": "sess-abc125",
  "user_id": "usr-449",
  "occurred_at": "2026-03-26T14:00:00Z",
  "flushed": true,
  "flushed_at": "2026-03-26T14:05:00Z"
}
DELETE /api/v1/analytics/expense-type-events/api/v1/analytics/expense-type-events/:id

Delete an analytics event record

Public

Response Example

{
  "success": true,
  "deleted_id": "evt-004"
}
POST /api/v1/analytics/expense-type-events/api/v1/analytics/expense-type-events/flush

Flush all pending (unflushed) events to the analytics pipeline

Public

Request Example

{
  "session_id": "sess-abc125"
}

Response Example

{
  "flushed_count": 3,
  "failed_count": 0,
  "flushed_event_ids": [
    "evt-003",
    "evt-004",
    "evt-005"
  ],
  "flushed_at": "2026-03-26T14:10:00Z"
}

Additional Metadata

{
  "contract_summary": {
    "total_contracts": 410,
    "total_endpoints": 2416,
    "api_styles_used": [
      "rest"
    ]
  },
  "generated_at": "2026-03-26T06:55:53.316Z"
}