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.
All public endpoints operate without API keys, bearer tokens, or user accounts. Call endpoints directly from any client or server application.
Every response is wrapped in a consistent structure with boolean success, operation data, tracing requestId, and machine-readable error.
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": true,
"data": { ... },
"meta": {
"requestId": "f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
"version": "v1",
"timestamp": "2026-10-18T21:00:00.000Z"
},
"error": null
}{
"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/api/v1
Returns general service status, available endpoint routes, API version, and uptime metadata.
curl -X GET "https://scraperdevbd.fun/api/v1"{
"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
}/api/v1/json/format
Accepts raw JSON or a JSON string and returns cleanly formatted JSON with configurable indent spaces or tab formatting.
{ "json": string | object, "indent"?: number | "tab", "sortKeys"?: boolean }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
}'{
"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
}/api/v1/json/minify
Minifies JSON payloads, returning compressed string and calculated byte savings percentage.
{ "json": string | object }curl -X POST "https://scraperdevbd.fun/api/v1/json/minify" \
-H "Content-Type: application/json" \
-d '{
"json": "{\n \"status\": \"online\",\n \"code\": 200\n}"
}'{
"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
}/api/v1/json/validate
Parses provided JSON and returns validation status. If invalid, provides error message, line number, and character position.
{ "json": string }curl -X POST "https://scraperdevbd.fun/api/v1/json/validate" \
-H "Content-Type: application/json" \
-d '{
"json": "{\"valid\": true, \"items\": [1, 2, 3]}"
}'{
"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
}/api/v1/json/to-typescript
Infers type definitions and generates TypeScript `interface` or `type` code blocks from JSON objects.
{ "json": string | object, "rootName"?: string, "useTypeAlias"?: boolean }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"
]
}
}'{
"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
}/api/v1/json/to-yaml
Parses input JSON and renders standard YAML with customizable indent level.
{ "json": string | object, "indent"?: number }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"
}
}'{
"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
}/api/v1/yaml/to-json
Parses standard YAML string and returns structured JSON with customizable indentation.
{ "yaml": string, "indent"?: number }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
}'{
"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
}/api/v1/uuid/generate
Generates one or multiple cryptographically secure RFC-4122 compliant UUIDs with options for uppercase and hyphens.
| Parameter | Type | Required | Description | Default |
|---|---|---|---|---|
| count | number | No | Number of UUIDs to generate (1 to 100) | 1 |
| uppercase | boolean | No | Return uppercase UUIDs | false |
| hyphens | boolean | No | Include standard hyphens | true |
curl -X GET "https://scraperdevbd.fun/api/v1/uuid/generate?count=3&uppercase=false"{
"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
}/api/v1/text/slug
Normalizes Unicode text, removes diacritics/accents and special symbols, and joins words using a custom separator.
{ "text": string, "separator"?: string, "lowercase"?: boolean }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
}'{
"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
}/api/v1/text/case
Converts input text into camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Sentence case, and Title Case simultaneously.
{ "text": string }curl -X POST "https://scraperdevbd.fun/api/v1/text/case" \
-H "Content-Type: application/json" \
-d '{
"text": "user profile avatar url"
}'{
"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
}/api/v1/hash/sha256
Generates secure hexadecimal message digests from input text with optional salt.
{ "text": string, "algorithm"?: "SHA-256" | "SHA-512" | "MD5", "salt"?: string }curl -X POST "https://scraperdevbd.fun/api/v1/hash/sha256" \
-H "Content-Type: application/json" \
-d '{
"text": "ScraperDevBD",
"algorithm": "SHA-256"
}'{
"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
}/api/v1/timestamp/convert
Accepts a timestamp in seconds, milliseconds, or ISO date string and returns standard formatted date representations in UTC and common formats.
| Parameter | Type | Required | Description | Default |
|---|---|---|---|---|
| value | string | No | Epoch number or date string (defaults to current time) | now |
curl -X GET "https://scraperdevbd.fun/api/v1/timestamp/convert?value=1773878400"{
"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
}/api/v1/qr/generate
Renders QR code from input text or URL, with configurable error correction level, color, margin, and output format (SVG or data URL PNG).
{ "text": string, "format"?: "svg" | "dataurl", "darkColor"?: string, "lightColor"?: string, "margin"?: number }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"
}'{
"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
}/api/v1/colors/palette
Computes color harmonies (complementary, analogous, triadic, monochromatic) for a base hex code, with WCAG 2.1 contrast ratios against black and white.
{ "baseColor": string, "mode"?: "complementary" | "analogous" | "triadic" | "monochromatic" }curl -X POST "https://scraperdevbd.fun/api/v1/colors/palette" \
-H "Content-Type: application/json" \
-d '{
"baseColor": "#6366f1",
"mode": "complementary"
}'{
"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
}/api/v1/regex/test
Tests a pattern and optional flags against a test string, returning matched positions, count, and capture groups.
{ "pattern": string, "flags"?: string, "text": string }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"
}'{
"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
}/api/v1/metadata/inspect
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.
{ "url": string }curl -X POST "https://scraperdevbd.fun/api/v1/metadata/inspect" \
-H "Content-Type: application/json" \
-d '{
"url": "https://scraperdevbd.fun"
}'{
"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
}/api/v1/minecraft/mod-json/validate
Performs schema and semantic checks against Fabric Minecraft mod metadata definitions (`fabric.mod.json`), validating mod ID format, semver version, entrypoints, and licenses.
{ "json": string | object }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"
}
}
}'{
"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
}/api/v1/minecraft/pack-mcmeta/validate
Validates `pack.mcmeta` for datapacks and resource packs, checking pack_format against known Minecraft releases.
{ "json": string | object }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"
}
}
}'{
"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
}/api/v1/css/advanced-gradient
Generate CSS gradient rules, Tailwind inline utility classes, and preset gradients for linear, radial, and conic types with custom color stops.
{ "type": "linear" | "radial" | "conic", "angle"?: number, "stops": [{ "color": string, "position": number }] }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
}
]
}'{
"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
}/api/v1/text/lorem
Generate customized placeholder text for design mockups, wireframes, and API test payloads with optional HTML paragraph tag wrapping.
| Parameter | Type | Required | Description | Default |
|---|---|---|---|---|
| count | number | No | Number of units to generate (1-20) | 3 |
| type | string | No | Unit type: 'paragraphs', 'sentences', or 'words' | paragraphs |
| html | boolean | No | Wrap in <p> HTML tags | false |
curl -X GET "https://scraperdevbd.fun/api/v1/text/lorem?count=2&type=paragraphs"{
"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
}