API Platform Quick Start — From Zero to API Calls in 5 Minutes

This is the master onboarding tutorial. In seven steps you will register an account, authenticate, create an API key, call four different services, and check your usage — all from the command line.

What You'll Learn

  • How to register, authenticate, and obtain a JWT token
  • How to create and manage API keys through the portal API
  • How to call multiple platform services with a single key
  • How to monitor your usage and rate limits

Prerequisites

All you need: curl and a terminal. Every example also includes Python equivalents using the requests library.

Step 1: Register

Create your account with a single POST request.

bash
curl -X POST /api/auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "login": "yourname",
    "email": "you@company.com",
    "password": "YourSecureP@ssw0rd",
    "langKey": "en"
  }'
python
import requests

BASE = "/api"

resp = requests.post(f"{BASE}/auth/register", json={
    "login": "yourname",
    "email": "you@company.com",
    "password": "YourSecureP@ssw0rd",
    "langKey": "en"
})
print(resp.status_code)  # 201
Response — 201 Created
{
  "status": "OK",
  "message": "Account created. Check your email to activate."
}

Check your inbox and click the activation link before proceeding.

Step 2: Login and Get a JWT

Authenticate to receive a JSON Web Token. This token is used to manage your account through the portal API.

bash
curl -X POST /api/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "username": "yourname",
    "password": "YourSecureP@ssw0rd"
  }'
python
resp = requests.post(f"{BASE}/auth/login", json={
    "username": "yourname",
    "password": "YourSecureP@ssw0rd"
})
jwt_token = resp.json()["id_token"]
print(f"JWT: {jwt_token[:40]}...")
Response — 200 OK
{
  "id_token": "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJ5b3VybmFtZSIsImF1dGgiOiJST0xFX1VTRVIiLCJleHAiOjE3...truncated"
}

JWT vs API Key: The JWT is for portal operations (account management, key creation). For service API calls, use an API key created in the next step.

Step 3: Create an API Key

Use the JWT to create an API key. This key authenticates all service requests.

bash
JWT="eyJhbGciOiJSUzI1NiJ9..."  # from Step 2

curl -X POST /api/portal/api-keys \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $JWT" \
  -d '{
    "name": "my-first-key",
    "scopes": ["phone-validation", "disposable-email", "ssl-checker", "readability"]
  }'
python
auth = {"Authorization": f"Bearer {jwt_token}"}

resp = requests.post(f"{BASE}/portal/api-keys", headers=auth, json={
    "name": "my-first-key",
    "scopes": ["phone-validation", "disposable-email", "ssl-checker", "readability"]
})
api_key = resp.json()["data"]["key"]
print(f"API Key: {api_key}")
Response — 201 Created
{
  "status": "OK",
  "data": {
    "keyId": "key_3f7a9b1c",
    "name": "my-first-key",
    "key": "apk_live_7x8y9z0a1b2c3d4e5f6g7h8i9j0k1l2m",
    "scopes": ["phone-validation", "disposable-email", "ssl-checker", "readability"],
    "createdAt": "2026-03-26T18:00:00Z"
  }
}

Save this key! The full key value is only shown once. Store it securely — you cannot retrieve it later.

Step 4: Make Your First Call — Phone Validation

Validate a phone number using your new API key.

bash
API_KEY="apk_live_7x8y9z..."  # from Step 3

curl -X GET "/api/phone-validation/validate?number=%2B14155552671" \
  -H "X-API-KEY: $API_KEY"
python
api_headers = {"X-API-KEY": api_key}

resp = requests.get(
    f"{BASE}/phone-validation/validate",
    headers=api_headers,
    params={"number": "+14155552671"}
)
print(resp.json())
Response — 200 OK
{
  "status": "OK",
  "data": {
    "valid": true,
    "number": "+14155552671",
    "countryCode": "US",
    "carrier": "T-Mobile USA",
    "lineType": "MOBILE",
    "nationalFormat": "(415) 555-2671"
  }
}

Congratulations — your first API call is working.

Step 5: Try 3 More Services

Your API key works across all scoped services. Let's try three more.

Disposable Email Check

bash
curl -X GET "/api/disposable-email/check?email=test@mailinator.com" \
  -H "X-API-KEY: $API_KEY"
Response
{ "status": "OK", "data": { "email": "test@mailinator.com", "disposable": true, "provider": "Mailinator" } }

SSL Certificate Check

bash
curl -X GET "/api/ssl-checker/check?domain=github.com" \
  -H "X-API-KEY: $API_KEY"
Response
{
  "status": "OK",
  "data": {
    "domain": "github.com",
    "valid": true,
    "issuer": "DigiCert",
    "expiresAt": "2027-03-15T00:00:00Z",
    "daysRemaining": 354
  }
}

Readability Score

bash
curl -X POST /api/readability/score \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: $API_KEY" \
  -d '{"text": "The quick brown fox jumps over the lazy dog. This sentence is simple and easy to read."}'
Response
{
  "status": "OK",
  "data": {
    "fleschKincaid": 3.2,
    "fleschReadingEase": 92.4,
    "gradeLevel": "3rd grade",
    "wordCount": 18,
    "sentenceCount": 2
  }
}

Step 6: Check Your Usage

See how many API calls you have made and your remaining quota.

bash
curl -X GET /api/portal/usage \
  -H "Authorization: Bearer $JWT"
python
resp = requests.get(f"{BASE}/portal/usage", headers=auth)
print(resp.json())
Response — 200 OK
{
  "status": "OK",
  "data": {
    "plan": "FREE",
    "period": "2026-03",
    "used": 4,
    "limit": 1000,
    "remaining": 996,
    "breakdown": {
      "phone-validation": 1,
      "disposable-email": 1,
      "ssl-checker": 1,
      "readability": 1
    }
  }
}

Step 7: Explore More

You are up and running. Here is where to go next:

Service Tutorials

Reference

Swagger UI: Visit /swagger-ui/ for interactive OpenAPI documentation with try-it-out functionality for every endpoint.