Skip to main content

Articles

Articles power your knowledge base. Create, publish, and manage help content that customers and agents can search.

The Article object

id uuid

Unique article identifier

title string

Article title

content string

Article body (Markdown)

category string

Category name

status string

Publication status "draft" | "published"

is_public boolean

Whether visible in public knowledge base

tags string[]

Array of tag strings

view_count integer

Number of times viewed

helpful_count integer

Number of "helpful" votes

created_at datetime

When the article was created

updated_at datetime

Last modification timestamp

Endpoints

GET /api/v1/teams/{teamId}/articles

List Articles

Retrieve a paginated list of knowledge base articles with optional filtering.

Query Parameters

category string

Filter by category name

status string

Filter by publication status

isPublic boolean

Filter by public visibility

search string

Full-text search in title and content

page integer

Page number (1-indexed)

Default: 1

pageSize integer

Results per page (max 100)

Default: 20

Code Examples

curl -X GET "https://app.cstar.help/api/v1/teams/{teamId}/articles?status=published" \
			  -H "Authorization: Bearer sk_live_your_key"
			

Responses

200 Paginated list of articles
{
			  "data": [
			    {
			      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
			      "title": "How to reset your password",
			      "category": "Account",
			      "status": "published",
			      "is_public": true,
			      "view_count": 342,
			      "helpful_count": 28,
			      "created_at": "2025-11-15T09:00:00Z"
			    }
			  ],
			  "pagination": {
			    "page": 1,
			    "pageSize": 20,
			    "total": 142,
			    "totalPages": 8
			  }
			}
			
401 Authentication failed — missing or invalid API key
{
			  "error": {
			    "code": "UNAUTHORIZED",
			    "message": "Invalid or expired API key"
			  }
			}
			
403 Insufficient permissions — wrong key type or team access
{
			  "error": {
			    "code": "FORBIDDEN",
			    "message": "Secret key required for this endpoint"
			  }
			}
			
429 Rate limit exceeded
{
			  "error": {
			    "code": "RATE_LIMITED",
			    "message": "Rate limit exceeded. Try again in 60 seconds",
			    "retryAfter": 60
			  }
			}
			
GET /api/v1/teams/{teamId}/articles/{articleId}

Get Article

Retrieve a single article by ID with full content.

Path Parameters

articleId uuid required

The article ID

Code Examples

curl -X GET "https://app.cstar.help/api/v1/teams/{teamId}/articles/{articleId}" \
			  -H "Authorization: Bearer sk_live_your_key"
			

Responses

200 The article object
{
			  "data": {
			    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
			    "title": "How to reset your password",
			    "content": "# Password Reset\n\n1. Go to login page\n2. Click \"Forgot Password\"...",
			    "category": "Account",
			    "status": "published",
			    "is_public": true,
			    "tags": [
			      "password",
			      "account",
			      "security"
			    ],
			    "view_count": 342,
			    "helpful_count": 28,
			    "created_at": "2025-11-15T09:00:00Z",
			    "updated_at": "2025-12-01T11:00:00Z"
			  }
			}
			
404 Article not found
{
			  "error": {
			    "code": "resource_missing",
			    "message": "Article not found"
			  }
			}
			
401 Authentication failed — missing or invalid API key
{
			  "error": {
			    "code": "UNAUTHORIZED",
			    "message": "Invalid or expired API key"
			  }
			}
			
403 Insufficient permissions — wrong key type or team access
{
			  "error": {
			    "code": "FORBIDDEN",
			    "message": "Secret key required for this endpoint"
			  }
			}
			
429 Rate limit exceeded
{
			  "error": {
			    "code": "RATE_LIMITED",
			    "message": "Rate limit exceeded. Try again in 60 seconds",
			    "retryAfter": 60
			  }
			}
			
POST /api/v1/teams/{teamId}/articles

Create Article

Create a new knowledge base article. Articles start as drafts by default.

Requires a secret API key.

Request Body

title string required

Article title

content string

Article body (Markdown)

category string

Category name

status string

Publication status

Default: draft

isPublic boolean

Whether visible publicly

Default: false

tags string

Comma-separated tags

Code Examples

curl -X POST "https://app.cstar.help/api/v1/teams/{teamId}/articles" \
			  -H "Authorization: Bearer sk_live_your_key" \
			  -H "Content-Type: application/json" \
			  -d '{
			    "title": "Getting Started Guide",
			    "content": "# Welcome\n\nHere is how to get started...",
			    "category": "Onboarding",
			    "status": "draft"
			  }'
			

Responses

201 Article created
{
			  "data": {
			    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
			    "title": "Getting Started Guide",
			    "status": "draft",
			    "is_public": false,
			    "created_at": "2025-12-10T14:30:00Z"
			  }
			}
			
401 Authentication failed — missing or invalid API key
{
			  "error": {
			    "code": "UNAUTHORIZED",
			    "message": "Invalid or expired API key"
			  }
			}
			
403 Insufficient permissions — wrong key type or team access
{
			  "error": {
			    "code": "FORBIDDEN",
			    "message": "Secret key required for this endpoint"
			  }
			}
			
429 Rate limit exceeded
{
			  "error": {
			    "code": "RATE_LIMITED",
			    "message": "Rate limit exceeded. Try again in 60 seconds",
			    "retryAfter": 60
			  }
			}
			
PATCH /api/v1/teams/{teamId}/articles/{articleId}

Update Article

Update one or more fields on an existing article.

Requires a secret API key.

Path Parameters

articleId uuid required

The article ID

Request Body

title string

Article title

content string

Article body (Markdown)

category string

Category name

status string

Publication status

isPublic boolean

Whether visible publicly

tags string

Comma-separated tags

Code Examples

curl -X PATCH "https://app.cstar.help/api/v1/teams/{teamId}/articles/{articleId}" \
			  -H "Authorization: Bearer sk_live_your_key" \
			  -H "Content-Type: application/json" \
			  -d '{ "status": "published", "isPublic": true }'
			

Responses

200 Updated article
{
			  "data": {
			    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
			    "title": "Getting Started Guide",
			    "status": "published",
			    "updated_at": "2025-12-10T16:00:00Z"
			  }
			}
			
404 Article not found
{
			  "error": {
			    "code": "resource_missing",
			    "message": "Article not found"
			  }
			}
			
401 Authentication failed — missing or invalid API key
{
			  "error": {
			    "code": "UNAUTHORIZED",
			    "message": "Invalid or expired API key"
			  }
			}
			
403 Insufficient permissions — wrong key type or team access
{
			  "error": {
			    "code": "FORBIDDEN",
			    "message": "Secret key required for this endpoint"
			  }
			}
			
429 Rate limit exceeded
{
			  "error": {
			    "code": "RATE_LIMITED",
			    "message": "Rate limit exceeded. Try again in 60 seconds",
			    "retryAfter": 60
			  }
			}
			
DELETE /api/v1/teams/{teamId}/articles/{articleId}

Delete Article

Permanently delete an article from the knowledge base.

Requires a secret API key. This is a destructive operation.

Path Parameters

articleId uuid required

The article ID

Code Examples

curl -X DELETE "https://app.cstar.help/api/v1/teams/{teamId}/articles/{articleId}" \
			  -H "Authorization: Bearer sk_live_your_key"
			

Responses

200 Article deleted
{
			  "data": {
			    "deleted": true
			  }
			}
			
404 Article not found
{
			  "error": {
			    "code": "resource_missing",
			    "message": "Article not found"
			  }
			}
			
401 Authentication failed — missing or invalid API key
{
			  "error": {
			    "code": "UNAUTHORIZED",
			    "message": "Invalid or expired API key"
			  }
			}
			
403 Insufficient permissions — wrong key type or team access
{
			  "error": {
			    "code": "FORBIDDEN",
			    "message": "Secret key required for this endpoint"
			  }
			}
			
429 Rate limit exceeded
{
			  "error": {
			    "code": "RATE_LIMITED",
			    "message": "Rate limit exceeded. Try again in 60 seconds",
			    "retryAfter": 60
			  }
			}