Free Developer Data API

Generate and validate developer utilities, country-specific test data, text transforms, hashes, dates, math helpers and QA fixtures. No API key required.

No API key requiredCORS enabledJSON responses109 endpointsOpenAPI JSON
BASE URLhttps://www.4devtool.com/api

Quick start

Public endpoints return JSON and are designed for QA, demos, testing, automation, fixtures, country-specific form testing and browser-based development workflows.

curl
curl "https://www.4devtool.com/api/generate/uuid?count=3"
JavaScript
const response = await fetch("https://www.4devtool.com/api/generate/uuid?count=3");
const data = await response.json();
console.log(data);

Authentication

Authentication is not required. All public endpoints can be used without an API key.

Rate limits

Rate limits may be applied to protect service availability. Avoid excessive automated requests and cache responses when possible.

Responsible use

The API is intended for testing, QA, demos, development and automation. Generated values are for controlled test workflows, not real registrations, impersonation, financial activity or illegal use.

Examples by use case

Argentina

8
GET/generate/cbuGenerate Argentine CBU

Generate Argentine CBU

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/cuilGenerate Argentine CUIL

Generate Argentine CUIL

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/cuitGenerate Argentine CUIT

Generate Argentine CUIT

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/dni-arGenerate Argentine DNI

Generate Argentine DNI

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/cbuValidate Argentine CBU checksum

Validate Argentine CBU checksum

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/cuilValidate Argentine CUIL

Validate Argentine CUIL

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/cuitValidate Argentine CUIT

Validate Argentine CUIT

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/dni-arValidate Argentine DNI format

Validate Argentine DNI format

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example

Brazil

12
GET/generate/cepGenerate Brazilian CEP

Generate Brazilian CEP

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/cnhGenerate Brazilian CNH-like value

Generate Brazilian CNH-like value

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/cnpjGenerate Brazilian CNPJ

Generate Brazilian CNPJ

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/cnpj-alphaGenerate Brazilian alphanumeric CNPJ (new format)

Generates a CNPJ with alphanumeric characters (A–Z, 0–9) in the 8-character base, as required by the new Brazilian legislation effective 2026. Check digits are computed with the same modulo-11 algorithm.

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/cpfGenerate Brazilian CPF

Generate Brazilian CPF

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/pisGenerate Brazilian PIS/PASEP-like value

Generate Brazilian PIS/PASEP-like value

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/rgGenerate Brazilian RG

Generate Brazilian RG

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/cepValidate Brazilian CEP format

Validate Brazilian CEP format

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/cnhValidate Brazilian CNH format

Validate Brazilian CNH format

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/cnpjValidate Brazilian CNPJ

Validate Brazilian CNPJ

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/cpfValidate Brazilian CPF

Validate Brazilian CPF

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/rgValidate Brazilian RG format

Validate Brazilian RG format

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example

France

6
GET/generate/nirGenerate French NIR

Generate French NIR

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/sirenGenerate French SIREN

Generate French SIREN

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/siretGenerate French SIRET

Generate French SIRET

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/nirValidate French NIR key

Validate French NIR key

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/sirenValidate French SIREN

Validate French SIREN

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/siretValidate French SIRET

Validate French SIRET

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example

Germany

3
GET/generate/plzGenerate German postal code

Generate German postal code

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/steueridGenerate German Steuer-ID

Generate German Steuer-ID

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/steueridValidate German Steuer-ID

Validate German Steuer-ID

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example

India

12
GET/generate/aadhaarGenerate Indian Aadhaar

Generate Indian Aadhaar

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/gstinGenerate Indian GSTIN-like value

Generate Indian GSTIN-like value

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/ifscGenerate Indian IFSC

Generate Indian IFSC

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/panGenerate Indian PAN

Generate Indian PAN

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/pin-codeGenerate Indian PIN code

Generate Indian PIN code

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/upiGenerate Indian UPI ID

Generate Indian UPI ID

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/aadhaarValidate Indian Aadhaar

Validate Indian Aadhaar

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/gstinValidate Indian GSTIN format

Validate Indian GSTIN format

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/ifscValidate Indian IFSC format

Validate Indian IFSC format

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/panValidate Indian PAN

Validate Indian PAN

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/pin-codeValidate Indian PIN code format

Validate Indian PIN code format

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/upiValidate Indian UPI ID format

Validate Indian UPI ID format

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example

Italy

4
GET/generate/codicefiscaleGenerate Italian Codice Fiscale

Generate Italian Codice Fiscale

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/pivaGenerate Italian Partita IVA

Generate Italian Partita IVA

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/codicefiscaleValidate Italian Codice Fiscale

Validate Italian Codice Fiscale

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/pivaValidate Italian Partita IVA

Validate Italian Partita IVA

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example

Mexico

8
GET/generate/clabeGenerate Mexican CLABE

Generate Mexican CLABE

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/curpGenerate Mexican CURP

Generate Mexican CURP

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/mx-postal-codeGenerate Mexican postal code

Generate Mexican postal code

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/rfcGenerate Mexican RFC

Generate Mexican RFC

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/clabeValidate Mexican CLABE checksum

Validate Mexican CLABE checksum

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/curpValidate Mexican CURP

Validate Mexican CURP

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/mx-postal-codeValidate Mexican postal code format

Validate Mexican postal code format

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/rfcValidate Mexican RFC

Validate Mexican RFC

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example

Portugal

6
GET/generate/ccptGenerate Portuguese citizen card-like value

Generate Portuguese citizen card-like value

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/nifptGenerate Portuguese NIF

Generate Portuguese NIF

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/nissGenerate Portuguese NISS-like value

Generate Portuguese NISS-like value

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/ccptValidate Portuguese citizen card format

Validate Portuguese citizen card format

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/nifptValidate Portuguese NIF

Validate Portuguese NIF

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/nissValidate Portuguese NISS format

Validate Portuguese NISS format

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example

Spain

6
GET/generate/cifGenerate Spanish CIF

Generate Spanish CIF

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/nieGenerate Spanish NIE

Generate Spanish NIE

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/nifGenerate Spanish NIF

Generate Spanish NIF

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/cifValidate Spanish CIF format

Validate Spanish CIF format

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/nieValidate Spanish NIE

Validate Spanish NIE

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/nifValidate Spanish NIF

Validate Spanish NIF

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example

Synthetic profiles

4
GET/generate/addressGenerate a synthetic address by country

Generate a synthetic address by country

countrystring - optional - default us
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/companyGenerate a synthetic company by country

Generate a synthetic company by country

countrystring - optional - default us
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/nameGenerate a localized name by country

Generate a localized name by country

countrystring - optional - default usgenderstring - optional - default random
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/personGenerate a synthetic person by country

Generate a synthetic person by country

countrystring - optional - default usgenderstring - optional - default random
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example

UK

7
GET/generate/ninoGenerate UK National Insurance Number

Generate UK National Insurance Number

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/postcodeGenerate UK postcode

Generate UK postcode

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/sort-codeGenerate UK sort code

Generate UK sort code

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/utrGenerate UK UTR

Generate UK UTR

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/ninoValidate UK National Insurance Number

Validate UK National Insurance Number

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/sort-codeValidate UK sort code format

Validate UK sort code format

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/utrValidate UK UTR format

Validate UK UTR format

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example

Universal

27
GET/calculate/gcd-lcmCalculate GCD and LCM

Calculate GCD and LCM

No parametersReady to call
Success responseHTTP 200
{
  "value": 10,
  "result": 5
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/calculate/percentageCalculate percentage values

Calculate percentage values

basenumber - optional - example 200Base value used for the percentage calculationpercentagenumber - optional - example 15Percentage to calculate from the base value
Success responseHTTP 200
{
  "success": true,
  "data": {
    "base": 200,
    "percentage": 15,
    "result": 30
  }
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/date/addAdd days to a date

Add days to a date

No parametersReady to call
Success responseHTTP 200
{
  "value": 10,
  "result": 5
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/date/differenceCalculate difference between dates

Calculate difference between dates

startDatestring - optional - example 2026-05-01Start date in YYYY-MM-DD formatendDatestring - optional - example 2026-05-18End date in YYYY-MM-DD format
Success responseHTTP 200
{
  "success": true,
  "data": {
    "startDate": "2026-05-01",
    "endDate": "2026-05-18",
    "days": 17,
    "weeks": 2
  }
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/decode/base64Decode Base64 to a string

Decode Base64 to a string

valuestring - optional
Success responseHTTP 200
{
  "value": "hello world"
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/decode/urlURL-decode a string

URL-decode a string

valuestring - optional
Success responseHTTP 200
{
  "value": "caf? com leite"
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/encode/base64Encode a string to Base64

Encode a string to Base64

valuestring - optional
Success responseHTTP 200
{
  "value": "aGVsbG8gd29ybGQ="
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/encode/urlURL-encode a string

URL-encode a string

valuestring - optional
Success responseHTTP 200
{
  "value": "caf%C3%A9%20com%20leite"
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/credit-cardGenerate test credit card details

Generate test credit card details

No parametersReady to call
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/ibanGenerate IBAN by country

Generate IBAN by country

countrystring - optional - default us
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/loremGenerate placeholder text

Generate placeholder text

No parametersReady to call
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/nicknameGenerate usernames or nicknames

Generate usernames or nicknames

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/passwordGenerate secure passwords

Generate secure passwords

lengthinteger - optional - default 16uppercaseboolean - optional - default truenumbersboolean - optional - default truesymbolsboolean - optional - default falsecountinteger - optional - default 1
Success responseHTTP 200
{
  "value": "f8V#pL29qTz4mA1s"
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/random-numberGenerate random numbers in a range

Generate random numbers in a range

mininteger - optional - default 1maxinteger - optional - default 100countinteger - optional - default 1
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/random-stringGenerate random strings

Generate random strings

No parametersReady to call
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/ulidGenerate ULID identifiers

Generate ULID identifiers

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/uuidGenerate UUID v4

Generate UUID v4

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "6f1f4f70-7f1d-4c4c-9f65-9d7a7d2b4c11",
    "0f3b2c8a-7f3e-4ad1-9c77-0c14a0f1d7ab",
    "a2f3c9d4-12d1-43d0-8b3f-9dbfe1a1c204"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/hashHash a value with SHA algorithms

Hash a value with SHA algorithms

valuestring - requiredalgorithmstring - optional - default sha256
Success responseHTTP 200
{
  "algorithm": "sha256",
  "value": "b94d27b9934d3e08a52e52d7da7dabfade..."
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/transform/caseConvert text case

Convert text case

valuestring - required
Success responseHTTP 200
{
  "value": "converted-result"
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/transform/html-entitiesEscape or unescape HTML entities

Escape or unescape HTML entities

valuestring - required
Success responseHTTP 200
{
  "value": "converted-result"
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/transform/remove-accentsRemove accents from text

Remove accents from text

valuestring - required
Success responseHTTP 200
{
  "value": "Integracoes e automacao"
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/transform/reverseReverse text

Reverse text

valuestring - required
Success responseHTTP 200
{
  "value": "converted-result"
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/transform/slugConvert text to a URL slug

Convert text to a URL slug

valuestring - required
Success responseHTTP 200
{
  "value": "guia-de-testes-de-api"
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/transform/sort-linesSort lines alphabetically

Sort lines alphabetically

valuestring - required
Success responseHTTP 200
{
  "value": "converted-result"
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/transform/truncateTruncate text

Truncate text

valuestring - required
Success responseHTTP 200
{
  "value": "converted-result"
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/credit-cardValidate credit card number with Luhn

Validate credit card number with Luhn

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/ibanValidate IBAN with MOD-97

Validate IBAN with MOD-97

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example

USA

6
GET/generate/einGenerate US EIN

Generate US EIN

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/itinGenerate US ITIN

Generate US ITIN

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/generate/ssnGenerate US SSN

Generate US SSN

countinteger - optional - default 1 - min 1 - max 50
Success responseHTTP 200
{
  "values": [
    "generated-value-1",
    "generated-value-2"
  ]
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/einValidate US EIN

Validate US EIN

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/itinValidate US ITIN format

Validate US ITIN format

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example
GET/validate/ssnValidate US SSN

Validate US SSN

valuestring - required
Success responseHTTP 200
{
  "value": "123456789",
  "valid": true
}
Error responseHTTP 400
{
  "success": false,
  "error": "Invalid value"
}
Open example

API FAQ

Is the 4DevTool API free?

Yes. Public endpoints are free to use for QA, demos, development, testing and automation.

Does the API require an API key?

No. Authentication is not required for the public endpoints documented on this page.

Can I use the API from the browser?

Yes. CORS is enabled so browser-based prototypes and QA utilities can call the API directly.

What can I generate with the API?

You can generate identifiers, hashes, text transformations, dates, country-specific test values, profiles, companies, addresses and validation responses for development workflows.

Should I use real secrets or production data?

No. Use safe examples, placeholders or non-production values when calling public endpoints from a browser, script or shared documentation.

Is there an OpenAPI specification?

Yes. The public OpenAPI JSON is available at /api-docs/openapi-public.json.