Platform Design
Every Dodil service is defined as a strongly-typed gRPC API (Protobuf), and the same surface is automatically exposed over HTTP/JSON. Use whichever fits:
- gRPC — typed, streaming, fast. Ideal for services, SDKs, and agents.
- HTTP/JSON — plain
curlfrom any language, nothing to install.
Because the contract is Protobuf, the API is self-describing. Point any gRPC tool at an endpoint and use server reflection to enumerate every service, method, and message type — live, with no .proto files and no guesswork. And discovery needs no credentials: list and describe are open, so an agent can map the entire typed surface before it has a token, then authenticate only when it actually calls a method. That’s what makes the platform genuinely agent-friendly.
Discover the API with reflection
No auth required — just point grpcurl at an endpoint:
# list every gRPC service on an endpoint
grpcurl rpc.dodil.io:443 list
# describe a service (or method) to see its exact request/response types
grpcurl rpc.dodil.io:443 describe dodil.ignite.v1.ModelServiceYou only need an access token once you start calling methods.
Note. The DataK³ control door
rpc.data.dodil.io:443runs mTLS in production, so plaingrpcurl … listagainst it will not connect without a client certificate — reflection is still enabled, but the transport requires mTLS. Explore DataK³ over its HTTP surface or the CLI instead.
Endpoints
| Surface | Endpoint |
|---|---|
| gRPC — Ignite, Scriptum | rpc.dodil.io:443 |
| gRPC — DataK³ control plane | rpc.data.dodil.io:443 |
DataK³’s data plane speaks adapter protocols on top: point a stock client at the wire it already knows — Postgres pg.uk-lon-1.dodil.io:5432, S3 object.uk-lon-1.dodil.io, Bolt bolt+s://bolt.uk-lon-1.dodil.io:7687, Qdrant qdrant.uk-lon-1.dodil.io, Pinecone pinecone.uk-lon-1.dodil.io, GraphQL gql.uk-lon-1.dodil.io/graphql. Data-plane doors are region-scoped (<service>.<region>.dodil.io; uk-lon-1 today). Endpoints, credentials, and per-language snippets: DataK³ Connect & Adapters .
Each service is also reachable over HTTP/JSON — see a product’s Conventions page for its HTTP base (most are under api.dodil.io). Authenticate once with an IAM access token (or dodil login via the CLI).
See also
- Get an Access Token — authenticate the API programmatically
- Each product’s Conventions page for its exact endpoints and wire format