Overview
ProphetAPI is a comprehensive API development and testing platform. It provides tools for currency conversion, API proxying, webhook testing, and organization management — all accessible via a unified REST API.
Base URL
https://proxy-prophet.challenge.g24sec.com/api
API Features
- Currency API — Live exchange rates for 200+ currency pairs
- API Proxy — Route requests through our secure proxy service
- Webhook Tester — Send test webhooks in JSON or XML format
- Organization Management — Team roles, audit logs, and SSO
- JWT Authentication — RS256-signed tokens for secure access
Authentication
All API endpoints (except public ones) require a Bearer JWT token in the Authorization header.
Register
POST /api/auth/register Content-Type: application/json{ "username": "myuser", "password": "mypassword" }Response 200:{
"token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": { "username": "myuser", "role": "user" }
}Login
POST /api/auth/login Content-Type: application/json{ "username": "myuser", "password": "mypassword" }Response 200:{
"token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": { "username": "myuser", "role": "user" },
"api_key": "pk_live_abc123def456..."
}Using the Token
GET /api/convert?from=usd&to=eur&amount=100 Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
Tokens are signed using RS256. The public key is available for client-side verification at /api/docs/public-key.
Token payload includes:
sub— User ID (username)username— The account usernamerole— Account role:useroradminiat— Issued-at timestamp
Currency API
Convert between 200+ currencies using live exchange rates powered by the Frankfurter API (European Central Bank data).
GET /api/convert?from=usd&to=eur&amount=100 Response 200:{
"from": "USD",
"to": "EUR",
"amount": 100,
"converted": 92.0,
"rate": 0.92,
"source": "live"
}Supported currency codes include USD, EUR, GBP, JPY, KES, TZS, UGX, RWF, NGN, ZAR, INR, CNY, BRL, and 190+ more.
If the live rate service is unavailable, fallback rates are used to ensure uptime.
| Parameter | Type | Description |
|---|---|---|
from | string | Source currency code (e.g., usd) |
to | string | Target currency code (e.g., eur) |
amount | number | Amount to convert (default: 1) |
API Proxy
The API Proxy allows you to route HTTP requests through our infrastructure. This is useful for testing how your API behaves from different network origins.
POST /api/proxy/test Authorization: Bearer <token> Content-Type: application/json{
"url": "https://jsonplaceholder.typicode.com/posts/1",
"method": "GET",
"headers": {
"Content-Type": "application/json"
}
}Response 200:{
"status": 200,
"headers": { "content-type": "application/json; charset=utf-8" },
"body": { "userId": 1, "id": 1, "title": "...", "body": "..." }
}Request Parameters
| Parameter | Type | Description |
|---|---|---|
url | string | Target URL (external only; internal blocked) |
method | string | HTTP method: GET, POST, PUT, DELETE |
headers | object | Custom headers to forward |
body | object | Request body (for POST/PUT) |
Note: Internal URLs (localhost, 127.0.0.1, 10.x, 172.x, 192.168.x) are blocked for security. Only external URLs are allowed.
Available on the Team plan and above.
Webhooks
Send test webhook payloads to your endpoints in either JSON or XML format.
POST /api/webhooks/test Authorization: Bearer <token> Content-Type: application/json{
"webhookUrl": "https://your-endpoint.com/webhook",
"payload": {
"event": "payment.success",
"data": {
"amount": 5000,
"currency": "USD",
"customer": "cus_abc123"
}
},
"format": "json"
}XML Format
When format is set to "xml", the payload is automatically converted to XML before sending:
POST /api/webhooks/test Content-Type: application/json{
"webhookUrl": "https://your-endpoint.com/webhook",
"payload": { "event": "test", "data": { "message": "Hello" } },
"format": "xml"
}XML payload sent:<root>
<event>test</event>
<data>
<message>Hello</message>
</data>
</root>Available on the Team plan and above.
Organization
Organization features allow teams to collaborate, manage members, and control access through role-based permissions. Org administrators get elevated access to internal systems and infrastructure tools.
Member Management
- Org Admin — Full access to all features, billing, and member management
- Developer — Access to development tools (proxy, webhooks, currency)
- Viewer — Read-only access to dashboards and logs
Audit Logs
All organization-level actions are logged with timestamps, actor information, and IP addresses for compliance.
SSO / SAML
Single sign-on is available for Organization plans with support for Okta, Azure AD, Google Workspace, and custom SAML 2.0 providers.
Available on the Organization plan.
Security
ProphetAPI takes security seriously. Here are the key measures in place:
JWT Signing
All access tokens are signed using RS256 (RSA Signature with SHA-256). The private key is stored securely server-side. Clients can verify tokens using the public key endpoint.
GET /api/docs/public-key Response:{
"publicKey": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A...",
"algorithm": "RS256"
}Request Validation
- All inputs are validated and sanitized
- SQL injection prevention via parameterized queries
- XSS protection through output encoding
- Rate limiting per API key and IP address
Infrastructure Security
- All traffic is encrypted via TLS 1.3
- Internal services are isolated from public endpoints
- Regular security audits and penetration testing
Pricing & Plans
Choose the plan that fits your needs. All plans include access to the core API.
- ✓ Currency API
- ✓ Standard support
- ✓ Everything in Free
- ✓ API Proxy
- ✓ Webhook Tester
- ✓ Priority support
- ✓ Everything in Team
- ✓ Org management
- ✓ Internal system tools
- ✓ SSO/SAML
- ✓ Audit logs
- ✓ Dedicated support
Client SDKs
Integrate ProphetAPI into your applications using our official client libraries.
JavaScript / TypeScript
npm install prophet-api-client
import { ProphetClient } from 'prophet-api-client';
const client = new ProphetClient({ apiKey: 'pk_live_...' });
// Convert currency
const result = await client.convert('USD', 'EUR', 100);
console.log(result.converted); // 92.0
// Test webhook
await client.sendWebhook('https://example.com/hook', {
event: 'test', data: { message: 'Hello' }
});Python
pip install prophet-api
from prophet_api import ProphetClient
client = ProphetClient(api_key="pk_live_...")
# Convert currency
result = client.convert("USD", "EUR", 100)
print(result.converted) # 92.0
# Test proxy
response = client.proxy_request(
url="https://api.example.com/data",
method="GET"
)cURL
curl -H "Authorization: Bearer <token>" \ "https://proxy-prophet.challenge.g24sec.com/api/convert?from=usd&to=eur&amount=100"
Support
We offer support across all plans to help you get the most out of ProphetAPI.
For urgent issues, contact us at support@proxy-prophet.challenge.g24sec.com or use the Contact Sales form on the pricing page.