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.
The GitHub repository URL to analyze and generate documentation for
Custom name for the project (defaults to repository name)
Generation configuration options Include code examples in generated documentation
Maximum directory depth to analyze (1-10)
File patterns to exclude from analysis (e.g., [“.test.js”, “node_modules/ ”])
Include private/internal functions in documentation
Output format: “markdown”, “html”, or “json”
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
Unique identifier for tracking the generation task
Unique project identifier for accessing results
Current task status: “queued”, “processing”, “completed”, or “failed”
Estimated completion time in seconds
Whether webhook notification was successfully registered
{
"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 number for pagination
Number of projects per page (max: 100)
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
Array of project objects Show Project object properties
Unique project identifier
Display name of the project
ISO timestamp of creation
ISO timestamp of completion (if applicable)
Number of files processed
Number of documentation pages generated
Pagination information Show Pagination properties
Whether there are more pages
GET /wiki/
Retrieve the complete wiki documentation for a specific project.
The unique project identifier
Response format: “json”, “markdown”, or “html”
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
ISO timestamp of wiki generation
Array of documentation pages Show Page object properties
Page content (format depends on query parameter)
Page type: “overview”, “api”, “guide”, “reference”
Project metadata (if include_metadata=true) Programming language distribution
Project complexity rating (0-10)
Last commit hash from repository
DELETE /wiki/
Delete a project’s cached wiki data and generated documentation.
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
Whether the deletion was successful
The deleted project identifier
ISO timestamp of deletion
{
"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.
The project identifier to regenerate
Updated generation configuration (same structure as /wiki/generate)
Force refresh from repository (ignore cache)
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.
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
Associated project identifier
Current status: “queued”, “processing”, “completed”, “failed”
Progress information (when status is “processing”) Completion percentage (0-100)
Number of files processed so far
Estimated seconds remaining
Results (when status is “completed”) URL to access generated wiki
Total processing time in seconds
Error information (when status is “failed”)
ISO timestamp when task was created
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
Sign up for a DeepWikiOpen account at console.deepwikiopen.com
Navigate to the API Keys section
Generate a new API key
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
Code Description 200 Success 201 Created 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 429 Rate Limited 500 Internal Server Error 503 Service Unavailable
{
"error" : {
"code" : "ERROR_CODE" ,
"message" : "Human-readable error message" ,
"details" : "Additional error context" ,
"request_id" : "req_12345abcde"
}
}
Common Error Codes
Code Description INVALID_API_KEY
API key is missing or invalid PROJECT_NOT_FOUND
Specified project doesn’t exist TASK_NOT_FOUND
Specified task doesn’t exist INVALID_REPOSITORY_URL
Repository URL is malformed or inaccessible GENERATION_FAILED
Wiki generation failed due to processing error RATE_LIMIT_EXCEEDED
Too many requests within time window INSUFFICIENT_CREDITS
Not 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: