apyhub
Back

Developer Utilities API

What it does

Developer Utilities gives you a small set of utility endpoints for common backend and integration tasks: parse cron expressions, convert timestamps, inspect user-agent strings, list HTTP status codes, and generate UUIDv4 values.

Send a cron expression to /security/cron and get back whether it parsed, a plain-language description, and the expression split into minute, hour, dayOfMonth, month, and dayOfWeek fields. Use /security/timestamp to convert a string or number into ISO 8601 UTC, Unix seconds, Unix milliseconds, and a human-readable UTC value, with an error field when the input is invalid.

If you need request metadata, /security/user-agent accepts a ua string and returns the raw string plus browser, browserVersion, os, device, and whether it is a known bot. /security/http-status returns a complete list of HTTP status codes with their phrase and category, which is useful for docs, observability tooling, and internal dashboards.

For generating identifiers, /security/uuid creates one or more UUIDv4 values, returning a single string for count 1 or an array when you request multiple values. It fits well in admin tools, debugging workflows, schedulers, and service integrations where you need lightweight utility responses without building these parsers yourself.

▣ ENDPOINT 01 / 05
POST
Cron Expression Explainer
https://api.eu.apyhub.com/freedailypro/developer-utilities-api/security/cron

QUICKSTART

GUIDE

Quickstart

Run this to check a cron expression with the required JSON body.

curl -X POST "https://api.eu.apyhub.com/freedailypro/developer-utilities-api/security/cron" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"expression":"0 */6 * * *"}'

What you'll get back

The live response to the request above:

{
  "tool": "Cron builder client and server side from freedailypro",
  "valid": true,
  "expression": "0 */6 * * *",
  "description": "At 0, past every 6 hours, on every day of the month, in every month, on every day of the week.",
  "fields": {
    "minute": "0",
    "hour": "*/6",
    "dayOfMonth": "*",
    "month": "*",
    "dayOfWeek": "*"
  }
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*

About this endpoint

What it does

Checks a standard 5-field cron expression (minute, hour, day of month, month, day of week) and explains it in plain language, with each field shown separately. Use it to understand or double-check a schedule before adding it to a job scheduler.

Request Body

ParameterTypeMandatoryDescription
expressionStringYesCron expression input.

Response

A successful call returns a JSON object with these fields:

ParameterTypeDescription
toolStringName of the tool that produced the response.
validBooleantrue if the expression was parsed.
expressionStringThe cron expression (echoes the request).
descriptionStringPlain-language description of the schedule.
fieldsObjectThe expression split into its five fields.
fields.minuteStringMinute field.
fields.hourStringHour field.
fields.dayOfMonthStringDay-of-month field.
fields.monthStringMonth field.
fields.dayOfWeekStringDay-of-week field.
▣ ENDPOINT 02 / 05
POST
Unix Timestamp Converter
https://api.eu.apyhub.com/freedailypro/developer-utilities-api/security/timestamp

QUICKSTART

GUIDE

Quickstart

Send the required input value to generate a timestamp-related response.

curl -X POST "https://api.eu.apyhub.com/freedailypro/developer-utilities-api/security/timestamp" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"input":"1700000000"}'

What you'll get back

The live response to the request above:

{
  "tool": "Timestamp converter client and server side from freedailypro",
  "unixSeconds": 1700000000,
  "unixMilliseconds": 1700000000000,
  "iso": "2023-11-14T22:13:20.000Z",
  "utc": "Tue, 14 Nov 2023 22:13:20 GMT"
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*

About this endpoint

What it does

Converts a date or time into all common formats at once. Send Unix seconds, Unix milliseconds or a date string, and get back Unix seconds, Unix milliseconds, an ISO 8601 string and a human-readable UTC date. All results are in UTC. Use it to read timestamps from logs or databases, or to convert dates for APIs.

Request Body

ParameterTypeMandatoryDescription
inputStringYesTimestamp to convert: Unix seconds, Unix milliseconds, or a date string such as 2026-10-29T10:00:00Z.

Response

A successful call returns a JSON object with these fields:

ParameterTypeDescription
toolStringName of the tool that produced the response.
unixSecondsNumberUnix time in seconds.
unixMillisecondsNumberUnix time in milliseconds.
isoStringISO 8601 date and time in UTC.
utcStringHuman-readable UTC date and time.
errorStringError message. Present only when the input is invalid, e.g. "Invalid timestamp or date string".

If the input can't be read as a date, the API returns {"error":"Invalid timestamp or date string"}.

▣ ENDPOINT 03 / 05
POST
User-Agent Parser
https://api.eu.apyhub.com/freedailypro/developer-utilities-api/security/user-agent

QUICKSTART

GUIDE

Quickstart

Send a user agent string to check or process it.

curl -X POST "https://api.eu.apyhub.com/freedailypro/developer-utilities-api/security/user-agent" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36"}'

What you'll get back

The live response to the request above:

{
  "tool": "User agent parser client and server side from freedailypro",
  "result": {
    "raw": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36",
    "browser": "Chrome",
    "browserVersion": "123.0.0.0",
    "os": "Windows 10/11",
    "device": "desktop",
    "isBot": false
  }
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*

About this endpoint

What it does

Parses a browser user-agent string and returns the browser name and version, operating system, device type (such as desktop or mobile) and whether the request comes from a known bot or crawler. Use it for analytics, logging, device detection or blocking bots.

Request Body

ParameterTypeMandatoryDescription
uaStringYesThe user agent string to parse.

Response

A successful call returns a JSON object with these fields:

ParameterTypeDescription
toolStringName of the tool that produced the response.
resultObjectParsed user-agent details.
result.rawStringThe user-agent string (echoes the request).
result.browserStringBrowser name.
result.browserVersionStringBrowser version.
result.osStringOperating system.
result.deviceStringDevice type, e.g. desktop or mobile.
result.isBotBooleantrue if the user agent is a known bot or crawler.
▣ ENDPOINT 04 / 05
GET
HTTP Status Codes List
https://api.eu.apyhub.com/freedailypro/developer-utilities-api/security/http-status

QUICKSTART

GUIDE

Quickstart

Check the HTTP status helper with a simple GET request.

curl -X GET "https://api.eu.apyhub.com/freedailypro/developer-utilities-api/security/http-status" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

The live response to the request above:

{
  "tool": "Http status reference client and server side from freedailypro",
  "result": [
    {
      "code": 100,
      "phrase": "Continue",
      "category": "Informational"
    },
    {
      "code": 101,
      "phrase": "Switching Protocols",
      "category": "Informational"
    },
    ...
  ]
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Returns the full list of HTTP status codes, each with its standard reason phrase (for example 404 Not Found) and category (Informational, Success, Redirection, Client Error or Server Error). No input is needed. Use it to show readable error messages or to build documentation and debugging tools.

Response

A successful call returns a JSON object with these fields:

ParameterTypeDescription
toolStringName of the tool that produced the response.
resultArray of ObjectAll HTTP status codes.
result[].codeNumberStatus code.
result[].phraseStringStandard reason phrase.
result[].categoryStringStatus class, e.g. Informational or Client Error.
▣ ENDPOINT 05 / 05
POST
UUID v4 Generator
https://api.eu.apyhub.com/freedailypro/developer-utilities-api/security/uuid

QUICKSTART

GUIDE

Quickstart

Generate a UUID by sending the required count in the JSON body.

curl -X POST "https://api.eu.apyhub.com/freedailypro/developer-utilities-api/security/uuid" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"count":1}'

What you'll get back

The live response to the request above:

{
  "tool": "Uuid generator client and server side from freedailypro",
  "result": "ad9120ef-8b84-46fb-bb3b-6293a176e468"
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*

About this endpoint

What it does

Generates random version 4 UUIDs, the standard format for unique IDs in databases, APIs and distributed systems. Request one by default, or up to 1,000 at once with count.

Request Body

ParameterTypeMandatoryDescription
countNumberNoNumber of UUIDs to generate. Minimum: 1, maximum: 1000. Default: 1.

Response

A successful call returns a JSON object with these fields:

ParameterTypeDescription
toolStringName of the tool that produced the response.
resultString or Array of StringThe generated UUID (v4). A single string when count is 1, otherwise an array of strings.

result is a single string when count is 1, and an array of strings when count is more than 1.

▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.