Documentation

Welcome to the 3nkab API documentation. Build resilient crawlers with Playwright or Cheerio in seconds.

Base URL

https://3nkab.sudeem.ai

All 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/crawls

Create 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/bulk

Create 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/discover

Discover 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/brand

Extract 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"
  }
}