Blueprint Studio API v1
Programmatically generate brand assets, manage styles, and access your asset library. 43 endpoints across 9 categories.
Authentication
All API requests require an API key sent via the Authorization header.
curl https://tools.blueprintstudio.ai/api/v1/assets \
-H "Authorization: Bearer bp_live_your_api_key_here"The REST API and API keys are on paid plans: Pro and Max. A Free account can also use them with Pro access from a client grant or credit pack of 600 or more credits, or with a key bound to a brand that includes Pro. Otherwise every request, read or write, answers 403 with code PLAN_REQUIRED, nextStep, plansUrl and checkoutUrl (a one-step Stripe checkout for Pro on the key's account, no sign-in); the key isn't revoked and works again once the account upgrades. AI apps connect with MCP sign-in on every plan, Free included.
Each API key is bound to one workspace: a single brand, or your personal library. A key only works in its own workspace, so a personal key can't act on brands and a brand key can't reach other brands or your personal library. Choose the workspace when you create a key in Settings, and create one key per brand you automate.
Create API keys in your account settings. Keys are hashed on our servers, so save your key when first created.
Rate Limits
The API is available on paid plans. See plans
Credits are weighted by model, size and quality, so one image is not one credit: a standard image (GPT Image 2.5 Sunburst, 2K, medium quality) costs 3 credits, and each image sent with it (a reference, logo or the image being edited) adds 1. See credits per image for every model.
- Every
/api/v1response to an API key carriesX-RateLimit-Limit,X-RateLimit-RemainingandX-RateLimit-Reset(Unix seconds, next UTC midnight). - Polling a generation job (
GET /api/v1/generate/jobs/:id) doesn't count toward the daily limit. - Over the limit you get 429 with code
API_REQUEST_LIMITand aRetry-Afterheader.
Quick Start
1. Start a generation. Make up a new requestId (8 to 128 letters, digits, - and _; a UUID works), and send the same one if you retry this exact request:
curl -X POST https://tools.blueprintstudio.ai/api/v1/generate \
-H "Authorization: Bearer bp_live_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"prompt": "a minimalist coffee cup icon", "requestId": "coffee-cup-icon-1", "async": true}'It answers at once with HTTP 202 and a job to poll:
{
"status": "queued",
"jobId": "uuid",
"pollUrl": "/api/v1/generate/jobs/uuid",
"retryAfterSeconds": 5
}2. Check the job until its status is completed or failed (about 20 to 60 seconds). With waitSeconds, each request waits up to that long for the result:
curl "https://tools.blueprintstudio.ai/api/v1/generate/jobs/<jobId>?waitSeconds=20" \
-H "Authorization: Bearer bp_live_your_api_key_here"{
"jobId": "uuid",
"status": "completed",
"result": {
"assetId": "uuid",
"styleId": "uuid",
"imageUrl": "https://...",
"outputWidth": 1024,
"outputHeight": 1024,
"creditsCharged": 3,
"webUrl": "https://tools.blueprintstudio.ai/asset-generator?brand=personal&asset=uuid&ref=api",
"downloadUrl": "https://...",
"suggestedFilename": "a-minimalist-coffee-cup-icon-1a2b3c4d.png"
},
"error": null
}3. Save the image: curl -L -o <suggestedFilename> <downloadUrl>
Generation
Generate brand assets, get prompt suggestions, and brainstorm ideas using AI.
Assets
List, retrieve, delete, favorite, share, and remove backgrounds from generated assets.
Styles
Manage visual styles: list, create, update and delete custom styles, analyze images for style extraction, and manage reference images.
Brands
Manage brands: create, update, delete, manage settings, list and add official logos and brand assets, set the brand icon, and analyze websites for brand identity. An API key works only in the workspace it is bound to: a brand key can use only its own brand ID (any other returns 404), and a personal key cannot act on brands.
Uploads
Send image files that aren't at a public link: a logo to add as an official brand asset, or an image for generation. Each upload is checked by its bytes and works for 24 hours, in the key's workspace only.
API Keys
Manage API keys — list active keys, create new ones, and revoke existing keys. A key only sees and manages keys in its own workspace (its brand, or the personal library). API keys are on paid plans.
Settings
Get and update user-level settings: default style, prompt template and the preset for new images (fast, balanced or best).
Usage
Check current usage, rate limits, and remaining quotas.
Feedback
Tell the Blueprint Studio team what went wrong or what you wanted. Agents should use it when they get stuck, too.
Error Codes
| Status | Meaning |
|---|---|
| 400 | Bad request: check parameters. A refused reference image (code INVALID_REFERENCE_IMAGE, REFERENCE_URL_BLOCKED, REFERENCE_URL_UNREACHABLE, REFERENCE_IMAGE_TOO_LARGE or REFERENCE_UNAVAILABLE, with the matching status) says which one in reference, why in reason, and what works in nextStep; nothing is charged |
| 401 | Invalid or missing API key |
| 402 | Not enough credits for this image (code GENERATION_LIMIT), whether the balance is empty or only short of this image. Don't retry: show nextStep (cost against balance, and the closest setting that fits, also in cheaperOption, null when none) and plansUrl to the user, then wait for them or for the monthly reset (resetsAt; null when nothing refills, as on Free, so only a plan change or new credits help). On Free, checkoutUrl is a one-step Stripe checkout for Pro on this account (no sign-in, good for 7 days): show it, and from a terminal offer to open it in the user's browser only if they agree |
| 403 | Forbidden: the API is on paid plans and this key's account has no Pro access (code PLAN_REQUIRED, with nextStep, plansUrl and checkoutUrl, a one-step Stripe checkout for Pro on this account), or, rarely, the model or size isn't included where you're generating (code MODEL_NOT_ENTITLED, with plansUrl; every plan includes every current model and size) |
| 404 | Resource not found |
| 410 | An upload or upload link has expired (code UPLOAD_EXPIRED or UPLOAD_LINK_EXPIRED). Upload links take files for 30 minutes and uploads work for 24 hours: create a new upload link |
| 409 | Conflict, such as a requestId reused with different inputs (code IDEMPOTENCY_CONFLICT). A changed request, including a retry after a failed job, needs a new requestId |
| 413 | The uploaded file is over the 4 MB limit. Resize or compress it and retry. |
| 415 | The file isn't one of the accepted image types (PNG, JPEG, WebP, GIF, AVIF or SVG), whatever name or declared content type it was sent with. |
| 422 | The image model's safety filter refused the prompt or a reference image (code moderation_blocked, or a Google code such as image_safety). Not a server error and no credits were charged: reword it as nextStep says and retry once with a new requestId |
| 429 | A wait, not a failure: the daily request limit (code API_REQUEST_LIMIT, with resetAt), a short limit such as RATE_LIMITED, or the reference link limit (code REFERENCE_LINK_LIMIT: 120 new image links per 10 minutes, 4 fetched at a time; or reuse links already sent, saved image links or data URLs). UPLOAD_QUOTA means 200 uploads from the last 24 hours: use those, or wait for older ones to expire. Retry-After and retryAfterSeconds give the same seconds, error says how long in words, and nextStep says to wait and then retry once. No credits are charged |
| 500 | Server error |
| 503 | Usually a brief wait: a busy image or analysis service (code SERVICE_BUSY) or a short outage on our side (TEMPORARILY_UNAVAILABLE). Retry-After and retryAfterSeconds say how long; wait, then retry once. If the body has jobId (such as ADMISSION_OUTCOME_UNKNOWN, where credits may be held), poll that job instead; don't resubmit |
MCP Tools
AI apps connect to https://tools.blueprintstudio.ai/api/mcp and sign in with OAuth, so they need no API key; see Connect your AI. Your AI app picks these tools for you. API keys are for scripts and CI: each works in one brand or your personal library only, and never belongs in a committed file.
Brand Management
22 toolsget_workspace_contextStart here: plan, credits, what an image costs, brands and their guides, what your role allows, first steps, and whether your plugin needs an updateset_image_presetSet your preset for new images: fast, balanced or bestsetup_brandSet up a brand from a website or images: its logo, colors, fonts and style, with free previewsget_brand_setupShow a brand setup's draft and preview imagessave_brand_setupSave a confirmed brand setup as a brand and Stylecreate_brandCreate a new, empty brandlist_brandsList brands you belong to, each with its primary brand and sub-brandsget_brandGet brand details, settings and default Style, member count, what your role allows, and its primary brand and sub-brandslist_brand_assetsFind official logos and versioned generation references; kind "logo" with previews shows the logos on one numbered sheet to choose from, and each file comes with a short-lived download linkget_brand_kitGet a brand's kit as files: a summary plus one shell command that downloads its guide, tokens, official logos, artwork, products and Style references into a folder, one per brand, the primary firstadd_brand_assetAdd an official logo, artwork or product image from a link, a saved image, base64 or an uploadupdate_brand_assetLabel an official logo: its form, background and main logocreate_upload_linkGet a page for files that aren't at a public link, and a single-use upload URL when askedget_upload_linkList the files received on an upload link, ready to usesave_to_libraryKeep an upload or a public image link in the Library, named and in a folder found or made by namelist_libraryList a Library folder by path: its folders, uploads (with links to download) and made imagescreate_library_folderMake a Library folder by path, with any folders on the waymove_library_itemsMove images, uploads and folders into a folder, or to the top levelrename_library_itemRename a Library folder or uploaddelete_library_itemsDelete images, uploads and folders; a deleted folder's contents move upupdate_brand_settingsUpdate default style or prompt templatedelete_brandDelete a brand with its images and Styles (owner only)Styles
9 toolslist_stylesList available generation styles (system + custom), each with its type and sub-brand, and the brand's default markedcreate_styleCreate a custom brand style from a type and its fields or a prompt, with up to 5 reference images (links, uploads or saved images)get_styleGet style details, its type and fields, and reference imagesupdate_styleUpdate a custom style: its type and fields, prompt, or reference imagesarchive_stylePut a style away without deleting it: off every list, still usable by its IDrestore_styleBring an archived style back into the lists, and the defaults archiving cleareddelete_styleDelete a custom styleset_style_thumbnailChoose a representative generation for a Style’s thumbnaillist_context_typesList the types a Style can start from (Photography, Illustration, Icons, 3D, Graphic or your own), each with its template and fieldsAssets
10 toolsgenerate_assetMake an image, or up to 20 in one call, or edit one you made, with an optional transparent background; no Style unless you pass one; returns a job per image to check. In Claude, a board in the chat shows each image as soon as it's readyget_generation_statusCheck one generation job, or up to 20 at once; each call waits for the finished imagesget_generation_detailsInspect saved generation settings, and get inputs to make something similarlist_assetsBrowse assets with filtering and pagination; in Claude, the images show in the chatget_assetGet full details for a specific assetdownload_assetGet an image's download link, file name and a command to save itfavorite_assetToggle favorite status on an assetremove_backgroundSave a transparent PNG copy of an image without its background (2 credits)share_assetMake a public link to an image; the prompt stays hiddendelete_assetDelete an assetTeam
6 toolsinvite_memberInvite someone by email, or make a shareable invite link, as a Member or Adminlist_membersList members and pending inviteslist_invitesList pending email invites and invite links, with their linksrevoke_inviteRevoke an email invite or an invite linkupdate_member_roleChange a member's role (owner only)remove_memberRemove a member from a brandHelpers
6 toolslist_modelsDiscover supported models, settings, and credit costssuggest_promptsGet AI-powered prompt suggestions based on a stylegenerate_ideasBrainstorm asset concept ideas for a topicget_asset_generator_usageCheck your Asset Generator plan, credits, and reset dateget_guideStep-by-step guides: a first image, making assets and choosing logos, brand setup, Styles, sets of assets, and job recoverysend_feedbackTell the Blueprint team about a problem or something you wantedAPI Keys
3 toolscreate_api_keyCreate an API key for automation and CI/CD, bound to one brand or your personal library (paid plans). It stops working when the app that created it is disconnectedlist_api_keysList active keys with usage metadatarevoke_api_keyPermanently revoke an API key and every key it createdProject Config
Create an optional .blueprint.json file in your project root as guidance for your coding agent. It does not change server defaults or grant access. Keep credentials out of this file.
{
"outputDir": "./public/assets",
"defaultStyleId": "your-style-id",
"defaultAspectRatio": "1:1",
"defaultImageSize": "2K"
}| Field | Type | Description |
|---|---|---|
| outputDir | string | Where your agent saves downloaded images, such as ./public/assets in a web appdefault: ./assets |
| defaultStyleId | string | Preferred Style for your agent to select |
| defaultAspectRatio | string | Default aspect ratiodefault: 1:1 |
| defaultImageSize | string | Output resolution: 1K, 2K or 4K, on every plan. Larger sizes cost more credits.default: 2K |