[{"data":1,"prerenderedAt":404},["ShallowReactive",2],{"help-article-\u002Fhelp\u002Fdata-and-automation\u002Fdeveloper-area":3},{"id":4,"title":5,"body":6,"category":382,"description":383,"extension":384,"keywords":385,"meta":394,"navigation":395,"order":396,"path":397,"published":398,"rawbody":399,"seo":400,"stem":401,"updated":402,"__hash__":403},"help\u002Fhelp\u002Fdata-and-automation\u002Fdeveloper-area.md","Developer area: API keys and Explorer",{"type":7,"value":8,"toc":373},"minimark",[9,28,43,47,50,84,92,95,144,155,159,179,182,188,284,290,305,309,316,324,341,344,353],[10,11,12,13,17,18,21,22,27],"p",{},"Under ",[14,15,16],"strong",{},"Settings"," → ",[14,19,20],{},"Developer"," you find everything for the Bluepic API: your API keys, the Explorer to test requests, and the API reference. Every account can use it, with or without a team. How to create an image URL or an API request for a template is in ",[23,24,26],"a",{"href":25},"\u002Fhelp\u002Fdata-and-automation\u002Fautomation-campaigns","Automate: create images by URL and API",".",[10,29,30,31,34,35,38,39,42],{},"At the top, you switch between the ",[14,32,33],{},"Keys"," and ",[14,36,37],{},"Explorer"," tabs. ",[14,40,41],{},"Reference"," at the top right opens the documentation.",[44,45,33],"h2",{"id":46},"keys",[10,48,49],{},"To create a new key:",[51,52,53,65,76],"ol",{},[54,55,56,60,61,64],"li",{},[57,58,59],"click",{},"Click"," ",[14,62,63],{},"New API key",". A popup opens.",[54,66,67,71,72,75],{},[68,69,70],"type",{},"Type"," a name under ",[14,73,74],{},"Label",", for example the name of your integration.",[54,77,78,60,80,83],{},[57,79,59],{},[14,81,82],{},"Create",". The new key appears in the list.",[10,85,86],{},[87,88],"img",{"alt":89,"src":90,"width":91},"Settings → Developer → Keys with the New API key button and the key list; secrets are hidden.","https:\u002F\u002Fimagedelivery.net\u002FmudX-CmAqIANL8bxoNCToA\u002Fhelp\u002FKB-developer-area-01\u002Fpublic?v=7d1e04e0",1791,[10,93,94],{},"Use a separate key for each integration. Then you can switch one off without breaking the others. The list shows for each key:",[96,97,98,104,110,116,129],"ul",{},[54,99,100,103],{},[14,101,102],{},"Key",": its name, when it was created and when it was last used.",[54,105,106,109],{},[14,107,108],{},"Secret",": the key itself. The icon with the two pages in its row copies it at any time.",[54,111,112,115],{},[14,113,114],{},"Webhook signing secret",": shown under every active key. You only need it to check that a webhook message really came from Bluepic.",[54,117,118,121,122,125,126,27],{},[14,119,120],{},"Status",": ",[14,123,124],{},"active"," or ",[14,127,128],{},"revoked",[54,130,131,135,136,140,141,143],{},[132,133,134],"close",{},"×",": revokes the key after you confirm. From then on, every system that uses it gets a ",[137,138,139],"code",{},"401"," error. The key stays in the list as ",[14,142,128],{},". You can't turn it back on.",[10,145,146,147,150,151,154],{},"Send the key as ",[137,148,149],{},"Authorization: Bearer bp_live_…"," to ",[137,152,153],{},"https:\u002F\u002Fapi.bluepic.io\u002Fv1",". Keep keys on your server or in environment variables, never in public browser code or in a code repository.",[44,156,158],{"id":157},"keys-in-a-team","Keys in a team",[96,160,161,164,167,170,173],{},[54,162,163],{},"A key acts for wherever the person who created it currently is: their team, or their personal account if they have no team. If you leave the team, your keys act for your personal account from then on, no longer for the team.",[54,165,166],{},"Renders are billed to the owner of the template: the team if the team owns the template, otherwise the personal account.",[54,168,169],{},"In a team, the renders of all keys count toward the team's rate limit.",[54,171,172],{},"Team management requests, such as inviting or removing members, only work if you are an owner or admin. Your role is checked on every request. If you lose these rights, the key loses them too.",[54,174,175,176,178],{},"The ",[14,177,33],{}," list only shows the keys you created yourself.",[44,180,37],{"id":181},"explorer",[10,183,184,185,187],{},"In the ",[14,186,37],{}," tab you build requests to the API and send them. When it opens, the render endpoint is selected.",[96,189,190,197,214,232,242,255,261,268],{},[54,191,192,193,196],{},"On the left, the list of endpoints: pick a different endpoint here. ",[14,194,195],{},"Search endpoints"," filters the list.",[54,198,199,202,203,202,206,209,210,213],{},[14,200,201],{},"Path",", ",[14,204,205],{},"Query",[14,207,208],{},"Body",": the fields of the request. Required fields have a ",[137,211,212],{},"*",". The info icon next to a field explains it.",[54,215,216,219,220,223,224,227,228,231],{},[137,217,218],{},"templateId",": when you pick one of your templates, the Explorer shows its canvases under ",[137,221,222],{},"canvas"," and its input fields under ",[137,225,226],{},"data",", filled with the default values. ",[14,229,230],{},"Default canvas"," renders the default canvas.",[54,233,234,235,238,239,27],{},"At the top right, the choice of how the request is sent: with one of your active keys, or with ",[14,236,237],{},"Studio session",", which uses your Studio login. Revoked keys are not offered. A tag next to it shows how many renders you have left this minute, for example ",[14,240,241],{},"87\u002F100 renders this minute",[54,243,244,247,248,252,253,27],{},[14,245,246],{},"Send",": sends a real request. A render uses ",[23,249,251],{"href":250},"\u002Fhelp\u002Faccount-management\u002Fcredits","credits"," and counts toward the rate limit, whether you use a key or ",[14,254,237],{},[54,256,257,260],{},[14,258,259],{},"Debug (free)",": shows the render request as JSON, the way the API would process it. Nothing is rendered and nothing is billed. The request does count toward the rate limit, though.",[54,262,263,264,267],{},"On the right, the response with its status, duration and size: an image as a preview, a video as a player with its progress messages, other files with a ",[14,265,266],{},"Download"," button, JSON as formatted text. An error shows its code and message. If you used input names the template doesn't know, you see the correct ones.",[54,269,270,202,273,202,276,279,280,283],{},[14,271,272],{},"cURL",[14,274,275],{},"fetch (JS)",[14,277,278],{},"Python",": the same request as code, below the request. Your key is never in it. The code reads it from the ",[137,281,282],{},"BLUEPIC_API_KEY"," environment variable.",[10,285,286],{},[87,287],{"alt":288,"src":289},"Explorer: endpoint list on the left, request fields in the middle, the rendered image on the right. Top right: renders left this minute and Studio session.","https:\u002F\u002Fimagedelivery.net\u002FmudX-CmAqIANL8bxoNCToA\u002Fhelp\u002FKB-developer-area-02\u002Fpublic",[10,291,292,293,296,297,202,301,304],{},"From ",[14,294,295],{},"Automate"," in the ",[298,299,300],"place",{},"template editor",[14,302,303],{},"Open in Explorer"," opens the Explorer in a new browser tab, with the template already selected.",[44,306,308],{"id":307},"rate-limit","Rate limit",[10,310,311,312,315],{},"Render requests to ",[137,313,314],{},"POST \u002Fv1\u002Frenders"," are limited per minute:",[96,317,318,321],{},[54,319,320],{},"100 per minute for a team,",[54,322,323],{},"10 per minute for an account without a team.",[10,325,326,327,330,331,202,334,34,337,340],{},"The limit applies to the whole team, not to each key. An extra key doesn't raise it. When you reach the limit, the API answers with ",[137,328,329],{},"429"," and tells you when to try again. Every render response has the headers ",[137,332,333],{},"X-RateLimit-Limit",[137,335,336],{},"X-RateLimit-Remaining",[137,338,339],{},"X-RateLimit-Reset",". Your integration can use them to slow down before it hits the limit.",[44,342,41],{"id":343},"reference",[10,345,346,348,349,352],{},[14,347,41],{}," at the top right opens the full API documentation in a new tab at ",[137,350,351],{},"https:\u002F\u002Fapi.bluepic.io\u002Fv1\u002Fdocs",". It lists every endpoint with its parameters and responses. You don't need to log in. The Explorer uses the same API description, so new endpoints show up there too.",[354,355,356],"related",{},[96,357,358,362,367],{},[54,359,360],{},[23,361,26],{"href":25},[54,363,364],{},[23,365,366],{"href":250},"Credits: what exports cost",[54,368,369],{},[23,370,372],{"href":371},"\u002Fhelp\u002Faccount-management\u002Fteams","Manage your team: invite team members, assign roles, remove members",{"title":374,"searchDepth":375,"depth":375,"links":376},"",2,[377,378,379,380,381],{"id":46,"depth":375,"text":33},{"id":157,"depth":375,"text":158},{"id":181,"depth":375,"text":37},{"id":307,"depth":375,"text":308},{"id":343,"depth":375,"text":41},"data-and-automation","What the developer area offers: create and revoke API keys, keys in a team, test requests in the Explorer, rate limits and the API reference.","md",[20,386,387,388,63,37,41,389,390,391,114,237,259,392,393],"API","API Keys","API key","Bearer","rate limit","curl","Entwickler","Schlüssel",{},true,40,"\u002Fhelp\u002Fdata-and-automation\u002Fdeveloper-area","2026-10-13","---\ntitle: \"Developer area: API keys and Explorer\"\ndescription: \"What the developer area offers: create and revoke API keys, keys in a team, test requests in the Explorer, rate limits and the API reference.\"\ncategory: data-and-automation\norder: 40\nkeywords: [\"Developer\", \"API\", \"API Keys\", \"API key\", \"New API key\", \"Explorer\", \"Reference\", \"Bearer\", \"rate limit\", \"curl\", \"Webhook signing secret\", \"Studio session\", \"Debug (free)\", \"Entwickler\", \"Schlüssel\"]\n---\n\nUnder **Settings** → **Developer** you find everything for the Bluepic API: your API keys, the Explorer to test requests, and the API reference. Every account can use it, with or without a team. How to create an image URL or an API request for a template is in [Automate: create images by URL and API](\u002Fhelp\u002Fdata-and-automation\u002Fautomation-campaigns).\n\nAt the top, you switch between the **Keys** and **Explorer** tabs. **Reference** at the top right opens the documentation.\n\n## Keys\n\nTo create a new key:\n\n1. :click[Click] **New API key**. A popup opens.\n2. :type[Type] a name under **Label**, for example the name of your integration.\n3. :click[Click] **Create**. The new key appears in the list.\n\n![Settings → Developer → Keys with the New API key button and the key list; secrets are hidden.](https:\u002F\u002Fimagedelivery.net\u002FmudX-CmAqIANL8bxoNCToA\u002Fhelp\u002FKB-developer-area-01\u002Fpublic?v=7d1e04e0){width=\"1791\"}\n\nUse a separate key for each integration. Then you can switch one off without breaking the others. The list shows for each key:\n\n- **Key**: its name, when it was created and when it was last used.\n- **Secret**: the key itself. The icon with the two pages in its row copies it at any time.\n- **Webhook signing secret**: shown under every active key. You only need it to check that a webhook message really came from Bluepic.\n- **Status**: **active** or **revoked**.\n- :close[×]: revokes the key after you confirm. From then on, every system that uses it gets a `401` error. The key stays in the list as **revoked**. You can't turn it back on.\n\nSend the key as `Authorization: Bearer bp_live_…` to `https:\u002F\u002Fapi.bluepic.io\u002Fv1`. Keep keys on your server or in environment variables, never in public browser code or in a code repository.\n\n## Keys in a team\n\n- A key acts for wherever the person who created it currently is: their team, or their personal account if they have no team. If you leave the team, your keys act for your personal account from then on, no longer for the team.\n- Renders are billed to the owner of the template: the team if the team owns the template, otherwise the personal account.\n- In a team, the renders of all keys count toward the team's rate limit.\n- Team management requests, such as inviting or removing members, only work if you are an owner or admin. Your role is checked on every request. If you lose these rights, the key loses them too.\n- The **Keys** list only shows the keys you created yourself.\n\n## Explorer\n\nIn the **Explorer** tab you build requests to the API and send them. When it opens, the render endpoint is selected.\n\n- On the left, the list of endpoints: pick a different endpoint here. **Search endpoints** filters the list.\n- **Path**, **Query**, **Body**: the fields of the request. Required fields have a `*`. The info icon next to a field explains it.\n- `templateId`: when you pick one of your templates, the Explorer shows its canvases under `canvas` and its input fields under `data`, filled with the default values. **Default canvas** renders the default canvas.\n- At the top right, the choice of how the request is sent: with one of your active keys, or with **Studio session**, which uses your Studio login. Revoked keys are not offered. A tag next to it shows how many renders you have left this minute, for example **87\u002F100 renders this minute**.\n- **Send**: sends a real request. A render uses [credits](\u002Fhelp\u002Faccount-management\u002Fcredits) and counts toward the rate limit, whether you use a key or **Studio session**.\n- **Debug (free)**: shows the render request as JSON, the way the API would process it. Nothing is rendered and nothing is billed. The request does count toward the rate limit, though.\n- On the right, the response with its status, duration and size: an image as a preview, a video as a player with its progress messages, other files with a **Download** button, JSON as formatted text. An error shows its code and message. If you used input names the template doesn't know, you see the correct ones.\n- **cURL**, **fetch (JS)**, **Python**: the same request as code, below the request. Your key is never in it. The code reads it from the `BLUEPIC_API_KEY` environment variable.\n\n![Explorer: endpoint list on the left, request fields in the middle, the rendered image on the right. Top right: renders left this minute and Studio session.](https:\u002F\u002Fimagedelivery.net\u002FmudX-CmAqIANL8bxoNCToA\u002Fhelp\u002FKB-developer-area-02\u002Fpublic)\n\nFrom **Automate** in the :place[template editor], **Open in Explorer** opens the Explorer in a new browser tab, with the template already selected.\n\n## Rate limit\n\nRender requests to `POST \u002Fv1\u002Frenders` are limited per minute:\n\n- 100 per minute for a team,\n- 10 per minute for an account without a team.\n\nThe limit applies to the whole team, not to each key. An extra key doesn't raise it. When you reach the limit, the API answers with `429` and tells you when to try again. Every render response has the headers `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset`. Your integration can use them to slow down before it hits the limit.\n\n## Reference\n\n**Reference** at the top right opens the full API documentation in a new tab at `https:\u002F\u002Fapi.bluepic.io\u002Fv1\u002Fdocs`. It lists every endpoint with its parameters and responses. You don't need to log in. The Explorer uses the same API description, so new endpoints show up there too.\n\n::related\n- [Automate: create images by URL and API](\u002Fhelp\u002Fdata-and-automation\u002Fautomation-campaigns)\n- [Credits: what exports cost](\u002Fhelp\u002Faccount-management\u002Fcredits)\n- [Manage your team: invite team members, assign roles, remove members](\u002Fhelp\u002Faccount-management\u002Fteams)\n::\n",{"title":5,"description":383},"help\u002Fdata-and-automation\u002Fdeveloper-area","2026-10-21","Pc726f8mYrz3tTHT2pZPJXBBtLiNIhU3VexWk8-68sE",1792680562083]