free-public-rest-apis

Use this skill whenever the user wants to integrate with, call, test, or learn about the free public REST APIs from AI SENSE AS (aisense.no). Triggers include: requests for current time/datetime, random numbers, random colors, UUIDs, GUIDs, Base64/Base58/Base32 encoding or decoding, JWT encode/decode, QR code generation or decoding, MD5/SHA1/SHA256/SHA512 hashing, ping/health checks, client IP lookup, IP geolocation/reverse lookup, temporary JSON/text/file storage, URL shortening, webhook capture, webhook action forms, or crypto wallet generation (Solana, Bitcoin, Ethereum). Also use when the user asks for a quick utility API without authentication. Do NOT use for paid APIs, authenticated services, or operations requiring persistent storage beyond 24 hours.

Free Public REST APIs — AI SENSE AS

Overview

All APIs listed here are free, public, and require no authentication. They are hosted by AI SENSE AS (Oslo, Norway). Base URL patterns follow each endpoint description below.

All endpoints return JSON unless otherwise noted. No API keys are needed.


Categories


Time

Datetime

Description: Returns the current date and time in ISO 8601 format, adjusted for an optional timezone offset. If no valid timezone offset is provided, defaults to UTC.

Endpoint: GET https://aisenseapi.com/services/v1/datetime[/{offset}]

Example response:

{
  "datetime": "2025-03-15T14:22:00+01:00"
}

Timestamp

Description: Returns the current Unix timestamp — the number of seconds since January 1, 1970 (UTC).

Endpoint: GET https://aisenseapi.com/services/v1/timestamp

Example response:

{
  "timestamp": 1741953720
}

Microtimestamp

Description: Returns the current Unix timestamp with microsecond precision as a floating-point value. Ideal for high-resolution time measurements.

Endpoint: GET https://aisenseapi.com/services/v1/microtimestamp

Example response:

{
  "microtimestamp": 1741953720.483921
}

Timezones

Description: Returns a list of all available timezones. Optionally filter by timezone offset.

Endpoint: GET https://aisenseapi.com/services/v1/timezones[/{offset}]

Example response:

{
  "timezones": ["Europe/Oslo", "Europe/Berlin", "Europe/Paris"]
}

Swatch Internet Time

Description: Returns the current time in Swatch Internet Time (.beats) and the current date in YYYY-MM-DD format. The day is divided into 1000 .beats (each = 86.4 seconds). Based on BMT (Biel Meantime) — no time zones involved.

Endpoint: GET https://aisenseapi.com/services/v1/swatchinternettime

Example response:

{
  "beats": 623,
  "date": "2025-03-15"
}

Random

Random Number

Description: Generates a random integer within a specified range using optional from and to parameters. Defaults to 1–6 if no parameters are given. Automatically swaps values if to < from.

Endpoint: GET https://aisenseapi.com/services/v1/random_number[/{from}/{to}]

Example response:

{
  "number": 4
}

Random Color

Description: Generates a random hex color code between #000000 and #FFFFFF.

Endpoint: GET https://aisenseapi.com/services/v1/random_color

Example response:

{
  "color": "#A3F2C1"
}

UUID

Description: Generates a universally unique identifier (UUID v4).

Endpoint: GET https://aisenseapi.com/services/v1/uuid

Example response:

{
  "uuid": "550e8400-e29b-41d4-a716-446655440000"
}

GUID

Description: Generates a globally unique identifier (GUID).

Endpoint: GET https://aisenseapi.com/services/v1/guid

Example response:

{
  "guid": "550e8400-e29b-41d4-a716-446655440000"
}

Transform

Base64 Encode

Description: Encodes text into Base64 format. Input must be JSON with a data field.

Endpoint: POST https://aisenseapi.com/services/v1/base64_encode

Request:

{
  "data": "Hello, world!"
}

Response:

{
  "encoded": "SGVsbG8sIHdvcmxkIQ=="
}

Base64 Decode

Description: Decodes a Base64-encoded string back to its original format. Input must be JSON with a data field.

Endpoint: POST https://aisenseapi.com/services/v1/base64_decode

Request:

{
  "data": "SGVsbG8sIHdvcmxkIQ=="
}

Response:

{
  "decoded": "Hello, world!"
}

Base58 Encode

Description: Encodes text into Base58 format. Input must be JSON with a data field.

Endpoint: POST https://aisenseapi.com/services/v1/base58_encode

Request:

{
  "data": "Hello"
}

Base58 Decode

Description: Decodes a Base58-encoded string. Input must be JSON with a data field.

Endpoint: POST https://aisenseapi.com/services/v1/base58_decode


Base32 Encode

Description: Encodes text into Base32 format. Input must be JSON with a data field.

Endpoint: POST https://aisenseapi.com/services/v1/base32_encode


Base32 Decode

Description: Decodes a Base32-encoded string. Accepts JSON with a data field or plain text. Response can be JSON (default) or raw binary based on the Accept header.

Endpoint: POST https://aisenseapi.com/services/v1/base32_decode


JWT Encode

Description: Encodes a JSON payload into a JWT using the HS256 algorithm. Accepts JSON, plain text (Content-Type: text/plain), or file upload. A secret key is required to sign the token.

Endpoint: POST https://aisenseapi.com/services/v1/jwt_encode

Request:

{
  "data": { "user": "alice", "role": "admin" },
  "secret": "my-secret-key"
}

Response:

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}

JWT Decode

Description: Decodes a JWT and returns its payload. Accepts JSON with a data field, plain text, or file upload. A secret key must be provided.

Endpoint: POST https://aisenseapi.com/services/v1/jwt_decode

Request:

{
  "data": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "secret": "my-secret-key"
}

QR Code Encode

Description: Generates a QR code from text input. Returns the QR code as a Base64-encoded PNG. Can encode URLs, plain text, contact info, Wi-Fi credentials, event details, etc.

Endpoint: POST https://aisenseapi.com/services/v1/qrcode_encode

Request:

{
  "data": "https://example.com"
}

Response:

{
  "qrcode": "iVBORw0KGgoAAAANSUhEUgAA..."
}

QR Code Decode

Description: Decodes a QR code image and returns the embedded content. Accepts a file upload or a Base64-encoded image in JSON format.

Endpoint: POST https://aisenseapi.com/services/v1/qrcode_decode

Request (Base64):

{
  "data": "iVBORw0KGgoAAAANSUhEUgAA..."
}

Response:

{
  "decoded": "https://example.com"
}

Hash

All hash endpoints accept JSON, plain text (Content-Type: text/plain), or file uploads.

MD5

Endpoint: POST https://aisenseapi.com/services/v1/md5_hash

Request:

{ "data": "Hello" }

Response:

{ "hash": "8b1a9953c4611296a827abf8c47804d7" }

SHA1

Endpoint: POST https://aisenseapi.com/services/v1/sha1_hash

Request:

{ "data": "Hello" }

Response:

{ "hash": "f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0" }

SHA256

Endpoint: POST https://aisenseapi.com/services/v1/sha256_hash

Request:

{ "data": "Hello" }

Response:

{ "hash": "185f8db32921bd46d35cc5e1aeea7bab5be96848c1dc7..." }

SHA512

Endpoint: POST https://aisenseapi.com/services/v1/sha512_hash

Request:

{ "data": "Hello" }

Response:

{ "hash": "3615f80c9d293ed7402687f94b22d58e529b8cc7916f8..." }

Web

Ping

Description: Returns a pong response. Used to verify connectivity or confirm the API is reachable.

Endpoint: GET https://aisenseapi.com/services/v1/ping

Response:

{ "response": "pong" }

Health

Description: Returns a health check status and a high-precision ISO 8601 timestamp (microsecond float). Useful for monitoring server uptime and response times.

Endpoint: GET https://aisenseapi.com/services/v1/health

Response:

{
  "status": "ok",
  "timestamp": 1741953720.483921
}

Client IP

Description: Returns the public IP address of the client making the request. Useful for access control, analytics, or request tracking. No parameters required.

Endpoint: `GET https://aisenseapi.com/services/v1/client_ip

Response:

{ "ip": "203.0.113.42" }

IP Reverse Lookup

Description: Performs a reverse IP lookup. Returns country, city, latitude, longitude, and time zone for a given IP address. Useful for location-based services, analytics, or security checks.

Endpoint: GET https://aisenseapi.com/services/v1/ip_reverse_lookup/{ip}

Response:

{
  "ip": "203.0.113.42",
  "country": "Norway",
  "city": "Oslo",
  "location": {
    "lat": "59.913900",
    "lng": "10.752200"
  },
  "place": null,
  "timezone": "Europe/Oslo"
}

Storage

Description: Temporary key-value storage for JSON, text, or file data. Store new data and receive a UUID, or retrieve previously stored data using a UUID. All data is automatically deleted after 24 hours.

Store data: POST https://aisenseapi.com/services/v1/storage

{ "data": { "key": "value" } }

Response:

{ "storage_id": "550e8400-e29b-41d4-a716-446655440000", "expire_timestamp": 1738457158 }

Retrieve data: GET https://aisenseapi.com/services/v1/storage/{uuid}


URL Shortener

Description: Generates a shortened URL for any full-length link. Returns a short redirect URL. Links expire automatically after 24 hours.

Endpoint: GET https://aisenseapi.com/services/v1/url_shortener/{url}

Example:

GET https://aisenseapi.com/services/v1/url_shortener/https://example.com/some/very/long/path

Webhook Capture

Description: Creates a capture session and returns a unique update_url to receive any inbound HTTP request, and a read_url to retrieve the captured data. Records method, headers, query parameters, client IP, and body. JSON bodies are automatically parsed. Data expires after 24 hours. Primarily used to test webhooks and debug integrations.

Create session: POST https://aisenseapi.com/services/v1/webhook_capture

Response:

{
  "ok": true,
  "capture_id": "6f8c9e52-3f2c-4e73-9d3b-8d6c3f6d1c91",
  "update_url": "https://aisenseapi.com/services/v1/webhook_capture/6f8c9e52-3f2c-4e73-9d3b-8d6c3f6d1c91/update",
  "read_url": "https://aisenseapi.com/services/v1/webhook_capture/6f8c9e52-3f2c-4e73-9d3b-8d6c3f6d1c91",
  "expire_timestamp": 1772893200
}

Send webhook: Any HTTP method → update_url

Read result: GET {read_url} (i.e. GET /webhook_capture/{capture_id})

{
  "ok": true,
  "capture_id": "6f8c9e52-3f2c-4e73-9d3b-8d6c3f6d1c91",
  "captured_at_datetime": "2026-03-06T14:20:00Z",
  "request": {
    "method": "POST",
    "headers": { "content-type": "application/json" },
    "client_ip": "203.0.113.10",
    "body": {
      "json": { "event": "payment.created", "amount": 499 },
      "text": null,
      "base64": null,
      "raw_length": 38
    }
  }
}

Webhook Action

Description: Creates an interactive action requiring human input before an automated process continues. Generates a unique action ID, a form URL for user submission, and a result URL to poll for the response. Form fields can include radio buttons, select menus, text inputs, textareas, and checkboxes. Status changes to answered once submitted. All stored actions expire after 24 hours.

Endpoint: POST https://aisenseapi.com/services/v1/webhook_action

Request:

{
  "title": "Approve deployment?",
  "fields": [
    {
      "type": "radio",
      "name": "approval",
      "label": "Do you approve?",
      "options": ["Yes", "No"]
    }
  ]
}

Response:

{
  "ok": true,
  "action_id": "9e0e6d3b-1a45-44c5-9e0b-92f5f3bdb2f1",
  "form_url": "https://aisenseapi.com/services/v1/webhook_action/9e0e6d3b-1a45-44c5-9e0b-92f5f3bdb2f1/form",
  "result_url": "https://aisenseapi.com/services/v1/webhook_action/9e0e6d3b-1a45-44c5-9e0b-92f5f3bdb2f1",
  "expire_timestamp": 1772893200,
  "expire_datetime": "2026-03-07T14:20:00Z"
}

Crypto

⚠️ Warning: These endpoints generate wallets for development and testing purposes. Never use programmatically generated wallets with real funds unless you fully control key storage and security.


Solana — Generate New Wallet

Description: Generates a new Solana wallet including a private key, a Base58-encoded private key, and a public address.

Endpoint: GET https://aisenseapi.com/services/v1/solana/generate_new_wallet

Response:

{
  "private_key": "...",
  "private_key_base58": "...",
  "public_address": "..."
}

Bitcoin — Generate New Wallet

Description: Generates a Bitcoin wallet with a private key (hexadecimal and WIF format) and a Base58Check-encoded Bitcoin address. Adheres to Bitcoin's secp256k1 standards.

Endpoint: GET https://aisenseapi.com/services/v1/bitcoin/generate_new_wallet

Response:

{
  "private_key": "...",
  "private_key_wif": "...",
  "address": "..."
}

Ethereum — Generate New Wallet

Description: Generates a new Ethereum wallet including a private key and a public address.

Endpoint: GET https://aisenseapi.com/services/v1/ethereum/generate_new_wallet

Response:

{
  "private_key": "0x...",
  "public_address": "0x..."
}

Quick Reference Table

CategoryEndpointMethodDescription
Time/datetime[/{offset}]GETCurrent datetime (ISO 8601)
Time/timestampGETUnix timestamp
Time/microtimestampGETMicrosecond Unix timestamp
Time/timezones[/{offset}]GETList of timezones
Time/swatchinternettimeGETSwatch .beats time
Random/random_number[/{from}/{to}]GETRandom integer in range
Random/random_colorGETRandom hex color
Random/uuidGETUUID v4
Random/guidGETGUID
Transform/base64_encodePOSTBase64 encode
Transform/base64_decodePOSTBase64 decode
Transform/base58_encodePOSTBase58 encode
Transform/base58_decodePOSTBase58 decode
Transform/base32_encodePOSTBase32 encode
Transform/base32_decodePOSTBase32 decode
Transform/jwt_encodePOSTJWT encode (HS256)
Transform/jwt_decodePOSTJWT decode
Transform/qrcode_encodePOSTQR code → Base64 PNG
Transform/qrcode_decodePOSTQR code image → text
Hash/md5_hashPOSTMD5 hash
Hash/sha1_hashPOSTSHA1 hash
Hash/sha256_hashPOSTSHA256 hash
Hash/sha512_hashPOSTSHA512 hash
Hash/crc32_checksumPOSTCRC32 checksum
Web/pingGETPing / connectivity check
Web/healthGETHealth check + timestamp
Web/client_ipGETClient public IP
Web/user_agentGETClient User-Agent string
Web/ip_reverse_lookup/{ip}GETIP geolocation lookup
Web/domain_ip_lookup/{domain}GETDomain → IP lookup
Web/storagePOST/GETTemp JSON/text storage (24h TTL)
Web/url_shortener/{url}GETURL shortener (24h TTL)
Web/webhook_capturePOST/GETWebhook request capture (24h TTL)
Web/webhook_actionPOST/GETHuman-in-the-loop action form (24h TTL)
Crypto/solana/generate_new_walletGETNew Solana wallet
Crypto/bitcoin/generate_new_walletGETNew Bitcoin wallet
Crypto/ethereum/generate_new_walletGETNew Ethereum wallet

Common Patterns

POST endpoints — accepted input formats

Most POST endpoints accept input in three ways:

  1. JSON body with a data field: { "data": "your input" }
  2. Plain text with header Content-Type: text/plain
  3. File upload (multipart form data)

Error handling

If input is invalid or missing, endpoints return an appropriate error message in JSON format:

{ "error": "Invalid input: data field is required" }

24-hour TTL endpoints

The following endpoints store data that automatically expires after 24 hours:

  • Storage
  • URL Shortener
  • Webhook Capture
  • Webhook Action

Provider Information

AI SENSE AS Postboks 1202 Vika 0110 Oslo, Norway

Website: aisense.no