PublicSoftTools

API Documentation

Build with PublicSoftTools. Complete reference for all API endpoints and authentication methods.

Quick Start

Get your first API request working in 5 minutes.

1. Get an API Key

  1. Go to /account/api-keys
  2. Enter your email
  3. Select your plan (Free, Starter, Pro, or Business)
  4. Copy your API key

2. Make Your First Request

curl -X POST https://www.publicsofttools.com/api/tools/jwt-verify \
  -H "x-api-key: pst_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "secret": "your-secret-key"
  }'

3. Handle the Response

{
  "valid": true,
  "payload": {
    "sub": "1234567890",
    "name": "John Doe",
    "iat": 1516239022
  },
  "expires_in": 3600
}

Authentication

All API requests require an API key. Include it in the request header:

x-api-key: pst_live_your_key_here

Example with cURL

curl -H "x-api-key: pst_live_your_key_here" \
  https://www.publicsofttools.com/api/tools/endpoint

Example with JavaScript

const response = await fetch('https://www.publicsofttools.com/api/tools/endpoint', {
  method: 'POST',
  headers: {
    'x-api-key': 'pst_live_your_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ /* data */ })
});

const data = await response.json();

Example with Python

import requests

headers = {
    'x-api-key': 'pst_live_your_key_here',
    'Content-Type': 'application/json'
}

response = requests.post(
    'https://www.publicsofttools.com/api/tools/endpoint',
    headers=headers,
    json={ /* data */ }
)

data = response.json()

Rate Limits & Plans

API calls are counted monthly and reset on the 1st of each month (UTC).

PlanMonthly LimitPriceBest For
Free1,500 calls$0Learning & testing
Starter15,000 calls$29/monthIndie apps & projects
Pro100,000 calls$99/monthGrowing applications
Business1,000,000+ callsCustomEnterprise & scale

What Counts as a Call?

  • Each API request = 1 call
  • Batch requests = 1 call per item processed
  • Failed requests = 1 call (even if you get an error)
  • Retries = 1 call each

Rate Limit Headers

Every response includes rate limit information:

X-RateLimit-Limit: 100000
X-RateLimit-Used: 1250
X-RateLimit-Reset: 2026-07-01T00:00:00Z

Exceeding Your Limit

If you exceed your limit, you'll get a 429 Too Many Requests response:

{
  "error": "Rate limit exceeded",
  "limit": 1500,
  "used": 1501,
  "reset_at": "2026-07-01T00:00:00Z",
  "upgrade": "https://www.publicsofttools.com/pricing"
}

Error Handling

The API uses standard HTTP status codes to indicate success or failure.

CodeMeaningExample
200SuccessRequest processed successfully
400Bad RequestMissing required field
401UnauthorizedInvalid or missing API key
403ForbiddenPlan doesn't have access
429Too Many RequestsRate limit exceeded
500Server ErrorInternal server error

Error Response Format

{
  "error": "Description of what went wrong",
  "code": "ERROR_CODE",
  "details": { /* additional info */ }
}

API Endpoints

File Converter

POST /api/tools/file-converter

Convert between JSON, YAML, XML, and CSV formats.

Request

{
  "input": "{ \"name\": \"John\" }",
  "from_format": "json",
  "to_format": "yaml"
}

Response

{
  "output": "name: John",
  "from_format": "json",
  "to_format": "yaml"
}

Supported Formats

JSON, YAML, XML, CSV

JWT Verify

POST /api/tools/jwt-verify

Decode and verify JWT tokens with HMAC or RSA signatures.

Request

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "algorithm": "HS256",
  "secret": "your-secret-key"
}

Response

{
  "valid": true,
  "payload": { /* decoded data */ },
  "expires_in": 3600,
  "expired": false
}

HTTP Status Checker

POST /api/tools/http-checker

Check HTTP status codes and analyze redirect chains.

Request

{
  "urls": ["https://example.com", "https://example.com/page"]
}

Response

{
  "results": [
    {
      "url": "https://example.com",
      "status": 200,
      "status_text": "OK",
      "response_time": 145,
      "redirects": []
    }
  ]
}

Cron Parser

POST /api/tools/cron-parser

Parse cron expressions and get next execution times.

Request

{
  "expression": "0 9 * * 1-5"
}

Response

{
  "valid": true,
  "description": "At 9:00 AM, Monday to Friday",
  "next_executions": [
    "2026-06-08T09:00:00Z",
    "2026-06-09T09:00:00Z"
  ]
}

Mock Data Generator

POST /api/tools/mock-data-generator

Generate realistic mock data for testing.

Request

{
  "count": 10,
  "types": ["name", "email", "phone", "address"],
  "format": "json"
}

Response

{
  "data": [
    {
      "name": "John Doe",
      "email": "john@example.com",
      "phone": "+1-555-0123",
      "address": "123 Main St, City, State"
    }
  ]
}

Code Examples

Convert JSON to YAML

// JavaScript
const response = await fetch('https://www.publicsofttools.com/api/tools/file-converter', {
  method: 'POST',
  headers: {
    'x-api-key': 'pst_live_your_key',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    input: '{"name": "John", "age": 30}',
    from_format: 'json',
    to_format: 'yaml'
  })
});

const result = await response.json();
console.log(result.output);
// Output: name: John
age: 30

Check Multiple URLs

# Python
import requests

api_key = 'pst_live_your_key'
headers = {'x-api-key': api_key}

response = requests.post(
    'https://www.publicsofttools.com/api/tools/http-checker',
    headers=headers,
    json={
        'urls': [
            'https://example.com',
            'https://example.com/about'
        ]
    }
)

results = response.json()
for result in results['results']:
    print(f"{result['url']}: {result['status']}")

FAQ

How do I get an API key?

Visit /account/api-keys, enter your email, select a plan, and your key will be generated instantly.

Can I test for free?

Yes! The Free tier includes 1,500 API calls/month. Perfect for testing and development.

What happens if I exceed my limit?

You'll get a 429 (Too Many Requests) response. Upgrade your plan or wait until the reset on the 1st of next month.

Can I cancel anytime?

Yes, no questions asked. Cancel from your account dashboard. Your key continues working until month-end.

Do you offer SLA for Enterprise?

Yes. Contact contact@publicsofttools.com for Business plan details including SLA.

What's your API uptime?

We aim for 99.9% uptime. See our status page for current health.

Ready to build?

Get your API key and start building in minutes.

Get Free API KeyView Pricing