Skip to main content
The JSON API provides an HTTP/REST interface to the Canton Ledger API. In Canton 3.x, it is integrated directly into the participant node and translates JSON HTTP requests into gRPC Ledger API calls.

Quick Reference

When to Use the JSON API

The JSON API is the recommended access method when:
  • You’re building browser-based frontends or web applications
  • Your language/framework works better with HTTP/JSON than gRPC
  • You want simpler tooling for development and debugging (curl, Postman, etc.)
  • You’re using the TypeScript/JavaScript Wallet SDK
Use gRPC directly when:
  • You need maximum performance for high-throughput streaming
  • You’re using Java and want the native gRPC experience
  • You need access to gRPC-specific features not exposed via JSON

Key Endpoints

Version Check

Command Submission

Other submission endpoints include /v2/commands/submit-and-wait-for-transaction (returns the full transaction) and /v2/commands/async/submit (returns immediately).

Active Contract Queries

Transaction Streaming

The JSON API supports both HTTP POST and WebSocket connections for streaming updates. Use /v2/updates or /v2/updates/flats for flat transaction streams, and /v2/updates/trees for transaction trees. WebSocket connections use the daml.ws.auth subprotocol.

Configuration

The JSON API is configured via the http-ledger-api section of the participant node’s configuration. In cn-quickstart LocalNet deployments, it is pre-configured and available at http://localhost:7575. The OpenAPI and AsyncAPI specifications are available at runtime:

Authentication

Pass a JWT Bearer token in the Authorization header:
The token must be valid for the OIDC provider configured for your deployment.