Developers

There is no pod API to learn

A pod is a Community Solid Server instance. You read and write it with plain HTTP against the Linked Data Platform spec, using any Solid client library you already have. That is not a simplification for this page — there is genuinely no proprietary API in front of it, and nothing we could deprecate underneath you.

What the server tells you about itself

Response headers from a real pod container. Nothing here is our invention; every one is a Solid or LDP header the reference server emits.

HEAD https://pod.solidus.network/<slug>/
x-powered-by: Community Solid Server
wac-allow: user="read",public="read"
allow: OPTIONS, HEAD, GET, POST
link: <http://www.w3.org/ns/pim/space#Storage>; rel="type"
link: <http://www.w3.org/ns/ldp#Container>; rel="type"
link: <http://www.w3.org/ns/ldp#BasicContainer>; rel="type"

Authentication

Solid-OIDC. The pod is its own issuer, and the discovery document is public — the values below are read from it, not asserted here. For a script or a backend, the client-credentials grant gives you a bearer token without a browser; register credentials from your account, then exchange them at the token endpoint.

Issuer
https://pod.solidus.network/
Token endpoint
https://pod.solidus.network/.oidc/token
Grants
authorization_code · refresh_token · client_credentials

A token issued this way carries your WebID. Access is then decided by the access-control rules on each resource, not by the token's scope — so a token alone grants nothing that the pod's owner has not granted your WebID.

The whole quickstart

Two commands. The first gets a token, the second reads a container. Substitute your own pod's address for `<slug>`.

curl -s -X POST https://pod.solidus.network/.oidc/token \
  -u "$CLIENT_ID:$CLIENT_SECRET" \
  -d 'grant_type=client_credentials&scope=webid'

curl -H "Authorization: Bearer $TOKEN" \
  -H "Accept: text/turtle" \
  https://pod.solidus.network/<slug>/

Client libraries

Use a Solid client. Pod's own interface is built on Inrupt's `@inrupt/solid-client` and `@inrupt/solid-client-authn-browser`, which are third-party and work against pod for the same reason they work against any Solid server. We do not ship a pod-specific client and do not plan to — a wrapper around a specification is a dependency without a benefit.

`@solidus-network/sdk` exists on npm, but it is the chain SDK — DID resolution, credential issuance and verification. It is not a pod client and you do not need it to read or write files.

What does not exist, so you do not go looking

No webhooks and no change notifications. There is no way to subscribe to pod events. If you need to know a resource changed, you poll it. Solid Notifications is specified and we have not implemented it.

No REST file API of our own. `pod.solidus.network/v1/` serves health and pod provisioning, nothing else. Files, folders, credentials and permissions are all LDP against the pod itself.

No published Python package. `solidus-py` exists as a repository and is not on PyPI. ⚠ Do not `pip install solidus` — that name belongs to an unrelated project by another author.

No sandbox tenant. Create a pod and use it; it is free, and there is no separate test environment to request.

Building something?

The Solid Protocol specification
Developers — Solidus Pod