TinyTools API
A free REST API for generators and utilities. No API key, no signup.
All endpoints use GET, return JSON and allow cross-origin requests, so you can call them from a browser, a script or the command line.
Quick start
Base URL
https://tinytools.cc/api/v1
curl "https://tinytools.cc/api/v1/uuid?count=3&format=text"
Response formats
By default responses are JSON in the form { "data": … }. Add format=text to get plain text with one value per line, handy for shell scripts.
Rate limit
60 requests per minute per client. Every response includes X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset headers. When the limit is exceeded you receive 429 with a Retry-After header.
Privacy and fair use
Requests are counted anonymously per endpoint. Your address is only kept in memory for rate limiting and never stored. Please do not use the API for abusive volumes; if you need more, get in touch.
Errors
Errors use the matching HTTP status and a JSON body:
HTTP/1.1 400 Bad Request
{
"error": {
"code": "invalid_parameter",
"message": "Parameter \"count\" must be at most 100.",
"status": 400
}
}Endpoints
GET/api/v1/uuid
Open the web tool →Generate UUIDs. Returns random version 4 UUIDs or time-ordered version 7 UUIDs.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| version | 4 | 7 | 4 | UUID version. |
| count | integer 1–100 | 1 | How many UUIDs to return. |
| uppercase | boolean | false | Return uppercase hex. |
| hyphens | boolean | true | Keep the hyphens. |
| format | json | text | json | json returns { data }, text returns one value per line. |
Example response
{
"data": [
"301f3994-9109-4f54-9d41-6f0bb582fe81",
"4bfbdb01-f55a-44b6-bab6-e3ea74b64bd2",
"22b25be5-9e16-448b-99a4-a61289725ca1"
]
}GET/api/v1/password
Open the web tool →Generate secure passwords. Cryptographically secure random passwords. At least one character of every enabled type is included.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| length | integer 4–128 | 20 | Password length. |
| count | integer 1–50 | 1 | How many passwords to return. |
| uppercase | boolean | true | Include A–Z. |
| lowercase | boolean | true | Include a–z. |
| digits | boolean | true | Include 0–9. |
| symbols | boolean | true | Include symbols. |
| excludeAmbiguous | boolean | false | Leave out look-alike characters (I, l, 1, O, 0). |
| format | json | text | json | json returns { data }, text returns one value per line. |
Example response
{
"data": [
"YHg9ynTVO8A2g308"
]
}GET/api/v1/random-number
Open the web tool →Generate random numbers. Random integers or decimals in a range, with optional unique values and sorting.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| min | number | 1 | Smallest value (inclusive). |
| max | number | 100 | Largest value (inclusive). |
| count | integer 1–1000 | 1 | How many numbers to return. |
| decimals | integer 0–8 | 0 | Decimal places. |
| unique | boolean | false | Draw without repeats. |
| sort | none | asc | desc | none | Sort order. |
| format | json | text | json | json returns { data }, text returns one value per line. |
Example request
curl "https://tinytools.cc/api/v1/random-number?min=1&max=49&count=6&unique=true&sort=asc"
Example response
{
"data": [
7,
12,
14,
17,
26,
47
]
}GET/api/v1/name
Open the web tool →Generate random names. Fictional first names, last names or full names for tests, mockups and stories.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| type | full | first | last | full | Kind of name. |
| count | integer 1–100 | 1 | How many names to return. |
| format | json | text | json | json returns { data }, text returns one value per line. |
Example response
{
"data": [
"Ivan Garcia",
"Chloe Keller",
"Grace Graf"
]
}GET/api/v1/username
Open the web tool →Generate usernames. Catchy usernames built from an adjective, a noun and an optional number.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| count | integer 1–100 | 1 | How many usernames to return. |
| separator | none | _ | . | - | none | Character between the parts. |
| numbers | boolean | true | Append a number (1–999). |
| capitalize | boolean | false | Capitalize each word. |
| format | json | text | json | json returns { data }, text returns one value per line. |
Example response
{
"data": [
"turbo_quartz_701",
"velvet_voyager_819",
"swift_koala_690",
"golden_tiger_685",
"keen_yeti_243"
]
}GET/api/v1/color
Open the web tool →Generate random colors. Random colors with HEX, RGB and HSL values.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| count | integer 1–100 | 1 | How many colors to return. |
| format | json | text | json | json returns { data }, text returns one value per line. |
Example response
{
"data": [
{
"hex": "#48ce17",
"rgb": "rgb(72, 206, 23)",
"hsl": "hsl(104, 80%, 45%)"
},
{
"hex": "#07f303",
"rgb": "rgb(7, 243, 3)",
"hsl": "hsl(119, 98%, 48%)"
},
{
"hex": "#dc1899",
"rgb": "rgb(220, 24, 153)",
"hsl": "hsl(321, 80%, 48%)"
}
]
}GET/api/v1/lorem
Open the web tool →Generate placeholder text. Lorem ipsum paragraphs, sentences or words.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| type | paragraphs | sentences | words | paragraphs | Unit to generate. |
| count | integer 1–200 | 3 | How many units. |
| startWithLorem | boolean | true | Start with "Lorem ipsum dolor sit amet". |
| html | boolean | false | Wrap paragraphs in <p> tags. |
| format | json | text | json | json returns { data }, text returns one value per line. |
Example response
{
"data": "Lorem ipsum dolor sit amet, consectetur adipiscing, elit donec aute. Lacus aliquip culpa sunt cubilia minim magna."
}GET/api/v1/dice
Open the web tool →Roll dice. Roll one or more dice with 2 to 1000 sides.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| sides | integer 2–1000 | 6 | Number of sides per die. |
| count | integer 1–100 | 1 | How many dice to roll. |
| format | json | text | json | json returns { data }, text returns one value per line. |
Example response
{
"data": {
"rolls": [
18,
12
],
"sum": 30
}
}GET/api/v1/coin
Open the web tool →Flip a coin. Flip one or more fair coins.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| count | integer 1–100 | 1 | How many coins to flip. |
| format | json | text | json | json returns { data }, text returns one value per line. |
Example response
{
"data": [
"heads",
"tails",
"tails"
]
}GET/api/v1/emoji
Open the web tool →Random emojis. Random emojis from a curated set of widely supported emojis.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| count | integer 1–100 | 1 | How many emojis to return. |
| format | json | text | json | json returns { data }, text returns one value per line. |
Example response
{
"data": [
"🙉",
"🍓",
"️",
"🚗",
"😃"
]
}GET/api/v1/slug
Open the web tool →Create a URL slug. Turns text into a URL-friendly slug. Umlauts and accents are transliterated.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| textrequired | string | — | Text to convert. |
| separator | - | _ | - | Word separator. |
| lowercase | boolean | true | Convert to lowercase. |
| format | json | text | json | json returns { data }, text returns one value per line. |
Example request
curl "https://tinytools.cc/api/v1/slug?text=Über%20uns%3A%20Größe%20%26%20Qualität"
Example response
{
"data": "ueber-uns-groesse-qualitaet"
}GET/api/v1/hash
Open the web tool →Hash a text. Calculates a hex digest of the UTF-8 text. MD5 and SHA-1 are provided for checksums only.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| textrequired | string | — | Text to hash. |
| algorithm | md5 | sha1 | sha256 | sha384 | sha512 | sha256 | Hash algorithm. |
| format | json | text | json | json returns { data }, text returns one value per line. |
Example response
{
"data": {
"algorithm": "sha256",
"hash": "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824"
}
}GET/api/v1/base64
Open the web tool →Base64 encode or decode. UTF-8 safe Base64 encoding and decoding, with an optional URL-safe alphabet.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| textrequired | string | — | Text to encode, or Base64 to decode. |
| mode | encode | decode | encode | Direction. |
| urlSafe | boolean | false | Use - and _ and drop padding (encode only). |
| format | json | text | json | json returns { data }, text returns one value per line. |
Example response
{
"data": "SGVsbG8gVGlueVRvb2xz"
}GET/api/v1/timestamp
Open the web tool →Current time or timestamp conversion. Without a value it returns the current time. With a Unix timestamp (seconds, or milliseconds above 100 billion) it converts it.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| value | number | — | Unix timestamp to convert (optional). |
| format | json | text | json | json returns { data }, text returns one value per line. |
Example response
{
"data": {
"unix": 1735689600,
"unixMs": 1735689600000,
"iso": "2025-01-01T00:00:00.000Z",
"utc": "Wed, 01 Jan 2025 00:00:00 GMT"
}
}