import requests
url = "https://eu.app.clarifeye.ai/api/v1/projects/{project_id}/artifacts/"
payload = {
"title": "<string>",
"definition_short": "<string>",
"capture_discipline": "<string>",
"group": "<string>",
"format_description": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: '<string>',
definition_short: '<string>',
capture_discipline: '<string>',
group: '<string>',
format_description: '<string>'
})
};
fetch('https://eu.app.clarifeye.ai/api/v1/projects/{project_id}/artifacts/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request POST \
--url https://eu.app.clarifeye.ai/api/v1/projects/{project_id}/artifacts/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"definition_short": "<string>",
"capture_discipline": "<string>",
"group": "<string>",
"format_description": "<string>"
}
'{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>",
"title": "<string>",
"semantic_type": "brief",
"technical_type": "markdown",
"in_scope": true,
"display_order": 123,
"group": "<string>",
"definition_short": "<string>",
"head_version_number": 123,
"head_updated_at": "2023-11-07T05:31:56Z",
"version_count": 123,
"can_delete": true,
"definition_long": "<string>",
"format_description": "<string>",
"capture_discipline": "<string>",
"selected_version_number": 123,
"payload": "<unknown>"
}{
"error": "Authentication credentials were not provided."
}{
"error": "You do not have permission to perform this action."
}Create a custom artifact
Create a custom artifact (semantic_type is always custom; predefined
artifacts are seeded by the platform). The slug must be unique within the
project. An initial empty version is published automatically. Requires
admin permission.
import requests
url = "https://eu.app.clarifeye.ai/api/v1/projects/{project_id}/artifacts/"
payload = {
"title": "<string>",
"definition_short": "<string>",
"capture_discipline": "<string>",
"group": "<string>",
"format_description": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: '<string>',
definition_short: '<string>',
capture_discipline: '<string>',
group: '<string>',
format_description: '<string>'
})
};
fetch('https://eu.app.clarifeye.ai/api/v1/projects/{project_id}/artifacts/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request POST \
--url https://eu.app.clarifeye.ai/api/v1/projects/{project_id}/artifacts/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"definition_short": "<string>",
"capture_discipline": "<string>",
"group": "<string>",
"format_description": "<string>"
}
'{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>",
"title": "<string>",
"semantic_type": "brief",
"technical_type": "markdown",
"in_scope": true,
"display_order": 123,
"group": "<string>",
"definition_short": "<string>",
"head_version_number": 123,
"head_updated_at": "2023-11-07T05:31:56Z",
"version_count": 123,
"can_delete": true,
"definition_long": "<string>",
"format_description": "<string>",
"capture_discipline": "<string>",
"selected_version_number": 123,
"payload": "<unknown>"
}{
"error": "Authentication credentials were not provided."
}{
"error": "You do not have permission to perform this action."
}Authorizations
Use Authorization: Bearer
Path Parameters
UUID of the project
Body
The slug is always generated server-side by slugifying the title; the created
artifact's slug is returned in the response. A title whose slug is already taken
in the project is rejected with 400 keyed to title — pick a different title.
Storage/editing format of the artifact's payload — string for
markdown and bpmn_xml, object for mental_map, array for
playbook_list and design_template_list.
markdown, mental_map, playbook_list, design_template_list, bpmn_xml 255Purpose of the artifact.
Knowledge capture rules for the artifact.
Optional group label; "Foundation" and "Other" are reserved. The standard section names ("Project Management", …) are allowed and file the artifact alongside the predefined ones.
64How the content should be structured.
Response
Created
What the artifact means in the knowledge store. Predefined types are
seeded by the platform; custom artifacts are user-created.
brief, project_plan, mental_map, general_knowledge, playbooks, library_description, design_templates, custom Storage/editing format of the artifact's payload — string for
markdown and bpmn_xml, object for mental_map, array for
playbook_list and design_template_list.
markdown, mental_map, playbook_list, design_template_list, bpmn_xml Catalog group label; empty for predefined artifacts (their section derives
from semantic_type) and for ungrouped custom ones. "Foundation" and
"Other" are reserved for UI-derived sections and cannot be set; the four
standard section names ("Project Management", …) are NOT reserved — a
custom artifact may use one to file itself alongside the predefined
artifacts.
Custom artifacts only; empty string for predefined types.
Custom artifacts only; empty string for predefined types.
Content of the selected version; shape depends on
technical_type. Null when the artifact has no versions.