API Reference
Deployment
Endpoints for API deployments and deployment-level sharing settings.
Related In Learn
Deployments Overview
Learn about the different ways to deploy and share your agents with the world.
Deployment endpoints manage API deployments and deployment-level sharing settings.
Endpoints
GET /studio/deployment/list
List deployments in the current workspace.
- Full URL:
https://api.pickaxe.co/v1/studio/deployment/list
Request Fields
This endpoint does not define request body fields.
Examples
curl -X GET https://api.pickaxe.co/v1/studio/deployment/list \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN"Response Shape
{
"success": true,
"data": [
{
"deploymentId": "deployment-6cdc2c26-2a9b-4f7d-8126-fd58913ab5a4",
"name": "billing-bot (Direct Link)",
"type": "direct-link",
"visibility": "public",
"formId": "billing-bot",
"pickaxeName": "billing-bot",
"path": "deployment-6cdc2c26-2a9b-4f7d-8126-fd58913ab5a4",
"headerScript": "<script>window.analyticsReady = true;</script>",
"footerScript": "<script src=\"https://cdn.example.com/widget.js\"></script>",
"createdAt": "2026-04-15T00:41:00.000000",
"updatedAt": "2026-04-15T00:52:00.000000"
}
]
}
POST /studio/deployment/create
Create a new public deployment for an existing Pickaxe in the caller's workspace.
- Full URL:
https://api.pickaxe.co/v1/studio/deployment/create
Request Fields
formId(string, required): The Pickaxe ID to deploy. You can also send this asformidorpickaxeId.deploymentType(string, required): The deployment type to create. Accepted canonical types areembed-script-inline,embed-iframe-inline,embed-script-fab,embed-script-popup, anddirect-link.deploymentId(string, optional): Provide your own deployment ID instead of letting Pickaxe generate one.headerScript(string, optional): Custom HTML or JavaScript injected before the embed or direct-link body. Supported only for embed and direct-link deployments.footerScript(string, optional): Custom HTML or JavaScript injected after the embed or direct-link body. Supported only for embed and direct-link deployments.
Type Aliases
For convenience, deploymentType also accepts these aliases:
inline->embed-script-inlineiframe->embed-iframe-inlinefab->embed-script-fabpopup->embed-script-popupdirect-link->direct-link
Notes
headerScriptandfooterScriptare stored directly on the deployment.- Embed deployments automatically include default dimensions in the saved deployment document.
headerScriptandfooterScriptare rejected for unsupported deployment types.
Examples
curl -X POST https://api.pickaxe.co/v1/studio/deployment/create \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"formId": "billing-bot",
"deploymentType": "embed-script-inline",
"headerScript": "<script>window.billingBotHeader = true;</script>",
"footerScript": "<script src=\"https://cdn.example.com/billing-bot-footer.js\"></script>"
}'Response Shape
{
"success": true,
"data": {
"deploymentId": "deployment-4d3e4762-d1b7-4a78-b2b3-0d94047bafab",
"name": "billing-bot (Inline Embed)",
"type": "embed-script-inline",
"visibility": "public",
"formId": "billing-bot",
"path": "",
"headerScript": "<script>window.billingBotHeader = true;</script>",
"footerScript": "<script src=\"https://cdn.example.com/billing-bot-footer.js\"></script>",
"dimensions": {
"width": {
"value": 100,
"unit": "%"
},
"height": {
"value": 500,
"unit": "px"
},
"minHeight": 500,
"maxWidth": 700,
"maxHeight": 500
},
"createdAt": "2026-04-15T00:41:00.000000",
"updatedAt": "2026-04-15T00:41:00.000000"
}
}
POST /studio/deployment/update
Update the custom header and footer injection code for an existing deployment.
- Full URL:
https://api.pickaxe.co/v1/studio/deployment/update
Request Fields
deploymentId(string, required): The deployment to update.headerScript(string | null, optional): Replace the deployment header script. Sendnullto clear it.footerScript(string | null, optional): Replace the deployment footer script. Sendnullto clear it.
Notes
- You must send at least one of
headerScriptorfooterScript. - This endpoint only supports embed deployments and direct-link deployments.
- Whitespace-only script values are treated as empty and stored as
null.
Examples
curl -X POST https://api.pickaxe.co/v1/studio/deployment/update \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"deploymentId": "deployment-4d3e4762-d1b7-4a78-b2b3-0d94047bafab",
"headerScript": "<script>window.billingBotHeader = \"v2\";</script>",
"footerScript": null
}'Response Shape
{
"success": true,
"data": {
"deploymentId": "deployment-4d3e4762-d1b7-4a78-b2b3-0d94047bafab",
"name": "billing-bot (Inline Embed)",
"type": "embed-script-inline",
"visibility": "public",
"formId": "billing-bot",
"path": "",
"headerScript": "<script>window.billingBotHeader = \"v2\";</script>",
"footerScript": null,
"dimensions": {
"width": {
"value": 100,
"unit": "%"
},
"height": {
"value": 500,
"unit": "px"
},
"minHeight": 500,
"maxWidth": 700,
"maxHeight": 500
},
"createdAt": "2026-04-15T00:41:00.000000",
"updatedAt": "2026-04-15T00:52:00.000000"
}
}
GET /studio/deployment/{deploymentId}/rendered-html
Render an embed deployment in a headless browser and return the resulting DOM.
- Full URL:
https://api.pickaxe.co/v1/studio/deployment/{deploymentId}/rendered-html
Request Fields
deploymentId(string, required): The deployment ID in the path. Only embed deployments can be rendered.timeoutMs(number, optional): Maximum render time in milliseconds. Defaults to20000.viewportWidth(number, optional): Browser viewport width used for rendering. Defaults to1280.viewportHeight(number, optional): Browser viewport height used for rendering. Defaults to900.includeGeometry(boolean, optional): Include element bounding boxes and computed layout metadata. Defaults totrue.
Notes
- Only embed deployments can be rendered.
- Inline embed types return one
preOpenstate. - Multi-state embed types return both
preOpenandpostOpenstates when possible. This includes FAB, pop-up, and chat-input deployments. postOpenis captured after the renderer clicks the visible launch control.- The response includes the full document HTML, the deployment root HTML, iframe/frame HTML, browser console messages, request failures, and optional geometry data.
Examples
curl -X GET "https://api.pickaxe.co/v1/studio/deployment/deployment-d0fbdda9-6d3e-4865-b17d-da4d80da9025/rendered-html?includeGeometry=true&viewportWidth=1280&viewportHeight=900" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN"Response Shape
{
"success": true,
"data": {
"deploymentId": "deployment-d0fbdda9-6d3e-4865-b17d-da4d80da9025",
"type": "embed-script-fab",
"html": "<html>...</html>",
"deploymentHtml": "<div id=\"deployment-d0fbdda9-6d3e-4865-b17d-da4d80da9025\" class=\"pickaxe-embed\">...</div>",
"states": [
{
"name": "preOpen",
"html": "<html>...</html>",
"deploymentHtml": "<div id=\"deployment-d0fbdda9-6d3e-4865-b17d-da4d80da9025\">...</div>",
"snapshot": {},
"frames": []
},
{
"name": "postOpen",
"html": "<html>...</html>",
"deploymentHtml": "<div id=\"deployment-d0fbdda9-6d3e-4865-b17d-da4d80da9025\">...</div>",
"snapshot": {},
"frames": []
}
],
"consoleMessages": [],
"requestFailures": [],
"pageErrors": []
}
}
CLI Workflow
If you are using the Pickaxe CLI, the same deployment functionality is available without hand-writing these requests.
Create a deployment with injected scripts
pickaxe deploy create \
--key website \
--header-script-file embeds/header.html \
--footer-script-file embeds/footer.html
Update an existing deployment's injected scripts
pickaxe deploy update \
--key website \
--header-script-file embeds/header.html \
--footer-script-file embeds/footer.html
Render the final local embed snippet
pickaxe deploy snippet --key website
Manifest Example
deployments:
- key: website
type: embed-script-inline
headerScriptFile: embeds/header.html
footerScriptFile: embeds/footer.html
