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

Pro
5,000 / day
API requests
900 credits a month
Max
20,000 / day
API requests
10,000 credits a month

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/v1 response to an API key carries X-RateLimit-Limit, X-RateLimit-Remaining and X-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_LIMIT and a Retry-After header.

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

StatusMeaning
400Bad 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
401Invalid or missing API key
402Not 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
403Forbidden: 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)
404Resource not found
410An 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
409Conflict, 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
413The uploaded file is over the 4 MB limit. Resize or compress it and retry.
415The 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.
422The 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
429A 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
500Server error
503Usually 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 tools
get_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 update
set_image_presetSet your preset for new images: fast, balanced or best
setup_brandSet up a brand from a website or images: its logo, colors, fonts and style, with free previews
get_brand_setupShow a brand setup's draft and preview images
save_brand_setupSave a confirmed brand setup as a brand and Style
create_brandCreate a new, empty brand
list_brandsList brands you belong to, each with its primary brand and sub-brands
get_brandGet brand details, settings and default Style, member count, what your role allows, and its primary brand and sub-brands
list_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 link
get_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 first
add_brand_assetAdd an official logo, artwork or product image from a link, a saved image, base64 or an upload
update_brand_assetLabel an official logo: its form, background and main logo
create_upload_linkGet a page for files that aren't at a public link, and a single-use upload URL when asked
get_upload_linkList the files received on an upload link, ready to use
save_to_libraryKeep an upload or a public image link in the Library, named and in a folder found or made by name
list_libraryList a Library folder by path: its folders, uploads (with links to download) and made images
create_library_folderMake a Library folder by path, with any folders on the way
move_library_itemsMove images, uploads and folders into a folder, or to the top level
rename_library_itemRename a Library folder or upload
delete_library_itemsDelete images, uploads and folders; a deleted folder's contents move up
update_brand_settingsUpdate default style or prompt template
delete_brandDelete a brand with its images and Styles (owner only)

Styles

9 tools
list_stylesList available generation styles (system + custom), each with its type and sub-brand, and the brand's default marked
create_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 images
update_styleUpdate a custom style: its type and fields, prompt, or reference images
archive_stylePut a style away without deleting it: off every list, still usable by its ID
restore_styleBring an archived style back into the lists, and the defaults archiving cleared
delete_styleDelete a custom style
set_style_thumbnailChoose a representative generation for a Style’s thumbnail
list_context_typesList the types a Style can start from (Photography, Illustration, Icons, 3D, Graphic or your own), each with its template and fields

Assets

10 tools
generate_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 ready
get_generation_statusCheck one generation job, or up to 20 at once; each call waits for the finished images
get_generation_detailsInspect saved generation settings, and get inputs to make something similar
list_assetsBrowse assets with filtering and pagination; in Claude, the images show in the chat
get_assetGet full details for a specific asset
download_assetGet an image's download link, file name and a command to save it
favorite_assetToggle favorite status on an asset
remove_backgroundSave a transparent PNG copy of an image without its background (2 credits)
share_assetMake a public link to an image; the prompt stays hidden
delete_assetDelete an asset

Team

6 tools
invite_memberInvite someone by email, or make a shareable invite link, as a Member or Admin
list_membersList members and pending invites
list_invitesList pending email invites and invite links, with their links
revoke_inviteRevoke an email invite or an invite link
update_member_roleChange a member's role (owner only)
remove_memberRemove a member from a brand

Helpers

6 tools
list_modelsDiscover supported models, settings, and credit costs
suggest_promptsGet AI-powered prompt suggestions based on a style
generate_ideasBrainstorm asset concept ideas for a topic
get_asset_generator_usageCheck your Asset Generator plan, credits, and reset date
get_guideStep-by-step guides: a first image, making assets and choosing logos, brand setup, Styles, sets of assets, and job recovery
send_feedbackTell the Blueprint team about a problem or something you wanted

API Keys

3 tools
create_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 disconnected
list_api_keysList active keys with usage metadata
revoke_api_keyPermanently revoke an API key and every key it created

Project 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"
}
FieldTypeDescription
outputDirstringWhere your agent saves downloaded images, such as ./public/assets in a web appdefault: ./assets
defaultStyleIdstringPreferred Style for your agent to select
defaultAspectRatiostringDefault aspect ratiodefault: 1:1
defaultImageSizestringOutput resolution: 1K, 2K or 4K, on every plan. Larger sizes cost more credits.default: 2K