Apps & Sources

Read the monitored applications in your organization and their log sources. All endpoints require a general API key and the scope noted below.


List applications

GET /api/v1/apps

Required scope: apps:read

Query parameters

ParamTypeNotes
limitinteger1–100, default 50. See pagination.
cursorstringOpaque cursor from a previous pagination.nextCursor.

Example

curl "https://guardianlogs.com/api/v1/apps?limit=50" \
  -H "Authorization: Bearer $GUARDIAN_API_KEY"
{
  "data": [
    {
      "id": "clapp0001kidscuts000000",
      "key": "kids-cuts",
      "name": "Kids Cuts",
      "env": "production",
      "purpose": "Booking and POS for the salon chain.",
      "createdAt": "2026-08-01T12:00:00.000Z"
    }
  ],
  "pagination": { "nextCursor": null }
}

Fields

FieldTypeNotes
idstringApplication id.
keystringStable slug, unique within the organization.
namestringDisplay name.
envstringEnvironment label (e.g. production).
purposestringShort description.
createdAtstring (date-time)Creation timestamp.

Get one application

GET /api/v1/apps/{id}

Required scope: apps:read

A cross-tenant or nonexistent id both return 404 (indistinguishable). The detail response adds ownerContact and businessImpactNotes to the list shape.

Example

curl "https://guardianlogs.com/api/v1/apps/clapp0001kidscuts000000" \
  -H "Authorization: Bearer $GUARDIAN_API_KEY"
{
  "data": {
    "id": "clapp0001kidscuts000000",
    "key": "kids-cuts",
    "name": "Kids Cuts",
    "env": "production",
    "purpose": "Booking and POS for the salon chain.",
    "ownerContact": "ops@kidscuts.example",
    "businessImpactNotes": "Revenue-critical during business hours.",
    "createdAt": "2026-08-01T12:00:00.000Z"
  }
}

ownerContact and businessImpactNotes may be null.


List an application's log sources

GET /api/v1/apps/{id}/sources

Required scope: sources:read

Returns the log sources for the application. If the application does not belong to your organization (or does not exist) → 404. This list is not paginated.

Example

curl "https://guardianlogs.com/api/v1/apps/clapp0001kidscuts000000/sources" \
  -H "Authorization: Bearer $GUARDIAN_API_KEY"
{
  "data": [
    {
      "id": "clsrc0001errors0000000",
      "type": "APP_ERROR",
      "transport": "PUSH_HTTPS",
      "enabled": true,
      "redactionProfile": "default",
      "createdAt": "2026-08-01T12:05:00.000Z"
    }
  ]
}

Fields

FieldTypeNotes
idstringSource id.
typestringOne of APP_ERROR, ACTIVITY, EMAIL, NGINX, PM2, OS, DB_SLOWQUERY, HEALTH.
transportstringPUSH_HTTPS or OBJECT_STORE.
enabledbooleanA disabled source rejects ingest with 403.
redactionProfilestring \nullNamed redaction profile applied at the source.
createdAtstring (date-time)Creation timestamp.

See also: scopes.md · pagination.md · errors.md.