Access WDM APIs

WDM provides ConnectRPC and REST interfaces for publishing, retrieving, searching, and streaming operational data. Applications can use these interfaces through an official SDK or call them directly.

Start with an Official SDK

The [R]DP SDKs are the recommended integration path for supported languages. They provide typed clients and standard handling for transport configuration, authentication, logging, and timeouts. The examples throughout the Object and Action guides lead with SDK usage for this reason.

Direct protocol access remains available for scripts, unsupported languages, existing clients, and integrations that need control over the transport layer.

Endpoint and Authentication Basics

ConnectRPC and REST use the same base URL for your environment.

Interface Path format Example

ConnectRPC

/<fully-qualified-service>/<method>

POST ${RDP_SERVER_URL}/raft.wdm.v1.service.ObjectService/SearchObjects

REST

/api/v1/wdm/<resource>

POST ${RDP_SERVER_URL}/api/v1/wdm/objects/search

Both interfaces accept the same authentication metadata.

  • API key: Set RDP_API_KEY; clients send it in the X-API-KEY header.

  • Client credentials: Set RDP_CLIENT_ID and RDP_CLIENT_SECRET; SDKs exchange them at /api/v1/auth/token and send the resulting bearer token.

  • Bearer token: Set RDP_BEARER_TOKEN; clients send it directly in the Authorization: Bearer <token> header.

Configure one authentication flow for a client.

ConnectRPC

ConnectRPC is the first-class RPC technology for direct access to the Protobuf-defined WDM services. It provides generated request and response types and supports typed subscription streams and streaming publication.

[R]DP’s ConnectRPC endpoints are also compatible with gRPC and gRPC-Web clients. Prefer a ConnectRPC client for new direct RPC integrations, and use gRPC or gRPC-Web when an existing client or platform requires those protocols.

Generate direct RPC clients from the public WDM module in the Buf Schema Registry.

For example, buf curl can use the public schema to issue a ConnectRPC request without generated client code:

buf curl --schema buf.build/raft/wdm \
  -H "X-API-KEY: ${RDP_API_KEY}" \
  -d '{"objectId":"link16-track-47210"}' \
  "${RDP_SERVER_URL}/raft.wdm.v1.service.ObjectService/GetObject"

To authenticate either example with a bearer token instead, replace the API-key header with Authorization: Bearer $RDP_BEARER_TOKEN.

Prefer ConnectRPC with binary Protobuf encoding when possible. Binary Protobuf payloads are more compact on the wire than the JSON payloads used by REST, which makes them well suited to high-volume or bandwidth-constrained integrations.

REST

The REST API exposes WDM resources through HTTP endpoints with JSON request and response bodies. It works well with command-line tools, API testing tools, and systems already built around HTTP resources.

curl "${RDP_SERVER_URL}/api/v1/wdm/objects/link16-track-47210" \
  -H "X-API-KEY: ${RDP_API_KEY}"

The operation guides include REST examples for supported unary operations such as publishing, retrieving, and searching Objects and creating or updating Actions. REST exposes Object and Action streams as newline-delimited JSON (NDJSON). REST publishing remains unary; REST does not provide a streaming publish interface.

Operation Support

Operation type ConnectRPC REST

Unary operations

Supported

Supported

Object and Action subscription streams

Supported as typed server streams

Supported as NDJSON

Streaming publication

Supported

Not supported

REST NDJSON streaming is receive-only. Use ConnectRPC when an integration needs streaming publication.