Developer platform
One universal API for the Developers Digest tools: image generation, voice synthesis, video generation, web search, and your asset gallery. Authenticate every request with a dd_live_ key and every metered call spends the same universal credit balance.
Getting started
Authorization: Bearer dd_live_....{ error, message } shape; see Errors and rate limits.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"}'/api/v1/images5 creditsGenerate an image from a text prompt. Credits are deducted only after a successful generation, so a provider failure never charges you.
Rate limit: 10 requests per 5 minutes
| prompt | string | Text prompt, 3 to 2000 characters. |
| size | string (optional) | One of: square, square_hd, portrait, landscape, wide. Defaults to square_hd. |
{
"url": "https://fal.media/files/.../image.png",
"model": "fal-ai/...",
"creditsSpent": 5,
"balance": 95
}url is the generated image, model is the provider model used, and balance is your remaining credit balance after the charge.
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"}'/api/v1/voice2 creditsSynthesize 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
| text | string | Text to speak, 3 to 2000 characters. |
| voice | string (optional) | Voice name. Invalid values return a 400 listing the supported voices. |
| model | string (optional) | TTS model. Invalid values return a 400 listing the supported models. |
{
"audioBase64": "SUQzBAAAAAAA...",
"model": "...",
"voice": "...",
"creditsSpent": 2,
"balance": 93
}Decode audioBase64 to get the MP3 bytes, or wrap it in a data:audio/mpeg;base64, URL for direct playback.
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."}'/api/v1/video15 creditsGenerate a short video from a text prompt. Mirrors the images endpoint: credits are deducted only after a successful generation.
Rate limit: 5 requests per 5 minutes
| prompt | string | Text prompt, 3 to 2000 characters. |
{
"url": "https://.../video.mp4",
"model": "fal-ai/...",
"creditsSpent": 15,
"balance": 78
}url is a durable link to the generated video; balance is your remaining credits after the charge.
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"}'/api/v1/search2 creditsWeb search plus answer synthesis: runs a live web search, then synthesizes a sourced answer. Charged only after a successful run.
Rate limit: 10 requests per 5 minutes
| query | string | Search query, 3 to 500 characters. |
{
"answer": "Synthesized answer text...",
"sources": [ { ... } ],
"creditsSpent": 2,
"balance": 91
}answer is the synthesized response and sources lists the web pages it was grounded in.
curl -X POST https://www.developersdigest.tech/api/v1/search \
-H "Authorization: Bearer dd_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "what changed in the latest Next.js release"}'/api/v1/galleryFreeList your saved assets, newest first, with your folder list. Reading the gallery never spends credits. POST to the same path persists a just-generated asset (image via a provider sourceUrl, or voice via audioBase64) into durable storage; persisting is also free because the generating call already charged. PATCH moves an asset into a folder.
| limit | number (optional) | Query param. Max number of assets to return. |
| before | ISO date (optional) | Query param. Return assets created before this timestamp (cursor pagination). |
| folder | string (optional) | Query param. Filter to a single folder. |
GET parameters are query string params, not a JSON body.
{
"folders": ["Uncategorized", "Heroes"],
"assets": [
{
"id": "…",
"kind": "image",
"url": "https://…",
"name": null,
"folder": null,
"prompt": "…",
"model": "…",
"contentType": "image/png",
"creditsSpent": 5,
"createdAt": "2026-07-01T00:00:00.000Z"
}
]
}kind is "image" or "voice". POST returns 201 with { asset } for the newly persisted item.
curl "https://www.developersdigest.tech/api/v1/gallery?limit=20" \
-H "Authorization: Bearer dd_live_YOUR_KEY"Shared semantics
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).
| Status | error | When | Extra fields |
|---|---|---|---|
| 401 | unauthorized | Missing or invalid API key (and no signed-in session). | - |
| 402 | insufficient_credits | Your balance is below the endpoint's credit cost. Add credits at /pricing. | balance |
| 429 | rate_limited | Too many requests in the window. Back off and retry. | retryAfterSeconds (+ Retry-After header) |
| 400 | bad_request | Validation failed; the message explains which field is wrong. | - |
| 500 | internal | Unexpected server error. Metered endpoints never charge on failure. | - |
{
"error": "insufficient_credits",
"message": "Not enough credits for this action. Add credits at /pricing.",
"balance": 1
}Agents
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.
| Tool | Cost | What it does |
|---|---|---|
| generate_image | 5 credits | Text-to-image; persists to your Studio gallery and returns a durable URL plus dashboard link. |
| generate_voice | 2 credits | Text-to-speech; persists to your Studio gallery and returns a durable URL plus dashboard link. |
| count_tokens | Free | Token count for a string. |
| search_content | Free | Search the Developers Digest site index. |
| get_daily_brief | Free | Latest Daily Brief text. |
| get_balance | Free | Your current credit balance. |
| save_memory / list_memories / search_memories | Free | Per-caller durable notes and links that survive across sessions and machines. |
| list_skills / get_skill | Free | Copyable SKILL.md registry (skills as a service). |
| list_agents / get_agent | Free | Copyable subagent definitions. |
| list_design_systems / get_design_md | Free | Copyable DESIGN.md contracts. |
{
"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"