Operations
Get complete Flow blueprint
Read one visible Flow’s latest editable configuration and expanded question/template design. Sensitive automation tokens and protected automation settings are excluded.
Use when: Use only before flows.draft.revise so the latest revision token and complete supported design can be preserved. Returns: the editable Flow metadata, expanded design, revision token, and indicators for settings that must be managed separately.
POST
https://api.join.tl
/
api
/
v1
/
operations
/
flows.blueprint.get
Get complete Flow blueprint
curl --request POST \
--url https://api.join.tl/api/v1/operations/flows.blueprint.get \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"flowId": "flowid_example_01"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({flowId: 'flowid_example_01'})
};
fetch('https://api.join.tl/api/v1/operations/flows.blueprint.get', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.join.tl/api/v1/operations/flows.blueprint.get"
payload = { "flowId": "flowid_example_01" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"data": {
"design": {},
"editableDesign": {},
"flow": {},
"revision": "2026-01-15T10:30:00.000Z",
"safety": {}
},
"requestId": "request_example_01"
}{
"error": {
"code": "invalid-external-operation-input",
"message": "The operation input is invalid."
},
"requestId": "request_example_400"
}{
"error": {
"code": "not-authenticated",
"message": "Authentication is required."
},
"requestId": "request_example_401"
}{
"error": {
"code": "not-authorized",
"message": "You are not allowed to perform this action."
},
"requestId": "request_example_403"
}{
"error": {
"code": "not-found",
"message": "The requested record was not found."
},
"requestId": "request_example_404"
}{
"error": {
"code": "external-action-conflict",
"message": "The action conflicts with current state."
},
"requestId": "request_example_409"
}{
"error": {
"code": "request-too-large",
"message": "The request body is too large."
},
"requestId": "request_example_413"
}{
"error": {
"code": "too-many-requests",
"message": "Too many requests."
},
"requestId": "request_example_429"
}{
"error": {
"code": "internal-error",
"message": "The request could not be completed."
},
"requestId": "request_example_500"
}{
"error": {
"code": "temporarily-unavailable",
"message": "The service is temporarily unavailable."
},
"requestId": "request_example_503"
}Authorizations
JointlOAuthJointlApiKey
OAuth access token issued for the REST resource.
Body
application/json
Required string length:
1 - 128Pattern:
^[A-Za-z0-9_-]+$⌘I
Get complete Flow blueprint
curl --request POST \
--url https://api.join.tl/api/v1/operations/flows.blueprint.get \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"flowId": "flowid_example_01"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({flowId: 'flowid_example_01'})
};
fetch('https://api.join.tl/api/v1/operations/flows.blueprint.get', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.join.tl/api/v1/operations/flows.blueprint.get"
payload = { "flowId": "flowid_example_01" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"data": {
"design": {},
"editableDesign": {},
"flow": {},
"revision": "2026-01-15T10:30:00.000Z",
"safety": {}
},
"requestId": "request_example_01"
}{
"error": {
"code": "invalid-external-operation-input",
"message": "The operation input is invalid."
},
"requestId": "request_example_400"
}{
"error": {
"code": "not-authenticated",
"message": "Authentication is required."
},
"requestId": "request_example_401"
}{
"error": {
"code": "not-authorized",
"message": "You are not allowed to perform this action."
},
"requestId": "request_example_403"
}{
"error": {
"code": "not-found",
"message": "The requested record was not found."
},
"requestId": "request_example_404"
}{
"error": {
"code": "external-action-conflict",
"message": "The action conflicts with current state."
},
"requestId": "request_example_409"
}{
"error": {
"code": "request-too-large",
"message": "The request body is too large."
},
"requestId": "request_example_413"
}{
"error": {
"code": "too-many-requests",
"message": "Too many requests."
},
"requestId": "request_example_429"
}{
"error": {
"code": "internal-error",
"message": "The request could not be completed."
},
"requestId": "request_example_500"
}{
"error": {
"code": "temporarily-unavailable",
"message": "The service is temporarily unavailable."
},
"requestId": "request_example_503"
}