Kate Docs
API Reference

Artifacts API

API endpoints for creating, managing, publishing, and querying knowledge artifacts.

Create Artifact

POST /artifacts

Create a new knowledge artifact.

Request Body:

{
  "title": "E-commerce Pricing Framework",
  "domain": "e-commerce",
  "description": "Pricing strategies for online retail",
  "creation_type": "kh_upload",
  "visibility": "paid",
  "price_tokens": 500,
  "per_query_tokens": 15,
  "agent_id": null
}
FieldTypeRequiredDescription
titlestringYesArtifact title (max 255 chars)
domainstringYesDomain classification
descriptionstringNoFull description
creation_typestringNokh_agent or kh_upload
visibilitystringNoprivate, team, listed, or paid
price_tokensintegerNoSubscription cost (default: 0)
per_query_tokensintegerNoPer-query cost (default: 0)
agent_idstringNoAssociated agent UUID

Response: 200 - ArtifactResponse


List Artifacts

GET /artifacts

List your artifacts with optional filters.

Query Parameters:

ParamTypeDefaultDescription
domainstring-Filter by domain
statusstring-Filter by status
visibilitystring-Filter by visibility
limitinteger20Max results
offsetinteger0Pagination offset

Response: 200 - ArtifactResponse[]


Get Artifact

GET /artifacts/{artifact_id}

Response: 200 - ArtifactResponse


Update Artifact

PATCH /artifacts/{artifact_id}

Request Body: Any subset of title, domain, description, visibility, price_tokens, per_query_tokens.

Response: 200 - ArtifactResponse


Delete Artifact

DELETE /artifacts/{artifact_id}

Soft-deletes the artifact.

Response: 200 - {"detail": "Artifact deleted"}


Upload Artifact from File

POST /artifacts/upload

Upload a document as a new artifact. Uses multipart/form-data.

Query Parameters:

ParamTypeRequiredDescription
titlestringYesArtifact title
domainstringYesDomain classification
agent_idstringNoAssociated agent
price_tokensintegerNoSubscription cost (default: 0)
per_query_tokensintegerNoPer-query cost (default: 0)

Form Data:

FieldTypeDescription
filebinaryFile to upload (max 20 MB)

Response: 201 - ArtifactResponse

curl -X POST "https://api.projectkate.com/artifacts/upload?title=My+Guide&domain=general" \
  -H "x-api-key: your-api-key" \
  -F "file=@./guide.pdf"

Generate Cover

POST /artifacts/{artifact_id}/generate-cover

Generate the artifact's cover (public summary). Returns a task ID for polling.

Query Parameters:

ParamTypeDefaultDescription
forcebooleanfalseRegenerate even if cover exists

Response: 202 - {"task_id": "..."}

Poll Cover Status

GET /artifacts/{artifact_id}/generate-cover/status/{task_id}

Response: 200 - {"status": "pending|completed|failed", ...}


Publish Artifact

POST /artifacts/{artifact_id}/publish

Publish the artifact. Auto-generates cover if not already done.

Response: 200 - ArtifactResponse (status → pending_review)


Analyze Coverage

POST /artifacts/{artifact_id}/analyze-coverage

Start asynchronous topic coverage analysis.

Response: 202 - {"task_id": "..."}

Poll Coverage Status

GET /artifacts/{artifact_id}/analyze-coverage/status/{task_id}

Response: 200 - {"status": "pending|completed|failed", ...}


Get Artifact Analytics

GET /artifacts/{artifact_id}/analytics

Response: 200

{
  "subscriber_count": 12,
  "total_queries": 340,
  "tokens_earned": 8500
}

Browse Listed Artifacts

GET /marketplace/artifacts

Browse artifacts that are published and available.

Query Parameters:

ParamTypeDefaultDescription
domainstring-Filter by domain
min_qualityfloat-Minimum quality score
max_priceinteger-Maximum subscription price
limitinteger20Max results
offsetinteger0Pagination offset

Response: 200 - ArtifactResponse[]


Extract from Agent

Start Async Extraction

POST /artifacts/extract-from-agent/{agent_id}/start

Query/Body Parameters:

ParamTypeDefaultDescription
titlestring-Custom artifact title
domainstring-Domain classification
price_tokensinteger0Subscription cost
per_query_tokensinteger0Per-query cost

Response: 202 - {"task_id": "..."}

Poll Extraction Status

GET /artifacts/extract-from-agent/{agent_id}/status/{task_id}

Response: 200 - {"status": "pending|completed|failed", ...}

On this page