# Aient OpenTelemetry Schema Discovery

> Aient OpenTelemetry Schema Discovery is a paid API for AI agents from aient.ai, paid per call via x402, $0.005000/call, status unknown (last checked 2026-09-15).

Lists services, operations, or span/log attribute keys in an OpenTelemetry corpus with counts to guide further querying

## Facts

- Endpoint: GET https://aient.ai/x402/telemetry/describe
- Price: $0.005000/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/aient-ai-356502bc
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_GI0HzIX0slGCi2ukXPIm2

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability aient-ai-356502bc
```

Example prompt: List all the services in my OpenTelemetry traces so I can see what's available — use the 'services' describe mode against the traces source for my environment.

## When to prefer this

Use this endpoint as the first step before querying traces or logs — when you need to discover what services, operations, or attribute keys exist in the corpus without guessing. Prefer this over directly querying traces when you don't know the exact service names or filter keys available, as it returns counts to help prioritize what to query next.

## Known failure modes

- Missing required 'describe' query parameter returns validation error
- Invalid 'describe' enum value (not services/operations/attributes) returns 400
- Requesting operations without specifying serviceName may return empty or error
- Invalid 'source' enum value returns 400
- Payment not included or insufficient USDC balance returns 402
- environmentId not found returns empty result set
- Exceeding limit parameter bounds may cause truncation or error

## How this service works

Discover the schema of your OpenTelemetry corpus: list services, the operations under a service, or the span/log attribute keys in use. Returns counts so a buyer-side agent can pick what to query next without guessing.

## Output

A JSON object containing rowCount (integer) and rows (array of objects), each row representing a discovered service name, operation name, or attribute key along with its count — giving a snapshot of what exists in the telemetry corpus for that describe mode.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "pathParams": {
     "type": "object"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "describe"
     ],
     "properties": {
      "end": {
       "type": "string",
       "format": "date-time",
       "description": "Explicit window end; the complete pair is capped at 7 days. Partial explicit pairs are rejected."
      },
      "limit": {
       "type": "integer"
      },
      "start": {
       "type": "string",
       "format": "date-time",
       "description": "Explicit window start; the complete pair is capped at 7 days. Partial explicit pairs are rejected."
      },
      "source": {
       "enum": [
        "traces",
        "logs"
       ],
       "type": "string"
      },
      "describe": {
       "enum": [
        "services",
        "operations",
        "attributes",
        "releases"
       ],
       "type": "string"
      },
      "lastMinutes": {
       "type": "integer",
       "description": "Relative telemetry window, capped at 7 days for releases; a complete start/end pair takes precedence."
      },
      "serviceName": {
       "type": "string"
      },
      "environmentId": {
       "type": "string"
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "source",
      "describe",
      "environmentId",
      "timeRange",
      "rowCount",
      "rows"
     ],
     "properties": {
      "rows": {
       "type": "array",
       "items": {
        "type": "object"
       }
      },
      "source": {
       "enum": [
        "traces",
        "logs"
       ],
       "type": "string"
      },
      "describe": {
       "enum": [
        "services",
        "operations",
        "attributes",
        "releases"
       ],
       "type": "string"
      },
      "rowCount": {
       "type": "integer"
      },
      "timeRange": {
       "type": "object",
       "properties": {
        "end": {
         
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/aient-ai-356502bc/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from aient.ai](https://www.zero.xyz/host/aient.ai/llms.txt)
