Analytics ยท Client Identification

Know which clients use your API โ€” and how

Add two HTTP headers to your requests. Every analytics view becomes client-aware. Filter metrics, traces, and operations by client name and version. Schema Field Usage shows per-client breakdowns for every field. No Cosmo configuration changes required.

Two headers. Full client attribution across metrics, traces, operations, and field usage.

Available onFreeProEnterprise

The problem

Anonymous traffic makes targeted action impossible

Without knowing which application sent a request, you cannot isolate issues, target communication, or track version adoption.

Anonymous traffic masks the source of issues

When web, mobile, and partner clients share a single API endpoint, traffic is a single undifferentiated stream. Slow responses or elevated error rates could be coming from any of them.

Breaking change communication reaches the wrong people

Without knowing which clients use which fields or operations, teams send deprecation notices to everyone. Most recipients are unaffected. The ones who matter may not pay attention.

Client version drift is invisible

Older client versions may still call deprecated fields or send malformed queries. Without version tracking, you cannot tell how many users are on outdated clients or when it is safe to remove legacy support.

Our solution

Two headers. Full client attribution.

Client Identification requires no Cosmo configuration. Client applications add name and version headers to their requests. The Cosmo Router reads them automatically and propagates client context through every analytics view.

How it works

  1. Client Identification uses HTTP headers to identify client applications and versions on every request.

  2. The Cosmo Router extracts these headers automatically and associates the client data with all telemetry.

  3. All analytics views โ€” metrics, traces, schema field usage, and operations โ€” become client-aware.

  4. Filter metrics, traces, and operations by client name and version.

  5. Group trace analytics by client to see per-application behavior.

  6. Schema Field Usage shows per-client breakdowns for every field.

  7. No additional configuration is required on the Cosmo side beyond deploying the router.

From anonymous traffic to client-aware analytics in minutes.

Client Identification

Before & After

Before CosmoWith Cosmo
Anonymous traffic with no client attributionEvery request identified by client name and version
Unable to isolate client-specific issuesFilter all analytics by specific client versions
Blanket communication about breaking changesTargeted communication to clients that use the affected field
No visibility into client version distributionTrack which versions are active across your API

Header formats

Two supported formats

Vendor-neutral (recommended)
GraphQL-Client-Name: your-appGraphQL-Client-Version: 1.0.0
Apollo-compatible
ApolloGraphQL-Client-Name: your-appApolloGraphQL-Client-Version: 1.0.0

Both formats are supported. The vendor-neutral format is recommended for new implementations.

How Client Identification works

01
Two headers per request.

Add headers

Client applications add two HTTP headers to every GraphQL request: the client name and the client version. No SDK changes or additional setup required on the Cosmo side.

02
Automatic extraction.

Router extracts

The Cosmo Router reads the identification headers from incoming requests and associates the client name and version with all telemetry data for that request.

03
Filter and group everywhere.

Analytics become client-aware

Metrics, traces, and operations support filtering by client name and version. Schema Field Usage shows a per-client breakdown for every field. Group traces by client to see per-application patterns.

04
Per-client deprecation targeting.

Target communication

Use Schema Field Usage to get a list of exactly which clients use a specific field. Reach out to each team with specific usage data rather than a blanket announcement.

What is included

Built into every Cosmo plan

Available on Free, Pro, and Enterprise.

Client-aware analytics

Filter metrics, traces, and operations by client name and version. Schema Field Usage shows a per-client breakdown for every field once headers are in place.

Version tracking

See which client versions are actively making requests to your API. Identify outdated versions still calling deprecated fields before you remove them.

Easy implementation

Two HTTP headers per request. No SDK changes, no Cosmo configuration, no additional services. The router handles extraction automatically.

Ecosystem compatibility

Supports both vendor-neutral headers (recommended) and Apollo-compatible headers. Migrating from Apollo? Your existing header setup works without changes.

Identify your clients across all analytics

Add two headers to your client requests and every analytics view becomes client-aware immediately.

FAQ

Client Identification on Cosmo

Full details in the client identification documentation.