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.
curl -X POST /api/auth/register \
-H "Content-Type: application/json" \
-d '{
"login": "yourname",
"email": "you@company.com",
"password": "YourSecureP@ssw0rd",
"langKey": "en"
}'
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
{
"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.
curl -X POST /api/auth/login \
-H "Content-Type: application/json" \
-d '{
"username": "yourname",
"password": "YourSecureP@ssw0rd"
}'
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]}...")
{
"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.
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"]
}'
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}")
{
"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.
API_KEY="apk_live_7x8y9z..." # from Step 3
curl -X GET "/api/phone-validation/validate?number=%2B14155552671" \
-H "X-API-KEY: $API_KEY"
api_headers = {"X-API-KEY": api_key}
resp = requests.get(
f"{BASE}/phone-validation/validate",
headers=api_headers,
params={"number": "+14155552671"}
)
print(resp.json())
{
"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
curl -X GET "/api/disposable-email/check?email=test@mailinator.com" \
-H "X-API-KEY: $API_KEY"
{ "status": "OK", "data": { "email": "test@mailinator.com", "disposable": true, "provider": "Mailinator" } }
SSL Certificate Check
curl -X GET "/api/ssl-checker/check?domain=github.com" \
-H "X-API-KEY: $API_KEY"
{
"status": "OK",
"data": {
"domain": "github.com",
"valid": true,
"issuer": "DigiCert",
"expiresAt": "2027-03-15T00:00:00Z",
"daysRemaining": 354
}
}
Readability Score
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."}'
{
"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.
curl -X GET /api/portal/usage \
-H "Authorization: Bearer $JWT"
resp = requests.get(f"{BASE}/portal/usage", headers=auth)
print(resp.json())
{
"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
- Keyword Extractor — TF-IDF keyword extraction from text
- File Type Detection — identify files by magic bytes
- Deduplication — SHA-256 duplicate content detection
- IP Geolocation — locate any IP address
- Screenshot Capture — render web pages to PNG
- Uptime Monitor — track endpoint availability
- Cron Service — schedule HTTP callbacks
- Webhook Inspector — capture and debug webhooks
- Rate Test — load test with safety guardrails
Reference
- Full API Reference — every endpoint, parameter, and error code
- Try It Live Explorer — interactive API testing in your browser
- Pricing — free tier limits and paid plans
Swagger UI: Visit /swagger-ui/ for interactive OpenAPI documentation with try-it-out functionality for every endpoint.