Interactive REST Documentation

API Reference & Schemas

Complete technical documentation for all ScraperDev BD DevKit REST endpoints. Includes request envelopes, response schemas, error codes, and code snippets in cURL, JavaScript, and Python.

Zero Authentication

All public endpoints operate without API keys, bearer tokens, or user accounts. Call endpoints directly from any client or server application.

Standard Response Envelope

Every response is wrapped in a consistent structure with boolean success, operation data, tracing requestId, and machine-readable error.

Rate Limits & Headers

IP-based rate limits protect endpoints from denial of service. Responses include standardX-RateLimit-* headers and return HTTP 429 when exceeded.

Standard JSON Response Structure

Whether an endpoint succeeds or errors, the top-level structure remains predictable:

SUCCESS ENVELOPE (HTTP 200)
JSON
{
  "success": true,
  "data": { ... },
  "meta": {
    "requestId": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
    "version": "v1",
    "timestamp": "2026-10-18T21:00:00.000Z"
  },
  "error": null
}
ERROR ENVELOPE (HTTP 4xx / 5xx)
JSON
{
  "success": false,
  "data": null,
  "meta": {
    "requestId": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
    "version": "v1",
    "timestamp": "2026-10-18T21:00:00.000Z"
  },
  "error": {
    "code": "INVALID_INPUT",
    "message": "Missing required field 'json'."
  }
}

API Endpoints (20)

Test in Playground
GET

/api/v1

Rate Limit: 60 req/minPlayground

Returns general service status, available endpoint routes, API version, and uptime metadata.

Sample Request
BASH
curl -X GET "https://scraperdevbd.fun/api/v1"
Sample Response
JSON
{
  "success": true,
  "data": {
    "name": "ScraperDev BD DevKit API",
    "version": "v1",
    "status": "operational",
    "documentation": "https://scraperdevbd.fun/devkit/docs",
    "totalEndpoints": 17,
    "authRequired": false
  },
  "meta": {
    "requestId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
    "version": "v1",
    "timestamp": "2026-10-18T21:00:00.000Z"
  },
  "error": null
}
POST

/api/v1/json/format

Rate Limit: 60 req/minPlayground

Accepts raw JSON or a JSON string and returns cleanly formatted JSON with configurable indent spaces or tab formatting.

Request Body Schema
Payload Shape
{ "json": string | object, "indent"?: number | "tab", "sortKeys"?: boolean }
Sample Request
BASH
curl -X POST "https://scraperdevbd.fun/api/v1/json/format" \
  -H "Content-Type: application/json" \
  -d '{
  "json": "{\"name\":\"ScraperDev\",\"role\":\"Developer\",\"active\":true}",
  "indent": 2,
  "sortKeys": true
}'
Sample Response
JSON
{
  "success": true,
  "data": {
    "formatted": "{\n  \"active\": true,\n  \"name\": \"ScraperDev\",\n  \"role\": \"Developer\"\n}",
    "sizeBytes": 62,
    "keyCount": 3
  },
  "meta": {
    "requestId": "e4e1a0b3-1f19-4b2a-8ef7-013b52d9a9f2",
    "version": "v1",
    "timestamp": "2026-10-18T21:00:00.000Z"
  },
  "error": null
}
POST

/api/v1/json/minify

Rate Limit: 60 req/minPlayground

Minifies JSON payloads, returning compressed string and calculated byte savings percentage.

Request Body Schema
Payload Shape
{ "json": string | object }
Sample Request
BASH
curl -X POST "https://scraperdevbd.fun/api/v1/json/minify" \
  -H "Content-Type: application/json" \
  -d '{
  "json": "{\n  \"status\": \"online\",\n  \"code\": 200\n}"
}'
Sample Response
JSON
{
  "success": true,
  "data": {
    "minified": "{\"status\":\"online\",\"code\":200}",
    "originalSize": 42,
    "minifiedSize": 31,
    "savingsPercent": 26.19
  },
  "meta": {
    "requestId": "37bfa2b3-9c8f-4632-a567-9d7a224ef4b1",
    "version": "v1",
    "timestamp": "2026-10-18T21:00:00.000Z"
  },
  "error": null
}
POST

/api/v1/json/validate

Rate Limit: 60 req/minPlayground

Parses provided JSON and returns validation status. If invalid, provides error message, line number, and character position.

Request Body Schema
Payload Shape
{ "json": string }
Sample Request
BASH
curl -X POST "https://scraperdevbd.fun/api/v1/json/validate" \
  -H "Content-Type: application/json" \
  -d '{
  "json": "{\"valid\": true, \"items\": [1, 2, 3]}"
}'
Sample Response
JSON
{
  "success": true,
  "data": {
    "valid": true,
    "type": "object",
    "keys": [
      "valid",
      "items"
    ],
    "estimatedSize": 35
  },
  "meta": {
    "requestId": "cb73f982-124d-44aa-9cbf-6df2f183759a",
    "version": "v1",
    "timestamp": "2026-10-18T21:00:00.000Z"
  },
  "error": null
}
POST

/api/v1/json/to-typescript

Rate Limit: 60 req/minPlayground

Infers type definitions and generates TypeScript `interface` or `type` code blocks from JSON objects.

Request Body Schema
Payload Shape
{ "json": string | object, "rootName"?: string, "useTypeAlias"?: boolean }
Sample Request
BASH
curl -X POST "https://scraperdevbd.fun/api/v1/json/to-typescript" \
  -H "Content-Type: application/json" \
  -d '{
  "rootName": "UserProfile",
  "json": {
    "id": 101,
    "username": "scraperdev",
    "isAdmin": true,
    "tags": [
      "developer",
      "nextjs"
    ]
  }
}'
Sample Response
JSON
{
  "success": true,
  "data": {
    "typescript": "export interface UserProfile {\n  id: number;\n  username: string;\n  isAdmin: boolean;\n  tags: string[];\n}",
    "interfaceNames": [
      "UserProfile"
    ]
  },
  "meta": {
    "requestId": "f48dc109-00ef-4f11-9e77-9b247f123891",
    "version": "v1",
    "timestamp": "2026-10-18T21:00:00.000Z"
  },
  "error": null
}
POST

/api/v1/json/to-yaml

Rate Limit: 60 req/minPlayground

Parses input JSON and renders standard YAML with customizable indent level.

Request Body Schema
Payload Shape
{ "json": string | object, "indent"?: number }
Sample Request
BASH
curl -X POST "https://scraperdevbd.fun/api/v1/json/to-yaml" \
  -H "Content-Type: application/json" \
  -d '{
  "json": {
    "service": "scraperdev-api",
    "port": 8080,
    "environment": "production"
  }
}'
Sample Response
JSON
{
  "success": true,
  "data": {
    "yaml": "service: scraperdev-api\nport: 8080\nenvironment: production\n"
  },
  "meta": {
    "requestId": "931ea70c-2d33-4ef9-bb8d-56541604eeaa",
    "version": "v1",
    "timestamp": "2026-10-18T21:00:00.000Z"
  },
  "error": null
}
POST

/api/v1/yaml/to-json

Rate Limit: 60 req/minPlayground

Parses standard YAML string and returns structured JSON with customizable indentation.

Request Body Schema
Payload Shape
{ "yaml": string, "indent"?: number }
Sample Request
BASH
curl -X POST "https://scraperdevbd.fun/api/v1/yaml/to-json" \
  -H "Content-Type: application/json" \
  -d '{
  "yaml": "app: ScraperOS\nversion: 1.0.0\nfeatures:\n  - devkit\n  - portfolio\n",
  "indent": 2
}'
Sample Response
JSON
{
  "success": true,
  "data": {
    "json": {
      "app": "ScraperOS",
      "version": "1.0.0",
      "features": [
        "devkit",
        "portfolio"
      ]
    },
    "jsonString": "{\n  \"app\": \"ScraperOS\",\n  \"version\": \"1.0.0\",\n  \"features\": [\n    \"devkit\",\n    \"portfolio\"\n  ]\n}"
  },
  "meta": {
    "requestId": "b548cc21-0012-4211-8e01-af5e8349281a",
    "version": "v1",
    "timestamp": "2026-10-18T21:00:00.000Z"
  },
  "error": null
}
GET

/api/v1/uuid/generate

Rate Limit: 60 req/minPlayground

Generates one or multiple cryptographically secure RFC-4122 compliant UUIDs with options for uppercase and hyphens.

Query Parameters
ParameterTypeRequiredDescriptionDefault
countnumberNoNumber of UUIDs to generate (1 to 100)1
uppercasebooleanNoReturn uppercase UUIDsfalse
hyphensbooleanNoInclude standard hyphenstrue
Sample Request
BASH
curl -X GET "https://scraperdevbd.fun/api/v1/uuid/generate?count=3&uppercase=false"
Sample Response
JSON
{
  "success": true,
  "data": {
    "uuids": [
      "a84ef396-1c20-4a81-9fd7-df3a6773a469",
      "f9024fbd-197e-402a-9cb8-b02fdbfe1375",
      "524cb8e0-cb4e-4e3a-9653-61fcfaecb71a"
    ],
    "count": 3
  },
  "meta": {
    "requestId": "712e02df-8a3e-4623-a185-1fa5a71120eb",
    "version": "v1",
    "timestamp": "2026-10-18T21:00:00.000Z"
  },
  "error": null
}
POST

/api/v1/text/slug

Rate Limit: 60 req/minPlayground

Normalizes Unicode text, removes diacritics/accents and special symbols, and joins words using a custom separator.

Request Body Schema
Payload Shape
{ "text": string, "separator"?: string, "lowercase"?: boolean }
Sample Request
BASH
curl -X POST "https://scraperdevbd.fun/api/v1/text/slug" \
  -H "Content-Type: application/json" \
  -d '{
  "text": "Building ScraperDev BD DevKit & Next.js APIs!",
  "separator": "-",
  "lowercase": true
}'
Sample Response
JSON
{
  "success": true,
  "data": {
    "slug": "building-scraperdev-bd-devkit-next-js-apis",
    "original": "Building ScraperDev BD DevKit & Next.js APIs!"
  },
  "meta": {
    "requestId": "cb3f1011-82ab-4001-9011-cc22904bc019",
    "version": "v1",
    "timestamp": "2026-10-18T21:00:00.000Z"
  },
  "error": null
}
POST

/api/v1/text/case

Rate Limit: 60 req/minPlayground

Converts input text into camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Sentence case, and Title Case simultaneously.

Request Body Schema
Payload Shape
{ "text": string }
Sample Request
BASH
curl -X POST "https://scraperdevbd.fun/api/v1/text/case" \
  -H "Content-Type: application/json" \
  -d '{
  "text": "user profile avatar url"
}'
Sample Response
JSON
{
  "success": true,
  "data": {
    "camelCase": "userProfileAvatarUrl",
    "pascalCase": "UserProfileAvatarUrl",
    "snakeCase": "user_profile_avatar_url",
    "kebabCase": "user-profile-avatar-url",
    "constantCase": "USER_PROFILE_AVATAR_URL",
    "titleCase": "User Profile Avatar Url",
    "sentenceCase": "User profile avatar url"
  },
  "meta": {
    "requestId": "36720bfd-5b3c-4739-9d7a-b5f7e63478de",
    "version": "v1",
    "timestamp": "2026-10-18T21:00:00.000Z"
  },
  "error": null
}
POST

/api/v1/hash/sha256

Rate Limit: 45 req/minPlayground

Generates secure hexadecimal message digests from input text with optional salt.

Request Body Schema
Payload Shape
{ "text": string, "algorithm"?: "SHA-256" | "SHA-512" | "MD5", "salt"?: string }
Sample Request
BASH
curl -X POST "https://scraperdevbd.fun/api/v1/hash/sha256" \
  -H "Content-Type: application/json" \
  -d '{
  "text": "ScraperDevBD",
  "algorithm": "SHA-256"
}'
Sample Response
JSON
{
  "success": true,
  "data": {
    "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "algorithm": "SHA-256",
    "saltApplied": false
  },
  "meta": {
    "requestId": "40d86b7e-97c2-482a-89a3-a3d82a1e0b5d",
    "version": "v1",
    "timestamp": "2026-10-18T21:00:00.000Z"
  },
  "error": null
}
GET

/api/v1/timestamp/convert

Rate Limit: 60 req/minPlayground

Accepts a timestamp in seconds, milliseconds, or ISO date string and returns standard formatted date representations in UTC and common formats.

Query Parameters
ParameterTypeRequiredDescriptionDefault
valuestringNoEpoch number or date string (defaults to current time)now
Sample Request
BASH
curl -X GET "https://scraperdevbd.fun/api/v1/timestamp/convert?value=1773878400"
Sample Response
JSON
{
  "success": true,
  "data": {
    "seconds": 1773878400,
    "milliseconds": 1773878400000,
    "iso8601": "2026-03-19T00:00:00.000Z",
    "utcString": "Thu, 19 Mar 2026 00:00:00 GMT",
    "relative": "in a few moments"
  },
  "meta": {
    "requestId": "fe22c719-72f1-4db8-9e66-1c8812c3b889",
    "version": "v1",
    "timestamp": "2026-10-18T21:00:00.000Z"
  },
  "error": null
}
POST

/api/v1/qr/generate

Rate Limit: 45 req/minPlayground

Renders QR code from input text or URL, with configurable error correction level, color, margin, and output format (SVG or data URL PNG).

Request Body Schema
Payload Shape
{ "text": string, "format"?: "svg" | "dataurl", "darkColor"?: string, "lightColor"?: string, "margin"?: number }
Sample Request
BASH
curl -X POST "https://scraperdevbd.fun/api/v1/qr/generate" \
  -H "Content-Type: application/json" \
  -d '{
  "text": "https://scraperdevbd.fun",
  "format": "svg",
  "darkColor": "#000000",
  "lightColor": "#ffffff"
}'
Sample Response
JSON
{
  "success": true,
  "data": {
    "format": "svg",
    "output": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 33 33\" shape-rendering=\"crispEdges\">...</svg>",
    "text": "https://scraperdevbd.fun"
  },
  "meta": {
    "requestId": "aa1947b0-8c29-41ab-85a2-f83196a0cc6e",
    "version": "v1",
    "timestamp": "2026-10-18T21:00:00.000Z"
  },
  "error": null
}
POST

/api/v1/colors/palette

Rate Limit: 60 req/minPlayground

Computes color harmonies (complementary, analogous, triadic, monochromatic) for a base hex code, with WCAG 2.1 contrast ratios against black and white.

Request Body Schema
Payload Shape
{ "baseColor": string, "mode"?: "complementary" | "analogous" | "triadic" | "monochromatic" }
Sample Request
BASH
curl -X POST "https://scraperdevbd.fun/api/v1/colors/palette" \
  -H "Content-Type: application/json" \
  -d '{
  "baseColor": "#6366f1",
  "mode": "complementary"
}'
Sample Response
JSON
{
  "success": true,
  "data": {
    "mode": "complementary",
    "base": "#6366f1",
    "colors": [
      {
        "hex": "#6366f1",
        "rgb": "rgb(99, 102, 241)",
        "hsl": "hsl(239, 84%, 67%)",
        "contrastOnBlack": 6.4,
        "contrastOnWhite": 3.3
      },
      {
        "hex": "#f1ee63",
        "rgb": "rgb(241, 238, 99)",
        "hsl": "hsl(59, 84%, 67%)",
        "contrastOnBlack": 15.2,
        "contrastOnWhite": 1.4
      }
    ]
  },
  "meta": {
    "requestId": "37b420f1-4a11-4712-ba00-8bca782161a4",
    "version": "v1",
    "timestamp": "2026-10-18T21:00:00.000Z"
  },
  "error": null
}
POST

/api/v1/regex/test

Rate Limit: 60 req/minPlayground

Tests a pattern and optional flags against a test string, returning matched positions, count, and capture groups.

Request Body Schema
Payload Shape
{ "pattern": string, "flags"?: string, "text": string }
Sample Request
BASH
curl -X POST "https://scraperdevbd.fun/api/v1/regex/test" \
  -H "Content-Type: application/json" \
  -d '{
  "pattern": "(\\w+)@(\\w+\\.\\w+)",
  "flags": "g",
  "text": "Contact us at support@scraperdevbd.fun or hello@example.com"
}'
Sample Response
JSON
{
  "success": true,
  "data": {
    "isMatch": true,
    "matchCount": 2,
    "matches": [
      {
        "match": "support@scraperdevbd.fun",
        "index": 14,
        "groups": {}
      },
      {
        "match": "hello@example.com",
        "index": 43,
        "groups": {}
      }
    ]
  },
  "meta": {
    "requestId": "9a21b470-3881-4902-86ee-773199bc4b99",
    "version": "v1",
    "timestamp": "2026-10-18T21:00:00.000Z"
  },
  "error": null
}
POST

/api/v1/metadata/inspect

Rate Limit: 15 req/minPlayground

Safely fetches an external webpage (with strict SSRF protection, private IP blocking, and timeout handling) to parse Open Graph, Twitter cards, title, description, and canonical URL.

Request Body Schema
Payload Shape
{ "url": string }
Sample Request
BASH
curl -X POST "https://scraperdevbd.fun/api/v1/metadata/inspect" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://scraperdevbd.fun"
}'
Sample Response
JSON
{
  "success": true,
  "data": {
    "url": "https://scraperdevbd.fun",
    "title": "ScraperDev BD | Full-Stack & Minecraft Mod Developer",
    "description": "Official portfolio of ScraperDev BD. High performance web applications, Minecraft mods, and developer tools.",
    "favicon": "https://scraperdevbd.fun/favicon.ico",
    "openGraph": {
      "title": "ScraperDev BD Portfolio",
      "description": "High performance web applications & mods",
      "image": "https://scraperdevbd.fun/banner.png",
      "type": "website"
    },
    "twitter": {
      "card": "summary_large_image",
      "title": "ScraperDev BD Portfolio"
    }
  },
  "meta": {
    "requestId": "7b09ca18-99e2-4161-ae21-bb7012354a91",
    "version": "v1",
    "timestamp": "2026-10-18T21:00:00.000Z"
  },
  "error": null
}
POST

/api/v1/minecraft/mod-json/validate

Rate Limit: 60 req/minPlayground

Performs schema and semantic checks against Fabric Minecraft mod metadata definitions (`fabric.mod.json`), validating mod ID format, semver version, entrypoints, and licenses.

Request Body Schema
Payload Shape
{ "json": string | object }
Sample Request
BASH
curl -X POST "https://scraperdevbd.fun/api/v1/minecraft/mod-json/validate" \
  -H "Content-Type: application/json" \
  -d '{
  "json": {
    "schemaVersion": 1,
    "id": "example_mod",
    "version": "1.0.0",
    "name": "Example Mod",
    "environment": "*",
    "entrypoints": {
      "main": [
        "com.example.ExampleMod"
      ]
    },
    "depends": {
      "fabricloader": ">=0.16.0",
      "minecraft": "~1.21.1"
    }
  }
}'
Sample Response
JSON
{
  "success": true,
  "data": {
    "valid": true,
    "schemaVersion": 1,
    "modId": "example_mod",
    "version": "1.0.0",
    "name": "Example Mod",
    "errors": [],
    "warnings": [
      "Missing 'license' field in fabric.mod.json."
    ]
  },
  "meta": {
    "requestId": "904b7721-a18d-4ee8-bbf3-46104c997811",
    "version": "v1",
    "timestamp": "2026-10-18T21:00:00.000Z"
  },
  "error": null
}
POST

/api/v1/minecraft/pack-mcmeta/validate

Rate Limit: 60 req/minPlayground

Validates `pack.mcmeta` for datapacks and resource packs, checking pack_format against known Minecraft releases.

Request Body Schema
Payload Shape
{ "json": string | object }
Sample Request
BASH
curl -X POST "https://scraperdevbd.fun/api/v1/minecraft/pack-mcmeta/validate" \
  -H "Content-Type: application/json" \
  -d '{
  "json": {
    "pack": {
      "pack_format": 48,
      "description": "Custom Datapack for 1.21"
    }
  }
}'
Sample Response
JSON
{
  "success": true,
  "data": {
    "valid": true,
    "packFormat": 48,
    "description": "Custom Datapack for 1.21",
    "packType": "datapack",
    "compatibleVersions": [
      "Minecraft 1.21",
      "Minecraft 1.21.1"
    ],
    "errors": []
  },
  "meta": {
    "requestId": "67d819bc-11a2-4a00-98b7-ca9028834f82",
    "version": "v1",
    "timestamp": "2026-10-18T21:00:00.000Z"
  },
  "error": null
}
POST

/api/v1/css/advanced-gradient

Rate Limit: 60 req/minPlayground

Generate CSS gradient rules, Tailwind inline utility classes, and preset gradients for linear, radial, and conic types with custom color stops.

Request Body Schema
Payload Shape
{ "type": "linear" | "radial" | "conic", "angle"?: number, "stops": [{ "color": string, "position": number }] }
Sample Request
BASH
curl -X POST "https://scraperdevbd.fun/api/v1/css/advanced-gradient" \
  -H "Content-Type: application/json" \
  -d '{
  "type": "linear",
  "angle": 135,
  "stops": [
    {
      "color": "#f43f5e",
      "position": 0
    },
    {
      "color": "#8b5cf6",
      "position": 50
    },
    {
      "color": "#06b6d4",
      "position": 100
    }
  ]
}'
Sample Response
JSON
{
  "success": true,
  "data": {
    "type": "linear",
    "angle": 135,
    "css": "background: linear-gradient(135deg, #f43f5e 0%, #8b5cf6 50%, #06b6d4 100%);",
    "value": "linear-gradient(135deg, #f43f5e 0%, #8b5cf6 50%, #06b6d4 100%)",
    "tailwind": "bg-[linear-gradient(135deg,#f43f5e_0%,#8b5cf6_50%,#06b6d4_100%)]",
    "stops": [
      {
        "color": "#f43f5e",
        "position": 0
      },
      {
        "color": "#8b5cf6",
        "position": 50
      },
      {
        "color": "#06b6d4",
        "position": 100
      }
    ]
  },
  "meta": {
    "requestId": "8b9a10ef-71da-411a-b6d3-9bc19820f124",
    "version": "v1",
    "timestamp": "2026-10-18T21:00:00.000Z"
  },
  "error": null
}
GET

/api/v1/text/lorem

Rate Limit: 60 req/minPlayground

Generate customized placeholder text for design mockups, wireframes, and API test payloads with optional HTML paragraph tag wrapping.

Query Parameters
ParameterTypeRequiredDescriptionDefault
countnumberNoNumber of units to generate (1-20)3
typestringNoUnit type: 'paragraphs', 'sentences', or 'words'paragraphs
htmlbooleanNoWrap in <p> HTML tagsfalse
Sample Request
BASH
curl -X GET "https://scraperdevbd.fun/api/v1/text/lorem?count=2&type=paragraphs"
Sample Response
JSON
{
  "success": true,
  "data": {
    "type": "paragraphs",
    "count": 2,
    "asHtml": false,
    "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit...",
    "totalWords": 74
  },
  "meta": {
    "requestId": "9a01fec4-22b1-419b-a01e-c0fa2881b831",
    "version": "v1",
    "timestamp": "2026-10-18T21:00:00.000Z"
  },
  "error": null
}