Overview

The DeepWikiOpen API provides endpoints for generating comprehensive documentation from repositories using AI-powered analysis. All endpoints require authentication and support JSON request/response formats. Base URL: https://api.deepwikiopen.com/v1 Authentication: All endpoints require an API key in the Authorization header.

POST /wiki/generate

Generate comprehensive wiki documentation from a repository URL or uploaded codebase.
repository_url
string
required
The GitHub repository URL to analyze and generate documentation for
project_name
string
Custom name for the project (defaults to repository name)
config
object
Generation configuration options
webhook_url
string
Optional webhook URL for completion notifications

Request Example

curl -X POST "https://api.deepwikiopen.com/v1/wiki/generate" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "repository_url": "https://github.com/username/awesome-project",
    "project_name": "Awesome Project",
    "config": {
      "include_code_examples": true,
      "max_depth": 3,
      "exclude_patterns": ["*.test.js", "dist/*"],
      "output_format": "markdown"
    },
    "webhook_url": "https://your-domain.com/webhooks/wiki-complete"
  }'

Response

task_id
string
required
Unique identifier for tracking the generation task
project_id
string
required
Unique project identifier for accessing results
status
string
required
Current task status: “queued”, “processing”, “completed”, or “failed”
estimated_duration
integer
Estimated completion time in seconds
webhook_registered
boolean
Whether webhook notification was successfully registered
Response Example
{
  "task_id": "task_12345abcde",
  "project_id": "proj_awesome_project_67890",
  "status": "queued",
  "estimated_duration": 180,
  "webhook_registered": true,
  "created_at": "2024-01-15T10:30:00Z"
}

GET /wiki/projects

Retrieve a list of all processed repositories and their current status.
page
integer
default:"1"
Page number for pagination
limit
integer
default:"20"
Number of projects per page (max: 100)
status
string
Filter by status: “completed”, “processing”, “failed”
Search projects by name or repository URL

Request Example

curl -X GET "https://api.deepwikiopen.com/v1/wiki/projects?page=1&limit=10&status=completed" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

projects
array
required
Array of project objects
pagination
object
required
Pagination information

GET /wiki/

Retrieve the complete wiki documentation for a specific project.
project_id
string
required
The unique project identifier
format
string
default:"json"
Response format: “json”, “markdown”, or “html”
include_metadata
boolean
default:"true"
Include project metadata in response

Request Example

curl -X GET "https://api.deepwikiopen.com/v1/wiki/proj_awesome_project_67890?format=json" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

project_id
string
required
Project identifier
project_name
string
required
Project display name
repository_url
string
required
Original repository URL
generated_at
string
required
ISO timestamp of wiki generation
pages
array
required
Array of documentation pages
metadata
object
Project metadata (if include_metadata=true)

DELETE /wiki/

Delete a project’s cached wiki data and generated documentation.
project_id
string
required
The unique project identifier to delete

Request Example

curl -X DELETE "https://api.deepwikiopen.com/v1/wiki/proj_awesome_project_67890" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

success
boolean
required
Whether the deletion was successful
project_id
string
required
The deleted project identifier
message
string
required
Confirmation message
deleted_at
string
required
ISO timestamp of deletion
Response Example
{
  "success": true,
  "project_id": "proj_awesome_project_67890",
  "message": "Project wiki data successfully deleted",
  "deleted_at": "2024-01-15T14:30:00Z"
}

POST /wiki/regenerate

Force regenerate wiki documentation for an existing project with updated configuration.
project_id
string
required
The project identifier to regenerate
config
object
Updated generation configuration (same structure as /wiki/generate)
force_refresh
boolean
default:"false"
Force refresh from repository (ignore cache)
webhook_url
string
Optional webhook URL for completion notifications

Request Example

curl -X POST "https://api.deepwikiopen.com/v1/wiki/regenerate" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "proj_awesome_project_67890",
    "config": {
      "include_code_examples": true,
      "max_depth": 5,
      "output_format": "html"
    },
    "force_refresh": true
  }'

Response

Same response structure as POST /wiki/generate.

GET /wiki/status/

Check the status of a wiki generation task and get progress updates.
task_id
string
required
The task identifier returned from generation request

Request Example

curl -X GET "https://api.deepwikiopen.com/v1/wiki/status/task_12345abcde" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

task_id
string
required
The task identifier
project_id
string
required
Associated project identifier
status
string
required
Current status: “queued”, “processing”, “completed”, “failed”
progress
object
Progress information (when status is “processing”)
result
object
Results (when status is “completed”)
error
object
Error information (when status is “failed”)
created_at
string
required
ISO timestamp when task was created
updated_at
string
required
ISO timestamp of last status update
Response Example (Processing)
{
  "task_id": "task_12345abcde",
  "project_id": "proj_awesome_project_67890",
  "status": "processing",
  "progress": {
    "percentage": 65,
    "current_step": "Generating API documentation",
    "files_processed": 42,
    "total_files": 65,
    "estimated_remaining": 45
  },
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:32:15Z"
}

Authentication

All API endpoints require authentication using an API key passed in the Authorization header:
Authorization: Bearer YOUR_API_KEY

Getting an API Key

  1. Sign up for a DeepWikiOpen account at console.deepwikiopen.com
  2. Navigate to the API Keys section
  3. Generate a new API key
  4. Store it securely (it won’t be shown again)

Rate Limiting

API requests are rate limited to prevent abuse:
  • Standard Plan: 100 requests per hour
  • Pro Plan: 1,000 requests per hour
  • Enterprise Plan: 10,000 requests per hour
Rate limit headers are included in all responses:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1642248000
When rate limited, you’ll receive a 429 status code:
{
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Too many requests. Limit resets at 2024-01-15T11:00:00Z"
  }
}

Error Responses

All endpoints follow consistent error response format:

HTTP Status Codes

CodeDescription
200Success
201Created
400Bad Request
401Unauthorized
403Forbidden
404Not Found
429Rate Limited
500Internal Server Error
503Service Unavailable

Error Response Format

{
  "error": {
    "code": "ERROR_CODE",
    "message": "Human-readable error message",
    "details": "Additional error context",
    "request_id": "req_12345abcde"
  }
}

Common Error Codes

CodeDescription
INVALID_API_KEYAPI key is missing or invalid
PROJECT_NOT_FOUNDSpecified project doesn’t exist
TASK_NOT_FOUNDSpecified task doesn’t exist
INVALID_REPOSITORY_URLRepository URL is malformed or inaccessible
GENERATION_FAILEDWiki generation failed due to processing error
RATE_LIMIT_EXCEEDEDToo many requests within time window
INSUFFICIENT_CREDITSNot enough API credits remaining

Webhooks

When providing a webhook_url in generation requests, DeepWikiOpen will send HTTP POST notifications when tasks complete:

Webhook Payload

{
  "event": "wiki.generation.completed",
  "task_id": "task_12345abcde",
  "project_id": "proj_awesome_project_67890",
  "status": "completed",
  "result": {
    "wiki_url": "https://api.deepwikiopen.com/v1/wiki/proj_awesome_project_67890",
    "pages_generated": 15,
    "processing_time": 142
  },
  "timestamp": "2024-01-15T10:35:00Z"
}

Webhook Security

Webhooks include a signature header for verification:
X-DeepWiki-Signature: sha256=1234567890abcdef...
Verify the signature using your webhook secret (available in your dashboard).

SDK Examples

Python SDK

from deepwikiopen import DeepWikiClient

client = DeepWikiClient(api_key="YOUR_API_KEY")

# Generate wiki
task = client.generate_wiki(
    repository_url="https://github.com/username/repo",
    config={
        "include_code_examples": True,
        "max_depth": 3
    }
)

# Wait for completion
result = client.wait_for_completion(task.task_id)
print(f"Wiki generated: {result.wiki_url}")

Node.js SDK

const { DeepWikiClient } = require('deepwikiopen');

const client = new DeepWikiClient({ apiKey: 'YOUR_API_KEY' });

// Generate wiki
const task = await client.generateWiki({
  repositoryUrl: 'https://github.com/username/repo',
  config: {
    includeCodeExamples: true,
    maxDepth: 3
  }
});

// Poll for completion
const result = await client.waitForCompletion(task.taskId);
console.log(`Wiki generated: ${result.wikiUrl}`);

Support

For API support and questions: