Telemetry
Browse docs
Getting StartedUpdated July 28, 2026Reviewed by the Telemetry editorial and product teams2 min read

Use this doc with your coding agent

Copy a Telemetry prompt and ask Claude Code, Codex, or Cursor to instrument the workflow covered here.

On this page
  1. Find the table
  2. Inspect the inferred schema
  3. Inspect the exact row
  4. Verify through the API
  5. Record the contract

Verify Event Ingestion and Schema

An accepted API request is not the end of an instrumentation check. Verify the resulting table and row before copying the event into more routes, workers, or services.

This page assumes you sent the synthetic api_request_completed event from Send Your First Structured Event.

Find the table

Open your Telemetry team, select Tables, and open api_request_completed. If the table is absent:

  1. Confirm the API request returned a successful response.
  2. Confirm the key belongs to the intended team and has a write-capable scope.
  3. Check the exact table name after normalization.
  4. Retry once with a new synthetic request_id.
  5. Follow Troubleshooting Event Ingestion before changing the schema.

Avoid repeatedly sending the same event without a new identifier; retries can make later counts ambiguous.

Inspect the inferred schema

The synthetic API example should expose fields similar to:

Field Expected analytical type Check
timestamp_utc Timestamp Added consistently and stored in UTC
route_template Text Contains a bounded route template, not a raw URL
status_code Integer Can support numeric comparisons
latency_ms Number Uses milliseconds everywhere
status Text Uses a small documented vocabulary
request_id Text Connects related events without exposing secrets

If an important field has the wrong type, stop and fix the producer before sending production volume. A field that changes from a number to arbitrary text can make saved SQL and charts harder to reason about.

Inspect the exact row

Use the Samples or Table view and find request_id = req_demo_001. Confirm:

  • The row belongs to the expected environment and release.
  • latency_ms is 184, not 0.184 or 184000.
  • The route does not contain a real report or account identifier.
  • No authorization header, cookie, request body, secret, prompt, or private customer content was included.
  • The generated time matches the send window.

The expected row is evidence that the event contract works. It is not a performance benchmark or representative production distribution.

Verify through the API

You can also inspect tables and schemas programmatically:

curl https://api.telemetry.sh/tables \
  -H "Authorization: Bearer $TELEMETRY_API_KEY"

Then request the table schema:

curl https://api.telemetry.sh/tables/api_request_completed/schema \
  -H "Authorization: Bearer $TELEMETRY_API_KEY"

Use a read-capable key for verification automation. The Tables API documents pagination, normalization, retention, and schema responses.

Record the contract

Before expanding instrumentation, write down:

  • The event name and business grain.
  • Required and optional fields.
  • Field types and units.
  • Allowed status and error categories.
  • Identity and correlation fields.
  • Fields that are prohibited.
  • The owner and intended retention period.

Continue with Write Your First SQL Query. For schema-change strategy, see Schema Evolution.

Related product capability

Capture stable event names, typed fields, and privacy-reviewed context.

Ownership and technical references

The Telemetry editorial team owns this explanation; the product team reviews behavior, examples, and boundaries.

Review the editorial standard