# Darkbloom for developers

Use the consumer API to request inference, or run the provider app and CLI to contribute compute. These are separate roles with different credentials and prerequisites.

## Consumer API

Sign in to the Console and create an API key in API Console. Keep the key secret and use a funded account for paid fleet inference.

Send Authorization: Bearer <DARKBLOOM_API_KEY> with consumer requests. For the OpenAI SDK, use https://api.darkbloom.dev/v1 as the base URL. A provider device token is not a consumer API key.

List models with GET /v1/models before choosing a model ID. Availability and supported features depend on the model and network capacity. Responses, Messages and legacy Completions are described in the full API reference; the downloadable OpenAPI document covers a reviewed consumer subset.

```sh
curl https://api.darkbloom.dev/v1/models \
  -H "Authorization: Bearer $DARKBLOOM_API_KEY"
```

[Console](https://console.darkbloom.dev/api-console) · [Authentication](/auth.md) · [OpenAPI](/openapi.json) · [Pricing](/pricing.md)

## Provider app and CLI

The official darkbloom CLI operates provider software on an eligible Apple Silicon Mac. It is not an npm package or a consumer API client. Check the current hardware, macOS and security requirements before installing.

Use the official installer and provider documentation. Run darkbloom doctor to check the Mac, darkbloom login to link it to your account, and darkbloom start to begin serving. darkbloom status reports the local provider state.

```sh
# On an eligible Mac, after following the official installation guide
darkbloom doctor
darkbloom login
darkbloom start
darkbloom status
```

[CLI reference](https://github.com/Layr-Labs/d-inference/blob/master/docs/provider/cli-reference.md) · [Provider installation](https://docs.darkbloom.dev/provider/install)

## Privacy

Requests are encrypted hop by hop. The coordinator decrypts requests in confidential-VM memory for routing and billing, does not log or retain prompt content, and re-encrypts each request to the provider’s attested key. The provider is the plaintext endpoint; this is not end-to-end encryption between consumer and provider.

[Documentation](https://docs.darkbloom.dev/introduction) · [Home](/index.md)
