Dokumentasi API devpack: Gratis, Tanpa Daftar

Terjemahan ini hanya untuk informasi. Versi bahasa Inggris yang berlaku secara hukum.

Tambahkan ke ChromeTambahkan ke Firefox

Gunakan tools devpack yang paling berguna langsung dari kode kamu. API ini gratis, tidak perlu daftar, dan mengembalikan JSON. Setiap endpoint menerima GET dengan query parameter atau POST dengan body JSON.

Semua endpoint

Mulai cepat

Base URL-nya adalah http://localhost:3000/v1.

curl "http://localhost:3000/v1/hash?text=hello"

JavaScript

const res = await fetch('http://localhost:3000/v1/uuid?count=2');
const { ok, data, error } = await res.json();
if (!ok) throw new Error(error.message);
console.log(data.uuids);

Python

import requests

r = requests.post('http://localhost:3000/v1/json-format', json={'json': '{"a":1}'})
print(r.json()['data']['formatted'])

Kirim data rahasia, seperti token atau password, di body POST, bukan di URL, karena URL bisa tercatat di log. API ini bisa dipanggil langsung dari browser (CORS terbuka). Deskripsi OpenAPI yang bisa dibaca mesin juga tersedia.

Contoh kode

Klien JavaScript dan Python yang siap pakai, skrip laporan kesehatan website, dan tutorial langkah demi langkah tersedia di GitHub: devpack API examples.

Respons

Panggilan yang berhasil mengembalikan {"ok": true, "data": {…}}. Panggilan yang gagal mengembalikan error dengan kode yang konsisten:

{
  "ok": false,
  "error": { "code": "invalid_request", "message": "Missing required parameter: text" }
}
StatusKodeArti
400invalid_requestParameter kurang atau tidak valid
401invalid_keyAPI key tidak valid
404not_foundEndpoint tidak dikenal
429rate_limitedBatas tercapai. Tunggu selama Retry-After detik
502upstream_errorSitus atau layanan yang dicek gagal merespons
503unavailableAPI sedang tidak aktif sementara

Batas penggunaan

Tidak perlu key. Penggunaan gratis dihitung per alamat IP:

JenisBatas
Teks, generator, dan konversi60 request per menit
Pengecekan jaringan15 request per menit
Semua request gabungan1.000 request per hari

Setiap respons menyertakan header X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-RateLimit-Daily-Limit, dan X-RateLimit-Daily-Remaining.

Kunci API

Kunci tidak diperlukan untuk penggunaan gratis. Jika kamu sudah diberi kunci, kirimkan melalui header:

curl -H "X-API-Key: YOUR_KEY" "http://localhost:3000/v1/uuid"

Butuh batas yang lebih tinggi? Hubungi kami.

Penggunaan wajar dan privasi

API ini disediakan apa adanya, sesuai Ketentuan kami. Hanya cek situs yang memang kamu boleh uji, dan jangan gunakan API untuk membebani layanan apa pun. Kami tidak menyimpan teks yang kamu kirim. Pengecekan jaringan hanya bisa menjangkau alamat publik. Batas dan endpoint dapat berubah; perubahan yang tidak kompatibel akan dirilis dalam versi baru.

Teks dan data

/v1/hash

GETPOST

Hash teks dengan MD5 atau SHA.

Parameter

NamaTipeWajibDeskripsi
textstringYaTeks yang akan di-hash, maksimal 100 KB
algorithmstringTidakmd5, sha1, sha256 (bawaan), sha384 atau sha512
encodingstringTidakhex (bawaan) atau base64

Permintaan

curl "http://localhost:3000/v1/hash?text=hello&algorithm=sha256"

Respons

{
  "ok": true,
  "data": {
    "algorithm": "sha256",
    "encoding": "hex",
    "hash": "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824"
  }
}

/v1/base64

GETPOST

Encode atau decode Base64.

Parameter

NamaTipeWajibDeskripsi
textstringYaInput, maksimal 100 KB
actionstringTidakencode (bawaan) atau decode
url_safebooleanTidakGunakan alfabet yang aman untuk URL. Bawaan false

Permintaan

curl "http://localhost:3000/v1/base64?text=hello+world&action=encode"

Respons

{
  "ok": true,
  "data": {
    "action": "encode",
    "result": "aGVsbG8gd29ybGQ="
  }
}

/v1/url-encode

GETPOST

Lakukan percent-encode atau decode pada string.

Parameter

NamaTipeWajibDeskripsi
textstringYaInput, maksimal 100 KB
actionstringTidakencode (bawaan) atau decode

Permintaan

curl "http://localhost:3000/v1/url-encode?text=a+b%26c%3Dd&action=encode"

Respons

{
  "ok": true,
  "data": {
    "action": "encode",
    "result": "a%20b%26c%3Dd"
  }
}

/v1/slug

GETPOST

Ubah teks menjadi slug URL.

Parameter

NamaTipeWajibDeskripsi
textstringYaTeks yang akan dikonversi
separatorstringTidak- (bawaan) atau _

Permintaan

curl "http://localhost:3000/v1/slug?text=Hello%2C+W%C3%B6rld%21+It%E2%80%99s+2026"

Respons

{
  "ok": true,
  "data": {
    "slug": "hello-world-its-2026"
  }
}

/v1/text-stats

GETPOST

Hitung kata, karakter, baris, dan waktu baca.

Parameter

NamaTipeWajibDeskripsi
textstringYaTeks, maksimal 100 KB

Permintaan

curl "http://localhost:3000/v1/text-stats?text=One+two+three.+Four+five%21"

Respons

{
  "ok": true,
  "data": {
    "characters": 25,
    "charactersNoSpaces": 21,
    "words": 5,
    "sentences": 2,
    "lines": 1,
    "readingTimeSeconds": 2
  }
}

/v1/json-format

GETPOST

Validasi JSON, lalu format rapi atau minify.

Parameter

NamaTipeWajibDeskripsi
jsonstringYaTeks JSON, maksimal 100 KB
indentintegerTidakJumlah spasi per level, 0–8. Bawaan 2
minifybooleanTidakHapus semua spasi kosong. Bawaan false

Permintaan

curl "http://localhost:3000/v1/json-format?json=%7B%22name%22%3A%22devpack%22%2C%22tools%22%3A500%7D&indent=2"

Respons

{
  "ok": true,
  "data": {
    "valid": true,
    "formatted": "{\n  \"name\": \"devpack\",\n  \"tools\": 500\n}"
  }
}

/v1/jwt-decode

GETPOST

Decode JWT tanpa memverifikasi tanda tangannya.

Parameter

NamaTipeWajibDeskripsi
tokenstringYaJWT-nya

Permintaan

curl "http://localhost:3000/v1/jwt-decode?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjMiLCJuYW1lIjoiQWRhIiwiZXhwIjo0MTAyNDQ0ODAwfQ.c2lnbmF0dXJl"

Respons

{
  "ok": true,
  "data": {
    "header": {
      "alg": "HS256",
      "typ": "JWT"
    },
    "payload": {
      "sub": "123",
      "name": "Ada",
      "exp": 4102444800
    },
    "expired": false,
    "signatureVerified": false
  }
}

/v1/sort-lines

GETPOST

Urutkan baris teks.

Parameter

NamaTipeWajibDeskripsi
textstringYaSatu item per baris, maksimal 100 KB
orderstringTidakasc (bawaan) atau desc
numericbooleanTidakBandingkan angka berdasarkan nilainya. Bawaan false

Permintaan

curl "http://localhost:3000/v1/sort-lines?text=pear%0Aapple%0Amango&order=asc"

Respons

{
  "ok": true,
  "data": {
    "lines": 3,
    "result": "apple\nmango\npear"
  }
}

/v1/dedupe-lines

GETPOST

Hapus baris duplikat, dengan menyimpan kemunculan pertama.

Parameter

NamaTipeWajibDeskripsi
textstringYaSatu item per baris, maksimal 100 KB
ignore_casebooleanTidakAnggap A dan a sama. Bawaan false
trimbooleanTidakAbaikan spasi di awal dan akhir baris. Bawaan true

Permintaan

curl "http://localhost:3000/v1/dedupe-lines?text=one%0Atwo%0Aone%0ATwo&ignore_case=true"

Respons

{
  "ok": true,
  "data": {
    "before": 4,
    "after": 2,
    "removed": 2,
    "result": "one\ntwo"
  }
}

/v1/find-replace

GETPOST

Cari dan ganti teks biasa.

Parameter

NamaTipeWajibDeskripsi
textstringYaTeks, maksimal 100 KB
findstringYaTeks yang dicari
replacestringTidakTeks pengganti. Bawaan: kosong
ignore_casebooleanTidakAbaikan huruf besar dan kecil. Bawaan false

Permintaan

curl "http://localhost:3000/v1/find-replace?text=Hello+world%2C+hello+there&find=hello&replace=Hi&ignore_case=true"

Respons

{
  "ok": true,
  "data": {
    "replacements": 2,
    "result": "Hi world, Hi there"
  }
}

/v1/word-frequency

GETPOST

Hitung seberapa sering setiap kata muncul.

Parameter

NamaTipeWajibDeskripsi
textstringYaTeks, maksimal 100 KB
limitintegerTidakJumlah kata yang ditampilkan, 1–100. Bawaan 20

Permintaan

curl "http://localhost:3000/v1/word-frequency?text=the+cat+and+the+dog+and+the+bird&limit=3"

Respons

{
  "ok": true,
  "data": {
    "total": 8,
    "unique": 5,
    "words": [
      {
        "word": "the",
        "count": 3,
        "percent": 37.5
      },
      {
        "word": "and",
        "count": 2,
        "percent": 25
      },
      {
        "word": "bird",
        "count": 1,
        "percent": 12.5
      }
    ]
  }
}

/v1/case-convert

GETPOST

Ubah huruf kapital teks, seperti camelCase atau snake_case.

Parameter

NamaTipeWajibDeskripsi
textstringYaTeks, maksimal 100 KB
tostringYalower, upper, title, sentence, camel, pascal, snake, kebab atau constant

Permintaan

curl "http://localhost:3000/v1/case-convert?text=Hello+big+world&to=snake"

Respons

{
  "ok": true,
  "data": {
    "to": "snake",
    "result": "hello_big_world"
  }
}

/v1/html-entities

GETPOST

Escape atau unescape entitas HTML.

Parameter

NamaTipeWajibDeskripsi
textstringYaTeks, maksimal 100 KB
actionstringTidakencode (bawaan) atau decode

Permintaan

curl "http://localhost:3000/v1/html-entities?text=%3Ca+href%3D%22%2F%22%3ETom+%26+Jerry%3C%2Fa%3E&action=encode"

Respons

{
  "ok": true,
  "data": {
    "action": "encode",
    "result": "<a href="/">Tom & Jerry</a>"
  }
}

/v1/csv-to-json

GETPOST

Konversi CSV ke JSON.

Parameter

NamaTipeWajibDeskripsi
csvstringYaCSV, maksimal 100 KB
delimiterstringTidakcomma (bawaan), semicolon, tab atau pipe
headerbooleanTidakBaris pertama berisi nama kolom. Bawaan true

Permintaan

curl "http://localhost:3000/v1/csv-to-json?csv=name%2Cage%0AAda%2C36%0AGrace%2C45"

Respons

{
  "ok": true,
  "data": {
    "rows": 2,
    "columns": [
      "name",
      "age"
    ],
    "data": [
      {
        "name": "Ada",
        "age": "36"
      },
      {
        "name": "Grace",
        "age": "45"
      }
    ]
  }
}

/v1/json-to-csv

GETPOST

Konversi array objek JSON ke CSV.

Parameter

NamaTipeWajibDeskripsi
jsonstringYaArray JSON berisi objek, maksimal 100 KB

Permintaan

curl "http://localhost:3000/v1/json-to-csv?json=%5B%7B%22name%22%3A%22Ada%22%2C%22age%22%3A36%7D%2C%7B%22name%22%3A%22Grace%22%2C%22age%22%3A45%7D%5D"

Respons

{
  "ok": true,
  "data": {
    "rows": 2,
    "columns": [
      "name",
      "age"
    ],
    "csv": "name,age\nAda,36\nGrace,45"
  }
}

Generator

/v1/uuid

GETPOST

Buat UUID versi 4 secara acak.

Parameter

NamaTipeWajibDeskripsi
countintegerTidak1–100. Bawaan 1

Permintaan

curl "http://localhost:3000/v1/uuid?count=2"

Respons

{
  "ok": true,
  "data": {
    "uuids": [
      "8ef6c45b-f370-4158-9da1-62fd36618762",
      "d1efb561-dc83-47f4-9c8d-1c5d4e7ed230"
    ]
  }
}

/v1/password

GETPOST

Buat kata sandi acak yang kuat.

Parameter

NamaTipeWajibDeskripsi
lengthintegerTidak8–128. Bawaan 20
countintegerTidak1–50. Bawaan 1
symbolsbooleanTidakSertakan simbol. Bawaan true
numbersbooleanTidakSertakan angka. Bawaan true
uppercasebooleanTidakSertakan huruf kapital. Bawaan true

Permintaan

curl "http://localhost:3000/v1/password?length=16&count=1"

Respons

{
  "ok": true,
  "data": {
    "passwords": [
      "!8ZSoA_n?cqA#t-6"
    ]
  }
}

/v1/nanoid

GETPOST

Buat ID acak yang pendek dan aman untuk URL.

Parameter

NamaTipeWajibDeskripsi
sizeintegerTidakPanjang, 4–64. Bawaan 21
countintegerTidak1–100. Bawaan 1

Permintaan

curl "http://localhost:3000/v1/nanoid?size=12&count=2"

Respons

{
  "ok": true,
  "data": {
    "ids": [
      "GLVwmQgV1D-u",
      "ikxhPJAC2-b8"
    ]
  }
}

/v1/hmac

GETPOST

Buat tanda tangan HMAC, misalnya untuk menandatangani webhook.

Parameter

NamaTipeWajibDeskripsi
textstringYaPesan, maksimal 100 KB
secretstringYaKunci rahasia. Kirim di body POST
algorithmstringTidaksha1, sha256 (bawaan) atau sha512
encodingstringTidakhex (bawaan) atau base64

Permintaan

curl "http://localhost:3000/v1/hmac?text=hello&secret=my-secret"

Respons

{
  "ok": true,
  "data": {
    "algorithm": "sha256",
    "encoding": "hex",
    "signature": "7c1ce32402750db1149385ac20603beeaca8909906d1e81c08f4f5c7db8fbe94"
  }
}

/v1/lorem-ipsum

GETPOST

Buat teks placeholder.

Parameter

NamaTipeWajibDeskripsi
paragraphsintegerTidak1–20. Bawaan 1
wordsintegerTidakJumlah kata per paragraf, 5–200. Bawaan 40

Permintaan

curl "http://localhost:3000/v1/lorem-ipsum?paragraphs=1&words=12"

Respons

{
  "ok": true,
  "data": {
    "paragraphs": [
      "Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor."
    ]
  }
}

/v1/random

GETPOST

Buat bilangan bulat acak yang aman.

Parameter

NamaTipeWajibDeskripsi
minintegerTidakNilai terkecil. Bawaan 1
maxintegerTidakNilai terbesar. Bawaan 100
countintegerTidak1–100. Bawaan 1
uniquebooleanTidakTanpa pengulangan. Bawaan false

Permintaan

curl "http://localhost:3000/v1/random?min=1&max=6&count=2"

Respons

{
  "ok": true,
  "data": {
    "numbers": [
      2,
      4
    ]
  }
}

Konversi

/v1/color

GETPOST

Konversi warna antara hex, RGB, dan HSL.

Parameter

NamaTipeWajibDeskripsi
valuestringYaContoh: #ff6600, rgb(255, 102, 0), atau hsl(24, 100%, 50%)

Request

curl "http://localhost:3000/v1/color?value=%23ff6600"

Response

{
  "ok": true,
  "data": {
    "hex": "#ff6600",
    "rgb": {
      "r": 255,
      "g": 102,
      "b": 0
    },
    "hsl": {
      "h": 24,
      "s": 100,
      "l": 50
    },
    "css": {
      "rgb": "rgb(255, 102, 0)",
      "hsl": "hsl(24, 100%, 50%)"
    }
  }
}

/v1/timestamp

GETPOST

Konversi antara waktu Unix dan tanggal ISO 8601.

Parameter

NamaTipeWajibDeskripsi
valuestringTidakDetik Unix, milidetik Unix, atau tanggal ISO. Default: sekarang

Request

curl "http://localhost:3000/v1/timestamp?value=1798761600"

Response

{
  "ok": true,
  "data": {
    "unix": 1798761600,
    "unixMs": 1798761600000,
    "iso": "2027-01-01T00:00:00.000Z",
    "utc": "Fri, 01 Jan 2027 00:00:00 GMT"
  }
}

/v1/url-parse

GETPOST

Pecah URL menjadi bagian-bagiannya.

Parameter

NamaTipeWajibDeskripsi
urlstringYaURL yang akan diurai

Request

curl "http://localhost:3000/v1/url-parse?url=https%3A%2F%2Fdevpack.app%3A8443%2Ftools%3Fq%3Djson%26page%3D2%23top"

Response

{
  "ok": true,
  "data": {
    "protocol": "https",
    "host": "devpack.app",
    "port": "8443",
    "path": "/tools",
    "query": {
      "q": "json",
      "page": "2"
    },
    "hash": "top",
    "origin": "https://devpack.app:8443"
  }
}

/v1/number-base

GETPOST

Konversi bilangan bulat antara basis 2 dan 36.

Parameter

NamaTipeWajibDeskripsi
valuestringYaAngka yang akan dikonversi
fromintegerTidakBasis input. Default 10
tointegerTidakBasis output. Default 16

Request

curl "http://localhost:3000/v1/number-base?value=255&from=10&to=16"

Response

{
  "ok": true,
  "data": {
    "result": "ff",
    "decimal": "255"
  }
}

/v1/unit-convert

GETPOST

Konversi satuan panjang, berat, suhu, data, dan waktu.

Parameter

NamaTipeWajibDeskripsi
valuenumberYaJumlah
fromstringYam, km, cm, mm, in, ft, yd, mi, kg, g, mg, lb, oz, t, c, f, k, b, kb, mb, gb, tb, kib, mib, gib, ms, s, min, h, d, wk
tostringYaSatuan tujuan, dari jenis yang sama

Request

curl "http://localhost:3000/v1/unit-convert?value=10&from=km&to=mi"

Response

{
  "ok": true,
  "data": {
    "value": 10,
    "from": "km",
    "to": "mi",
    "result": 6.21371192237
  }
}

/v1/date-diff

GETPOST

Cari selisih waktu antara dua tanggal.

Parameter

NamaTipeWajibDeskripsi
fromstringYaTanggal awal, dalam format ISO
tostringTidakTanggal akhir. Default: sekarang

Request

curl "http://localhost:3000/v1/date-diff?from=2026-01-01&to=2026-10-30"

Response

{
  "ok": true,
  "data": {
    "days": 302,
    "weeks": 43.14,
    "hours": 7248,
    "minutes": 434880,
    "seconds": 26092800
  }
}

/v1/cron-next

GETPOST

Tampilkan waktu eksekusi berikutnya dari ekspresi cron, dalam UTC.

Parameter

NamaTipeWajibDeskripsi
expressionstringYaLima bagian: menit jam hari bulan hari-dalam-minggu
countintegerTidak1–20. Default 5
fromstringTidakTanggal awal. Default: sekarang

Request

curl "http://localhost:3000/v1/cron-next?expression=0+9+*+*+1&count=2&from=2026-10-30T00%3A00%3A00Z"

Response

{
  "ok": true,
  "data": {
    "expression": "0 9 * * 1",
    "runs": [
      "2026-11-02T09:00:00.000Z",
      "2026-11-09T09:00:00.000Z"
    ]
  }
}

/v1/roman-numeral

GETPOST

Konversi antara angka dan angka Romawi.

Parameter

NamaTipeWajibDeskripsi
valuestringYaAngka dari 1 sampai 3999, atau angka Romawi

Request

curl "http://localhost:3000/v1/roman-numeral?value=2026"

Response

{
  "ok": true,
  "data": {
    "number": 2026,
    "roman": "MMXXVI"
  }
}

/v1/percentage

GETPOST

Hitung persentase dan perubahan persentase.

Parameter

NamaTipeWajibDeskripsi
valuenumberYaAngka pertama
ofnumberYaAngka kedua
modestringTidakpercent_of (default: nilai% dari “of”), what_percent (nilai adalah berapa % dari “of”), atau change (dari nilai ke “of”)

Request

curl "http://localhost:3000/v1/percentage?value=20&of=150&mode=percent_of"

Response

{
  "ok": true,
  "data": {
    "mode": "percent_of",
    "result": 30
  }
}

/v1/date-add

GETPOST

Tambah atau kurangi waktu dari sebuah tanggal.

Parameter

NamaTipeWajibDeskripsi
datestringYaTanggal awal, dalam format ISO
daysintegerTidakJumlah hari yang ditambahkan. Gunakan tanda minus untuk mengurangi
monthsintegerTidakJumlah bulan yang ditambahkan
yearsintegerTidakJumlah tahun yang ditambahkan

Request

curl "http://localhost:3000/v1/date-add?date=2026-10-31&days=30"

Response

{
  "ok": true,
  "data": {
    "result": "2026-11-30",
    "iso": "2026-11-30T00:00:00.000Z",
    "weekday": "Monday"
  }
}

/v1/age

GETPOST

Hitung usia dalam tahun, bulan, dan hari.

Parameter

NamaTipeWajibDeskripsi
birthdatestringYaTanggal lahir, dalam format ISO
onstringTidakTanggal yang dijadikan acuan. Default: hari ini

Request

curl "http://localhost:3000/v1/age?birthdate=1990-05-15&on=2026-10-31"

Response

{
  "ok": true,
  "data": {
    "years": 36,
    "months": 5,
    "days": 16,
    "totalDays": 13318
  }
}

/v1/http-status

GETPOST

Cari arti kode status HTTP.

Parameter

NamaTipeWajibDeskripsi
codeintegerYa100–599

Request

curl "http://localhost:3000/v1/http-status?code=404"

Response

{
  "ok": true,
  "data": {
    "code": 404,
    "name": "Not Found",
    "class": "Client error",
    "docs": "http://localhost:3000/http-status-codes/404"
  }
}

/v1/user-agent

GETPOST

Urai string user agent. Secara default menggunakan milik pemanggil.

Parameter

NamaTipeWajibDeskripsi
uastringTidakString user agent

Request

curl "http://localhost:3000/v1/user-agent?ua=Mozilla%2F5.0+%28Windows+NT+10.0%3B+Win64%3B+x64%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F130.0.0.0+Safari%2F537.36"

Response

{
  "ok": true,
  "data": {
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36",
    "browser": {
      "name": "Chrome",
      "version": "130.0.0.0"
    },
    "os": {
      "name": "Windows",
      "version": "10.0"
    },
    "device": "desktop",
    "bot": false
  }
}

Pemasaran

/v1/ab-test

GETPOST

Cek apakah hasil uji A/B signifikan secara statistik.

Parameter

NamaTipeWajibDeskripsi
visitors_aintegerYaPengunjung untuk versi A
conversions_aintegerYaKonversi untuk versi A
visitors_bintegerYaPengunjung untuk versi B
conversions_bintegerYaKonversi untuk versi B
confidenceintegerTidak90, 95 (default) atau 99

Permintaan

curl "http://localhost:3000/v1/ab-test?visitors_a=1000&conversions_a=100&visitors_b=1000&conversions_b=130"

Respons

{
  "ok": true,
  "data": {
    "rateA": 0.1,
    "rateB": 0.13,
    "uplift": 0.3,
    "zScore": 2.1027,
    "pValue": 0.035488,
    "confidence": 95,
    "significant": true,
    "winner": "B"
  }
}

/v1/ab-sample-size

GETPOST

Hitung berapa pengunjung yang dibutuhkan untuk uji A/B.

Parameter

NamaTipeWajibDeskripsi
baselinenumberYaTingkat konversi saat ini dalam persen, misalnya 5
changenumberYaPerubahan relatif terkecil yang ingin dideteksi dalam persen, misalnya 20
confidenceintegerTidak90, 95 (default) atau 99
powerintegerTidak80 (default) atau 90
daily_visitorsintegerTidakPengunjung harian, untuk memperkirakan durasi uji

Permintaan

curl "http://localhost:3000/v1/ab-sample-size?baseline=5&change=20&daily_visitors=1000"

Respons

{
  "ok": true,
  "data": {
    "perVersion": 8158,
    "total": 16316,
    "expectedRate": 6,
    "days": 17
  }
}

/v1/roas

GETPOST

Hitung return on ad spend (ROAS) dan ROAS titik impas.

Parameter

NamaTipeWajibDeskripsi
spendnumberYaBelanja iklan
revenuenumberYaPendapatan dari iklan
marginnumberTidakMargin keuntungan dalam persen, untuk ROAS titik impas

Permintaan

curl "http://localhost:3000/v1/roas?spend=1000&revenue=4000&margin=40"

Respons

{
  "ok": true,
  "data": {
    "roas": 4,
    "roasPercent": 400,
    "net": 3000,
    "breakEvenRoas": 2.5,
    "profit": 600
  }
}

/v1/ad-metrics

GETPOST

Hitung CPM, CPC, CTR, CPA, dan tingkat konversi.

Parameter

NamaTipeWajibDeskripsi
costnumberYaBelanja iklan
impressionsintegerTidakImpresi
clicksintegerTidakKlik
conversionsintegerTidakKonversi

Permintaan

curl "http://localhost:3000/v1/ad-metrics?cost=500&impressions=20000&clicks=400&conversions=20"

Respons

{
  "ok": true,
  "data": {
    "cpm": 25,
    "cpc": 1.25,
    "ctr": 2,
    "conversionRate": 5,
    "cpa": 25
  }
}

/v1/profit-margin

GETPOST

Hitung laba, margin, dan markup.

Parameter

NamaTipeWajibDeskripsi
costnumberYaBiaya
pricenumberYaHarga jual

Permintaan

curl "http://localhost:3000/v1/profit-margin?cost=75&price=100"

Respons

{
  "ok": true,
  "data": {
    "profit": 25,
    "marginPercent": 25,
    "markupPercent": 33.33
  }
}

Jaringan

/v1/ip

GETPOST

Mengembalikan alamat IP pemanggil.

Permintaan

curl "http://localhost:3000/v1/ip"

Respons

{
  "ok": true,
  "data": {
    "ip": "203.0.113.42",
    "version": "IPv4"
  }
}

/v1/dns

GETPOST

Cari rekaman DNS. Cek jaringan

Parameter

NamaTipeWajibDeskripsi
domainstringYaDomain atau alamat IPv4
typesstringTidakDipisah koma: A, AAAA, CNAME, MX, TXT, NS, SOA, CAA, SRV, PTR. Default: set umum

Permintaan

curl "http://localhost:3000/v1/dns?domain=example.com&types=A%2CMX"

Respons

{
  "ok": true,
  "data": {
    "domain": "example.com",
    "results": [
      {
        "type": "A",
        "status": 0,
        "records": [
          {
            "name": "example.com",
            "ttl": 300,
            "type": "A",
            "data": "93.184.215.14"
          }
        ]
      },
      {
        "type": "MX",
        "status": 0,
        "records": [
          {
            "name": "example.com",
            "ttl": 3600,
            "type": "MX",
            "data": "0 mail.example.com."
          }
        ]
      }
    ],
    "resolver": "Cloudflare 1.1.1.1 (DNS over HTTPS)"
  }
}

/v1/ssl

GETPOST

Cek sertifikat SSL sebuah situs. Cek jaringan

Parameter

NamaTipeWajibDeskripsi
domainstringYaNama host

Permintaan

curl "http://localhost:3000/v1/ssl?domain=example.com"

Respons

{
  "ok": true,
  "data": {
    "host": "example.com",
    "valid": true,
    "protocol": "TLSv1.3",
    "daysLeft": 74,
    "hostnameMatches": true,
    "sans": [
      "example.com",
      "www.example.com"
    ],
    "issuer": {
      "C": "US",
      "O": "Example CA",
      "CN": "Example CA R1"
    },
    "validFrom": "Oct 1 00:00:00 2026 GMT",
    "validTo": "Jan 12 23:59:59 2027 GMT"
  }
}

/v1/status

GETPOST

Cek apakah sebuah website aktif. Cek jaringan

Parameter

NamaTipeWajibDeskripsi
urlstringYaHalaman yang akan dicek

Permintaan

curl "http://localhost:3000/v1/status?url=https%3A%2F%2Fexample.com"

Respons

{
  "ok": true,
  "data": {
    "url": "https://example.com/",
    "finalUrl": "https://example.com/",
    "up": true,
    "status": 200,
    "time": 182,
    "ttfb": 96,
    "title": "Example Domain",
    "server": "cloudflare",
    "checkedAt": "2026-10-30T12:00:00.000Z"
  }
}

/v1/headers

GETPOST

Baca header HTTP dan beri nilai header keamanan. Cek jaringan

Parameter

NamaTipeWajibDeskripsi
urlstringYaHalaman yang akan dicek

Permintaan

curl "http://localhost:3000/v1/headers?url=https%3A%2F%2Fexample.com"

Respons

{
  "ok": true,
  "data": {
    "url": "https://example.com/",
    "status": 200,
    "headers": {
      "content-type": "text/html",
      "server": "cloudflare"
    },
    "security": {
      "score": 25,
      "grade": "E",
      "https": true,
      "missing": [
        "Content-Security-Policy",
        "X-Frame-Options"
      ]
    }
  }
}

/v1/redirects

GETPOST

Telusuri rantai redirect sebuah URL. Cek jaringan

Parameter

NamaTipeWajibDeskripsi
urlstringYaURL yang akan ditelusuri

Permintaan

curl "http://localhost:3000/v1/redirects?url=http%3A%2F%2Fexample.com"

Respons

{
  "ok": true,
  "data": {
    "requested": "http://example.com/",
    "final": "https://example.com/",
    "status": 200,
    "chain": [
      {
        "url": "http://example.com/",
        "status": 301,
        "time": 88
      },
      {
        "url": "https://example.com/",
        "status": 200,
        "time": 126
      }
    ],
    "totalTime": 214
  }
}

/v1/whois

GETPOST

Cari data registrasi domain atau IP (RDAP). Cek jaringan

Parameter

NamaTipeWajibDeskripsi
querystringYaDomain atau alamat IP

Permintaan

curl "http://localhost:3000/v1/whois?query=example.com"

Respons

{
  "ok": true,
  "data": {
    "kind": "domain",
    "query": "example.com",
    "domain": "EXAMPLE.COM",
    "source": "https://rdap.verisign.com/com/v1/domain/example.com",
    "status": [
      "client delete prohibited"
    ],
    "registrar": "Example Registrar",
    "ianaId": "376",
    "created": "1995-08-14T04:00:00Z",
    "updated": "2026-08-14T08:01:43Z",
    "expires": "2027-08-13T04:00:00Z",
    "dnssec": true,
    "nameservers": [
      "ns1.example.net",
      "ns2.example.net"
    ],
    "entities": []
  }
}

/v1/meta

GETPOST

Baca judul, deskripsi, dan tag sosial sebuah halaman. Cek jaringan

Parameter

NamaTipeWajibDeskripsi
urlstringYaHalaman yang akan dibaca

Permintaan

curl "http://localhost:3000/v1/meta?url=https%3A%2F%2Fexample.com"

Respons

{
  "ok": true,
  "data": {
    "url": "https://example.com/",
    "status": 200,
    "title": "Example Domain",
    "description": "An example page.",
    "canonical": "https://example.com/",
    "robots": null,
    "openGraph": {
      "title": "Example Domain",
      "description": "An example page.",
      "image": "https://example.com/og.png"
    },
    "twitter": {
      "card": "summary_large_image",
      "image": "https://example.com/og.png"
    }
  }
}

/v1/robots

GETPOST

Baca robots.txt sebuah situs dan uji apakah sebuah path diizinkan. Cek jaringan

Parameter

NamaTipeWajibDeskripsi
urlstringYaHalaman atau situs
user_agentstringTidakCrawler yang akan diuji. Default Googlebot

Permintaan

curl "http://localhost:3000/v1/robots?url=https%3A%2F%2Fexample.com%2F&user_agent=Googlebot"

Respons

{
  "ok": true,
  "data": {
    "exists": true,
    "test": {
      "path": "/",
      "ua": "Googlebot",
      "allowed": true,
      "rule": null,
      "group": "*"
    },
    "bots": [
      {
        "bot": "Googlebot",
        "allowed": true,
        "rule": null,
        "group": "*"
      },
      {
        "bot": "GPTBot",
        "allowed": false,
        "rule": "/",
        "group": "gptbot"
      }
    ]
  }
}

/v1/email-dns

GETPOST

Cek pengaturan email MX, SPF, dan DMARC sebuah domain. Cek jaringan

Parameter

NamaTipeWajibDeskripsi
domainstringYaDomain

Permintaan

curl "http://localhost:3000/v1/email-dns?domain=example.com"

Respons

{
  "ok": true,
  "data": {
    "domain": "example.com",
    "checks": [
      {
        "id": "spf",
        "status": "ok",
        "title": "SPF valid · 0/10 lookups · -all",
        "detail": "v=spf1 -all"
      },
      {
        "id": "dmarc",
        "status": "ok",
        "title": "DMARC enforced · p=reject",
        "detail": "v=DMARC1;p=reject"
      }
    ]
  }
}

/v1/tech

GETPOST

Deteksi teknologi yang dipakai sebuah website. Cek jaringan

Parameter

NamaTipeWajibDeskripsi
urlstringYaSitus yang akan dicek

Permintaan

curl "http://localhost:3000/v1/tech?url=https%3A%2F%2Fexample.com"

Respons

{
  "ok": true,
  "data": {}
}