Blueprints
Authorization
ApiKeyAuth External API key header (format: sofa-ext-). Authorization: Bearer is also accepted.
In: header
Response Body
application/json
application/json
curl -X GET "https://example.com/v2/external-api/blueprints/categories"{ "items": [ { "object": "blueprint_category", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "locked": true, "is_feature_blueprints": true, "count": 0 } ]}Return blueprints in the API key project scope.
Authorization
ApiKeyAuth External API key header (format: sofa-ext-). Authorization: Bearer is also accepted.
In: header
Query Parameters
Optional case-insensitive title filter.
Optional feature ID to filter blueprints.
Optional category name to filter blueprints (e.g. 'Foundation', 'System Diagram').
1 <= value11 <= value <= 10020Response Body
application/json
application/json
curl -X GET "https://example.com/v2/external-api/blueprints"{ "items": [ { "object": "blueprint", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6", "title": "string", "category_name": "string", "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef", "children": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6", "title": "string" } ], "feature_id": "ba6c7b2c-38fc-4a78-a187-51c7bbbd5c50", "blueprint_node_id": "9802f9cc-5398-4b40-b15f-b36689d482f6", "updated_at": "2019-08-24T14:15:22Z" } ], "total": 0, "page": 0, "page_size": 0, "total_pages": 0}Authorization
ApiKeyAuth External API key header (format: sofa-ext-). Authorization: Bearer is also accepted.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Create a custom-category blueprint.
Response Body
application/json
application/json
curl -X POST "https://example.com/v2/external-api/blueprints" \ -H "Content-Type: application/json" \ -d '{ "title": "string" }'{ "data": { "object": "blueprint", "connectedContext": [ { "resourceType": "artifact", "resourceId": "026d60bb-63a8-407e-bf67-01dcfc6022e6" } ], "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6", "version_id": "9e94c502-ca41-4342-a7f7-af96b444512c", "version_number": 0, "title": "string", "category_name": "string", "markdown_content": "string", "updated_at": "2019-08-24T14:15:22Z", "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef", "children": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6", "title": "string" } ], "feature_id": "ba6c7b2c-38fc-4a78-a187-51c7bbbd5c50", "blueprint_node_id": "9802f9cc-5398-4b40-b15f-b36689d482f6" }}Regex search blueprint titles and markdown content.
Authorization
ApiKeyAuth External API key header (format: sofa-ext-). Authorization: Bearer is also accepted.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Blueprint search request.
Response Body
application/json
application/json
curl -X POST "https://example.com/v2/external-api/blueprints/search" \ -H "Content-Type: application/json" \ -d '{ "query": "string" }'{ "items": [ { "object": "blueprint", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6", "title": "string", "category_name": "string", "matches": [ { "line_number": 0, "line": "string", "before_context": [ "string" ], "after_context": [ "string" ] } ] } ]}Return the latest blueprint content for one blueprint in the scoped project.
Authorization
ApiKeyAuth External API key header (format: sofa-ext-). Authorization: Bearer is also accepted.
In: header
Path Parameters
uuidQuery Parameters
Response Body
application/json
application/json
curl -X GET "https://example.com/v2/external-api/blueprints/497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "data": { "object": "blueprint", "connectedContext": [ { "resourceType": "artifact", "resourceId": "026d60bb-63a8-407e-bf67-01dcfc6022e6" } ], "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6", "version_id": "9e94c502-ca41-4342-a7f7-af96b444512c", "version_number": 0, "title": "string", "category_name": "string", "markdown_content": "string", "updated_at": "2019-08-24T14:15:22Z", "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef", "children": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6", "title": "string" } ], "feature_id": "ba6c7b2c-38fc-4a78-a187-51c7bbbd5c50", "blueprint_node_id": "9802f9cc-5398-4b40-b15f-b36689d482f6" }}Persist complete markdown content for a blueprint in the API key project scope. Markdown is converted server-side to ProseMirror; invalid markdown returns a 400 error.
Authorization
ApiKeyAuth External API key header (format: sofa-ext-). Authorization: Bearer is also accepted.
In: header
Path Parameters
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Update blueprint markdown content.
Response Body
application/json
application/json
curl -X PATCH "https://example.com/v2/external-api/blueprints/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{ "markdown_content": "string" }'{ "data": { "object": "blueprint", "connectedContext": [ { "resourceType": "artifact", "resourceId": "026d60bb-63a8-407e-bf67-01dcfc6022e6" } ], "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6", "version_id": "9e94c502-ca41-4342-a7f7-af96b444512c", "version_number": 0, "title": "string", "category_name": "string", "markdown_content": "string", "updated_at": "2019-08-24T14:15:22Z", "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef", "children": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6", "title": "string" } ], "feature_id": "ba6c7b2c-38fc-4a78-a187-51c7bbbd5c50", "blueprint_node_id": "9802f9cc-5398-4b40-b15f-b36689d482f6" }}Permanently delete a blueprint document. Feature blueprints cannot be deleted via this endpoint; delete their parent feature via the requirements API instead.
Authorization
ApiKeyAuth External API key header (format: sofa-ext-). Authorization: Bearer is also accepted.
In: header
Path Parameters
uuidResponse Body
application/json
curl -X DELETE "https://example.com/v2/external-api/blueprints/497f6eca-6276-4993-bfeb-53cbbbba6f08"Authorization
ApiKeyAuth External API key header (format: sofa-ext-). Authorization: Bearer is also accepted.
In: header
Path Parameters
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Rename a blueprint document.
Response Body
application/json
application/json
curl -X PATCH "https://example.com/v2/external-api/blueprints/497f6eca-6276-4993-bfeb-53cbbbba6f08/rename" \ -H "Content-Type: application/json" \ -d '{ "title": "string" }'{ "data": { "object": "blueprint", "connectedContext": [ { "resourceType": "artifact", "resourceId": "026d60bb-63a8-407e-bf67-01dcfc6022e6" } ], "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6", "version_id": "9e94c502-ca41-4342-a7f7-af96b444512c", "version_number": 0, "title": "string", "category_name": "string", "markdown_content": "string", "updated_at": "2019-08-24T14:15:22Z", "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef", "children": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6", "title": "string" } ], "feature_id": "ba6c7b2c-38fc-4a78-a187-51c7bbbd5c50", "blueprint_node_id": "9802f9cc-5398-4b40-b15f-b36689d482f6" }}Move a blueprint to a new parent, position, or category. When parent_id is provided the destination category is inferred from the parent. When moving to root level in a different category, supply category_id explicitly.
Authorization
ApiKeyAuth External API key header (format: sofa-ext-). Authorization: Bearer is also accepted.
In: header
Path Parameters
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Move a blueprint document within the blueprint tree.
parent_id is the document ID of the new parent, or null to move to root level.
category_id is only required when moving to root level in a different category;
it is ignored when parent_id is supplied (category is inferred from the parent).
Response Body
application/json
application/json
curl -X PUT "https://example.com/v2/external-api/blueprints/497f6eca-6276-4993-bfeb-53cbbbba6f08/move" \ -H "Content-Type: application/json" \ -d '{}'{ "data": { "object": "blueprint", "connectedContext": [ { "resourceType": "artifact", "resourceId": "026d60bb-63a8-407e-bf67-01dcfc6022e6" } ], "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6", "version_id": "9e94c502-ca41-4342-a7f7-af96b444512c", "version_number": 0, "title": "string", "category_name": "string", "markdown_content": "string", "updated_at": "2019-08-24T14:15:22Z", "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef", "children": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6", "title": "string" } ], "feature_id": "ba6c7b2c-38fc-4a78-a187-51c7bbbd5c50", "blueprint_node_id": "9802f9cc-5398-4b40-b15f-b36689d482f6" }}Apply an oldText/newText suggestion to the current blueprint document through the collaborative editor, creating tracked insertion/deletion marks.
Authorization
ApiKeyAuth External API key header (format: sofa-ext-). Authorization: Bearer is also accepted.
In: header
Path Parameters
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Tracked suggestion apply request.
Response Body
application/json
application/json
curl -X POST "https://example.com/v2/external-api/blueprints/497f6eca-6276-4993-bfeb-53cbbbba6f08/apply_suggestion" \ -H "Content-Type: application/json" \ -d '{ "new_text": "string" }'{ "data": { "status": "string", "change_ids": [ "string" ] }}Return version history for one blueprint in the scoped project.
Authorization
ApiKeyAuth External API key header (format: sofa-ext-). Authorization: Bearer is also accepted.
In: header
Path Parameters
uuidResponse Body
application/json
application/json
curl -X GET "https://example.com/v2/external-api/blueprints/497f6eca-6276-4993-bfeb-53cbbbba6f08/versions"{ "items": [ { "object": "version", "version_id": "9e94c502-ca41-4342-a7f7-af96b444512c", "version_number": 0, "created_at": "2019-08-24T14:15:22Z", "attribution": { "origin_type": "user", "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5", "user_email": "string", "user_first_name": "string", "user_last_name": "string", "origin_name": "string" }, "version_name": "string" } ], "total_count": 0}Return one specific blueprint version in the scoped project.
Authorization
ApiKeyAuth External API key header (format: sofa-ext-). Authorization: Bearer is also accepted.
In: header
Path Parameters
uuiduuidResponse Body
application/json
application/json
curl -X GET "https://example.com/v2/external-api/blueprints/497f6eca-6276-4993-bfeb-53cbbbba6f08/versions/497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "data": { "object": "blueprint", "connectedContext": [ { "resourceType": "artifact", "resourceId": "026d60bb-63a8-407e-bf67-01dcfc6022e6" } ], "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6", "version_id": "9e94c502-ca41-4342-a7f7-af96b444512c", "version_number": 0, "title": "string", "category_name": "string", "markdown_content": "string", "updated_at": "2019-08-24T14:15:22Z", "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef", "children": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6", "title": "string" } ], "feature_id": "ba6c7b2c-38fc-4a78-a187-51c7bbbd5c50", "blueprint_node_id": "9802f9cc-5398-4b40-b15f-b36689d482f6" }}Return simplified thread-first comments for one blueprint.
Authorization
ApiKeyAuth External API key header (format: sofa-ext-). Authorization: Bearer is also accepted.
In: header
Path Parameters
uuidResponse Body
application/json
application/json
curl -X GET "https://example.com/v2/external-api/blueprints/497f6eca-6276-4993-bfeb-53cbbbba6f08/comments"{ "items": [ { "object": "document_comment_thread", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "thread_id": "1de43264-67cb-48af-89f9-e865c375bb84", "messages": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "message": "string", "created_at": "2019-08-24T14:15:22Z", "created_by_name": "string" } ], "is_resolved": true, "is_flagged": true } ]}Create a new comment thread on one blueprint.
Authorization
ApiKeyAuth External API key header (format: sofa-ext-). Authorization: Bearer is also accepted.
In: header
Path Parameters
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Simplified external API comment create request.
Response Body
application/json
application/json
curl -X POST "https://example.com/v2/external-api/blueprints/497f6eca-6276-4993-bfeb-53cbbbba6f08/comments" \ -H "Content-Type: application/json" \ -d '{ "message": "string" }'{ "data": { "object": "document_comment_thread", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "thread_id": "1de43264-67cb-48af-89f9-e865c375bb84", "messages": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "message": "string", "created_at": "2019-08-24T14:15:22Z", "created_by_name": "string" } ], "is_resolved": true, "is_flagged": true }}Authorization
ApiKeyAuth External API key header (format: sofa-ext-). Authorization: Bearer is also accepted.
In: header
Path Parameters
uuiduuidResponse Body
application/json
application/json
curl -X GET "https://example.com/v2/external-api/blueprints/497f6eca-6276-4993-bfeb-53cbbbba6f08/comments/497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "data": { "object": "document_comment_thread", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "thread_id": "1de43264-67cb-48af-89f9-e865c375bb84", "messages": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "message": "string", "created_at": "2019-08-24T14:15:22Z", "created_by_name": "string" } ], "is_resolved": true, "is_flagged": true }}