Documentation
Welcome to the 3nkab API documentation. Build resilient crawlers with Playwright or Cheerio in seconds.
Base URL
https://3nkab.sudeem.aiAll API endpoints should be prefixed with this base URL.
Authentication
All API requests require an Authorization header with your database API key:
Authorization: Bearer sk_your_database_api_key
You can generate API keys from your dashboard.
Create Crawl
POST
/api/v1/crawlsCreate a new crawl. Can be run synchronously to wait for results or asynchronously for background processing.
Request Body
{
"url": "https://example.com",
"crawlerType": "playwright",
"options": {
"extract_type": "markdown",
"extract_images": false,
"maxDepth": 1
},
"sync": true
}Response Example
{
"id": "job_123",
"status": "succeeded",
"createdAt": "2024-03-20T10:00:00.000Z",
"updatedAt": "2024-03-20T10:00:05.000Z",
"result": [
{
"url": "https://example.com",
"markdownLink": "https://3nkab.sudeem.ai/artifacts/job_123/content.md",
"contentMarkdown": "# Page Title\n\nContent..."
}
]
}Get Crawl
GET
/api/v1/crawls/[id]Retrieve the status and results of a previously created crawl.
Response Example
{
"id": "job_123",
"status": "succeeded",
"createdAt": "2024-03-20T10:00:00.000Z",
"result": []
}Bulk Create
POST
/api/v1/crawls/bulkCreate multiple crawls in a single request. Can be run synchronously to wait for all results or asynchronously for background processing.
Request Body
{
"urls": [
"https://example.com",
"https://google.com"
],
"options": {
"extract_type": "markdown"
},
"sync": true
}Response Example
{
"sync": true,
"results": [
{
"jobId": "job_124",
"url": "https://example.com",
"status": "succeeded",
"result": {
"markdownLink": "https://3nkab.sudeem.ai/artifacts/job_124/content.md",
"contentMarkdown": "# Page Title\n\nContent..."
}
},
{
"jobId": "job_125",
"url": "https://google.com",
"status": "succeeded",
"result": {
"markdownLink": "https://3nkab.sudeem.ai/artifacts/job_125/content.md",
"contentMarkdown": "# Google\n\nSearch page content..."
}
}
]
}Discover
POST
/api/v1/discoverDiscover links on a given webpage.
Request Body
{
"url": "https://example.com",
"maxLinks": 100,
"sameDomain": true
}Response Example
{
"url": "https://example.com",
"total": 3,
"links": [
"https://example.com/about",
"https://example.com/contact",
"https://example.com/blog"
]
}Brand Extraction
POST
/api/v1/brandExtract brand information (logo, primary colors, etc.) from a website.
Request Body
{
"url": "https://example.com"
}Response Example
{
"name": "Example Domain",
"description": "Example Domain Description",
"logo": "https://example.com/images/logo.png",
"colors": {
"primary": "#3b82f6",
"backgroundColor": "#ffffff",
"textColor": "#1e293b"
},
"socials": {
"twitter": "https://twitter.com/example"
}
}