Overview
POST
/project/projects/{id}/artifactsprojectLink an ingested / produced artifact (idempotent on direction + target)
Create a record in artifacts.
Auth: bearerAuth — calls run as the authenticated user.
Parameters
- idpathstring
Request body
application/json · optional
- direction"ingested" | "produced"
- targetKindstring
the target's registry, e.g. 'content.markdown'
- targetIdstring
Example
{
"direction": "ingested",
"targetKind": "string",
"targetId": "string"
}Responses
201
Linked artifact
- idstring
- ecosystemIdstring
- projectIdstring
- direction"ingested" | "produced"
whether the project INGESTED or PRODUCED this target
- targetKindstring
the target's registry, e.g. 'content.markdown'
- targetIdstring
the opaque target id
- deletedAtoptionalstring?
set when un-linked (soft delete); null for a live link
- createdAtstring
- updatedAtstring
Example
{
"id": "string",
"ecosystemId": "string",
"projectId": "string",
"direction": "ingested",
"targetKind": "string",
"targetId": "string",
"deletedAt": "string",
"createdAt": "string",
"updatedAt": "string"
}400
Error
- erroroptionalobject
Example
{
"error": {
"message": "string",
"code": "string"
}
}401
Error
- erroroptionalobject
Example
{
"error": {
"message": "string",
"code": "string"
}
}404
Error
- erroroptionalobject
Example
{
"error": {
"message": "string",
"code": "string"
}
}Code examples
cURL
curl -X POST "https://api.agenticdeveloperhub.com/project/projects/{id}/artifacts" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"direction": "ingested",
"targetKind": "string",
"targetId": "string"
}'JavaScript
const res = await fetch("https://api.agenticdeveloperhub.com/project/projects/{id}/artifacts", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
body: "{\n \"direction\": \"ingested\",\n \"targetKind\": \"string\",\n \"targetId\": \"string\"\n}",
});
const data = await res.json();