API Documentation

Generate knowledge base articles programmatically. Send a video URL or text, get a structured article back.

v1Base URL: https://kbpipe.io/api/v1

Authentication

All API requests require an API key passed in the Authorization header. API keys are prefixed with vtk_ and can be generated from your Settings page.

Authorization Header
Authorization: Bearer vtk_your_api_key_here
Keep your API key secret. Do not expose it in client-side code or public repositories. If compromised, revoke it immediately from Settings.

Generate Article

POST/api/v1/generate

Generate a knowledge base article from a video URL or raw text. Returns structured markdown and optionally platform-formatted HTML.

Quick Start (cURL)
curl -X POST https://kbpipe.io/api/v1/generate \
  -H "Authorization: Bearer vtk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "videoUrl": "https://www.youtube.com/watch?v=example"
  }'
With text input
curl -X POST https://kbpipe.io/api/v1/generate \
  -H "Authorization: Bearer vtk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "transcript": "Your text content here — user stories, meeting notes, specs...",
    "articleType": "how-to-guide",
    "platform": "zendesk"
  }'

Request Parameters

ParameterTypeRequiredDescription
videoUrlstringrequiredURL of a Loom, YouTube, or Google Drive video to process. Required if transcript is not provided.
transcriptstringrequiredRaw text content (user story, meeting notes, specs). Required if videoUrl is not provided.
articleTypestringoptionalArticle type ID. Falls back to your workspace default if omitted. Examples: how-to-guide, feature-explainer
platformstringoptionalPlatform profile ID for HTML output. Falls back to workspace default. Examples: zendesk, intercom, helpjuice
workspacestringoptionalWorkspace ID. Falls back to your active workspace, then your first workspace.
Note: Either videoUrl or transcript is required. If both are provided, transcript takes precedence.

Response

A successful response returns the generated article with metadata.

200 OK
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "title": "How to Configure SSO in Your Dashboard",
  "markdown": "# How to Configure SSO in Your Dashboard\n\n## Overview\n...",
  "html": "<article class=\"kb-article\">...</article>",
  "platform": "Zendesk",
  "articleType": "How-to Guide"
}
FieldTypeDescription
idstringUUID of the saved article
titlestringAuto-extracted article title
markdownstringStructured article in Markdown format
htmlstring?Platform-formatted HTML (only when a platform profile is selected)
platformstringName of the platform used
articleTypestringName of the article type used

Error Handling

Errors return a JSON object with an error field.

Error Response
{
  "error": "Missing or invalid Authorization header. Use: Bearer vtk_..."
}
StatusMeaning
400Bad request — missing required fields, invalid article type, or no workspace found
401Unauthorized — missing, malformed, or revoked API key
403Quota exceeded — upgrade your plan or wait for the next billing cycle
404Workspace not found or access denied
429Rate limit exceeded — max 5 requests per minute
500Server error — article generation failed

Rate Limits

The API enforces a sliding-window rate limit per API key.

5
requests per minute
300s
max processing time

When rate limited, the response includes a Retry-After header with the number of seconds to wait.

Examples

JavaScript / Node.js

fetch
const response = await fetch('https://kbpipe.io/api/v1/generate', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer vtk_your_key',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    videoUrl: 'https://www.loom.com/share/abc123',
    articleType: 'how-to-guide',
    platform: 'zendesk',
  }),
});

const article = await response.json();
console.log(article.title);
console.log(article.html);

Python

requests
import requests

response = requests.post(
    'https://kbpipe.io/api/v1/generate',
    headers={'Authorization': 'Bearer vtk_your_key'},
    json={
        'transcript': 'Your raw text content here...',
        'articleType': 'feature-explainer',
    }
)

article = response.json()
print(article['title'])
print(article['markdown'])

MCP Server

KBPipe also ships an MCP server for AI assistant integration. Install it to let Claude, Cursor, or other AI tools generate KB articles directly.

Install MCP Server
# Clone and build
cd mcp-server && npm install && npm run build

# Configure in your AI tool with:
#   KBPIPE_API_KEY=vtk_your_key
#   KBPIPE_BASE_URL=https://kbpipe.io  (optional, defaults to this)

Ready to get started?

Create a free account and generate your API key in seconds.

Get Your API Key