Skip to main content
Watch: The Agentic Identity Hub

Developer platform

API Reference

One universal API for the Developers Digest tools: text, image, voice, and video generation, your asset gallery, identity, and the public skill library. Authenticate every request with a dd_live_ key and every metered call spends the same universal credit balance.

Prefer a terminal? The dd CLI wraps these endpoints, and the MCP platform exposes the same capabilities to agents.

Getting started

Authentication and credits

  • Create a key at /dashboard/keys and send it on every request as Authorization: Bearer dd_live_....
  • Metered endpoints spend universal credits from one shared balance. You are only charged when a call succeeds; provider failures never charge you.
  • Success responses are plain JSON with the data directly (no envelope wrapper). Errors always use a single { error, message } shape; see Errors and rate limits.
First request
curl -X POST https://www.developersdigest.tech/api/v1/images \
  -H "Authorization: Bearer dd_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "a minimal editorial illustration of an api"}'
POST/api/v1/text1-3 credits

Non-streaming text generation across the frontier chat models. The message is priced by the chosen model's credit tier; an unknown or absent model falls back to the default. Credits are deducted only after a successful generation.

Rate limit: 20 requests per 5 minutes

Request body
promptstringThe prompt, 1 to 24000 characters.
modelstring (optional)Gateway model id, e.g. anthropic/claude-sonnet-5. Unknown or absent falls back to the default. Priced by the model's tier: 1 (economy), 2 (standard), or 3 (premium).
systemstring (optional)System instruction, up to 8000 characters. Defaults to the Developers Digest assistant prompt.
Success 200
{
  "text": "...",
  "model": "moonshotai/kimi-k2.5",
  "creditsSpent": 1,
  "balance": 99
}

text is the completion, model is the resolved model id, and balance is your remaining credits. Per-model credit tiers are listed on /pricing.

curl
curl -X POST https://www.developersdigest.tech/api/v1/text \
  -H "Authorization: Bearer dd_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "Explain MCP in two sentences.", "model": "anthropic/claude-sonnet-5"}'
POST/api/v1/images1-6 credits

Generate an image from a text prompt. Models route through the AI Gateway and each model carries its own credit cost, resolved server-side. Credits are deducted only after a successful generation, so a provider failure never charges you.

Rate limit: 10 requests per 5 minutes

Request body
promptstringText prompt, 3 to 2000 characters.
sizestring (optional)One of: square, square_hd, portrait, landscape, wide. Defaults to square_hd.
modelstring (optional)Image model id, e.g. xai/grok-imagine-image (default, 1 credit) or openai/gpt-image-2 (3). Invalid values return a 400 listing the supported models.
Success 200
{
  "url": "https://.../image.png",
  "persisted": true,
  "model": "xai/grok-imagine-image",
  "creditsSpent": 1,
  "balance": 99
}

url is durable when persisted is true (otherwise the ephemeral provider URL plus a persistError), model is the provider model used, and balance is your remaining credit balance after the charge.

curl
curl -X POST https://www.developersdigest.tech/api/v1/images \
  -H "Authorization: Bearer dd_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "isometric server room, editorial illustration", "size": "landscape"}'
POST/api/v1/voice1 credit

Synthesize speech from text. The response is JSON (not a raw audio body) so credits and balance ride along with the audio; audioBase64 is a base64-encoded MP3 (audio/mpeg). You are only charged on success.

Rate limit: 10 requests per 5 minutes

Request body
textstringText to speak, 3 to 2000 characters.
voicestring (optional)Voice name. Invalid values return a 400 listing the supported voices.
modelstring (optional)TTS model. Invalid values return a 400 listing the supported models.
Success 200
{
  "audioBase64": "SUQzBAAAAAAA...",
  "model": "...",
  "voice": "...",
  "creditsSpent": 1,
  "balance": 99
}

Decode audioBase64 to get the MP3 bytes, or wrap it in a data:audio/mpeg;base64, URL for direct playback.

curl
curl -X POST https://www.developersdigest.tech/api/v1/voice \
  -H "Authorization: Bearer dd_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text": "Welcome to Developers Digest."}'
POST/api/v1/video3-18 credits

Generate a short video from a text prompt (plus an optional input image for image-to-video models). Each model carries its own credit cost, resolved server-side; credits are deducted only after a successful generation.

Rate limit: 5 requests per 5 minutes

Request body
promptstringText prompt, 3 to 2000 characters.
modelstring (optional)Video model id, e.g. bytedance/seedance-2.0-fast (default, 8 credits). Invalid values return a 400 listing the supported models.
imageUrlstring (optional)http(s) image URL. Required for image-to-video (i2v) models.
Success 200
{
  "url": "https://.../video.mp4",
  "model": "bytedance/seedance-2.0-fast",
  "creditsSpent": 8,
  "balance": 92
}

url is a durable link to the generated video; balance is your remaining credits after the charge.

curl
curl -X POST https://www.developersdigest.tech/api/v1/video \
  -H "Authorization: Bearer dd_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "slow pan across a workbench of developer tools"}'
GET/api/v1/meFree

Identity and credit balance for the authenticated caller. Useful for a CLI or agent to confirm the key works and show the remaining balance before spending.

Success 200
{
  "clerkId": "user_...",
  "balance": 95,
  "isOwner": false,
  "plan": "plan-developer",
  "planRenewsAt": "2026-08-01T00:00:00.000Z"
}

plan is the active membership product id (or null on no plan) and planRenewsAt is an ISO timestamp, or null when nothing is renewing. isOwner accounts are never charged.

curl
curl https://www.developersdigest.tech/api/v1/me \
  -H "Authorization: Bearer dd_live_YOUR_KEY"
GET/api/v1/skillsFree

The lean index of the Developers Digest Skill Library: slug, one-line description, and category for every skill. The entry point for progressive disclosure - scan this cheap list, then fetch a single skill's manifest.

Public content - no API key required.

Success 200
{
  "skills": [
    { "slug": "mcp-server-authoring", "description": "...", "category": "..." }
  ]
}

Unauthenticated and cacheable. Mirrors the MCP list_skills tool.

curl
curl https://www.developersdigest.tech/api/v1/skills
GET/api/v1/skills/{slug}Free

A single skill's overview manifest: identity plus the file tree (paths and a one-line purpose, not contents) and a download link. The middle tier of progressive disclosure.

Public content - no API key required.

Success 200
{
  "slug": "mcp-server-authoring",
  "name": "...",
  "description": "...",
  "category": "...",
  "files": [ { "path": "SKILL.md", "purpose": "..." } ],
  "downloadUrl": "https://www.developersdigest.tech/api/v1/skills/mcp-server-authoring/download"
}

files lists paths and purposes only, never contents. An unknown slug returns 404 { error: "not_found", message }.

curl
curl https://www.developersdigest.tech/api/v1/skills/mcp-server-authoring
GET/api/v1/skills/{slug}/downloadFree

Download a skill as a .zip. The archive holds the full multi-file tree under a single top-level folder named after the slug, so it unpacks cleanly into a .claude/skills/ directory.

Public content - no API key required.

Success 200
HTTP/1.1 200 OK
Content-Type: application/zip
Content-Disposition: attachment; filename="mcp-server-authoring.zip"

<zip bytes>

The body is the zip, not JSON: {slug}/SKILL.md plus reference/ and scripts/ files. An unknown slug returns 404 { error: "Skill not found" }.

curl
curl -L https://www.developersdigest.tech/api/v1/skills/mcp-server-authoring/download -o skill.zip

Shared semantics

Errors and rate limits

Every endpoint uses the same error envelope: a machine-readable error code plus a human message, with the matching HTTP status. Gating runs in order: auth (401), then rate limit (429), then validation (400), then credit balance (402).

StatuserrorWhenExtra fields
401unauthorizedMissing or invalid API key (and no signed-in session).-
402insufficient_creditsYour balance is below the endpoint's credit cost. Add credits at /pricing.balance
429rate_limitedToo many requests in the window. Back off and retry.retryAfterSeconds (+ Retry-After header)
400bad_requestValidation failed; the message explains which field is wrong.-
500internalUnexpected server error. Metered endpoints never charge on failure.-

Generation endpoints also return 503 not_configured when a provider is not set up for the deployment. The public skill endpoints are unauthenticated and return a plain 404 for an unknown slug rather than the auth or credit envelope.

Error example (402)
{
  "error": "insufficient_credits",
  "message": "Not enough credits for this action. Add credits at /pricing.",
  "balance": 1
}

Agents

MCP server

The platform also ships as a Vercel-hosted Model Context Protocol server at https://www.developersdigest.tech/api/mcp (streamable HTTP). It exposes the same credit-metered capabilities as the REST API as MCP tools so agents can call them directly. A dd_live_ key is required via Authorization: Bearer on the transport; there is no session on MCP. See the MCP platform overview for the connect walkthrough.

ToolCostWhat it does
generate_image5 creditsText-to-image; persists to your Studio gallery and returns a durable URL plus dashboard link.
generate_voice1 creditText-to-speech; persists to your Studio gallery and returns a durable URL plus dashboard link.
generate_videoPer modelText-to-video via the AI Gateway (optional imageUrl for image-to-video); persists to your Studio gallery.
count_tokensFreeToken count for a string.
search_contentFreeSearch the Developers Digest site index.
get_daily_briefFreeLatest Daily Brief text.
get_balanceFreeYour current credit balance.
save_memory / list_memories / search_memoriesFreePer-caller durable notes and links that survive across sessions and machines.
list_skills / get_skillFreeCopyable SKILL.md registry (skills as a service).
list_agents / get_agentFreeCopyable subagent definitions.
list_design_systems / get_design_mdFreeCopyable DESIGN.md contracts.
MCP client config
{
  "mcpServers": {
    "developers-digest": {
      "type": "http",
      "url": "https://www.developersdigest.tech/api/mcp",
      "headers": {
        "Authorization": "Bearer dd_live_YOUR_KEY"
      }
    }
  }
}

Works with any MCP client that supports streamable HTTP, for example Claude Code: claude mcp add developers-digest https://www.developersdigest.tech/api/mcp -t http -H "Authorization: Bearer dd_live_YOUR_KEY"