API Reference
Complete endpoint documentation for the SOAPless REST proxy.
Base URL
https://soapless.miravy.comAll endpoints require HTTPS. HTTP requests are redirected to HTTPS automatically.
Proxy Endpoint
/api/v1/{accountId}/{serviceSlug}/{operationName}/api/v1/{accountId}/{serviceSlug}/{operationName}?a=2&b=3GET is optional. It is exposed for read-style operations with simple query-safe inputs, or when you explicitly enable GET for that operation in the dashboard on a paid plan.
Per-operation method policies in the dashboard are Inherit, POST, GET, and GET + POST.
When both are available, you can choose the one that fits your client. Use POST for body-based requests, and use GET when query parameters or caching behavior are a better fit.
Find your accountId in dashboard Settings. It is a stable public account identifier such as ab12cd34ef.
Proxies a REST JSON request to the corresponding SOAP operation on the upstream service.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
| accountId | string | Your stable public Account ID from Settings. |
| serviceSlug | string | The slug assigned to your registered SOAP service. |
| operationName | string | The SOAP operation name as defined in the WSDL. |
Request Headers
| Header | Required | Description |
|---|---|---|
| X-API-Key | Yes | Your SOAPless API key (sl_live_...). |
| Content-Type | Yes | Must be application/json. |
Request Body
A JSON object whose fields correspond to the SOAP operation's input parameters. SOAPless maps these to the appropriate SOAP XML elements automatically.
{
"userId": 42
}Success Response (200)
{
"result": {
"id": 42,
"name": "Alice Johnson",
"email": "alice@acme.com",
"department": "Engineering"
},
"meta": {
"service": "my-erp",
"operation": "GetUser",
"latencyMs": 245,
"cached": false
}
}Response Codes
| Code | Status | Description |
|---|---|---|
| 200 | OK | Request proxied successfully. The SOAP response has been converted to JSON. |
| 400 | Bad Request | Invalid JSON body, missing required fields, or request validation failed. |
| 401 | Unauthorized | Missing or invalid API key. Check your X-API-Key header. |
| 404 | Not Found | Service slug or operation name not found. Verify the URL path. |
| 429 | Too Many Requests | Rate limit exceeded. Check the X-RateLimit-* headers for limit details. |
| 502 | Bad Gateway | The upstream SOAP service returned an error or is unreachable. Check the error message for details. |
Error Types
The error.type field in error responses uses one of the following values:
| Type | Code | Description |
|---|---|---|
| VALIDATION_ERROR | 400 | Request body failed validation against the WSDL schema. |
| AUTHENTICATION_ERROR | 401 | API key is missing, invalid, or revoked. |
| SERVICE_NOT_FOUND | 404 | No service matches the provided slug. |
| OPERATION_NOT_FOUND | 404 | The operation does not exist for the given service. |
| RATE_LIMIT_EXCEEDED | 429 | Monthly quota or per-minute rate limit exceeded. |
| UPSTREAM_ERROR | 502 | The upstream SOAP service returned a SOAP fault or is unreachable. |
| INTERNAL_ERROR | 500 | An unexpected error occurred. Contact support if this persists. |
OpenAPI Spec Endpoint
/api/services/{serviceId}/openapiReturns an auto-generated OpenAPI 3.0 specification for a registered SOAP service. This is a paid-plan feature (Starter and Pro).
Authentication
This endpoint supports two authentication methods:
- Session cookie (primary) — Authenticated via the dashboard session. Used when accessing from a browser.
- API key (fallback) — Pass your key in the
X-API-Keyheader. Ideal for curl, CI pipelines, and programmatic access.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
| serviceId | UUID | The unique ID of your registered SOAP service. |
Example
curl -H "X-API-Key: sl_live_abc123" \
https://soapless.miravy.com/api/services/550e8400-e29b-41d4-a716-446655440000/openapiResponse Codes
| Code | Description |
|---|---|
| 200 | Returns the OpenAPI 3.0 JSON specification. |
| 401 | Not authenticated. Provide a session cookie or valid API key. |
| 403 | Free plan. Upgrade to Starter or Pro to access OpenAPI specs. |
| 404 | Service not found or does not belong to your account. |
Rate Limit Headers
Every proxy response includes rate limit headers to help you manage usage programmatically.
| Header | Type | Description |
|---|---|---|
| X-RateLimit-Limit | integer | Call limit for the current plan. |
| X-RateLimit-Remaining | integer | Number of calls remaining in the current billing period. |
| X-RateLimit-Reset | string (ISO 8601) | Timestamp when the current limit window resets. Free plans reset monthly, while paid plans follow the active billing period. |
X-RateLimit-Limit: 10000
X-RateLimit-Remaining: 9542
X-RateLimit-Reset: 2026-04-01T00:00:00ZVersioning
The SOAPless API is versioned via the URL path. The current version is v1.
https://soapless.miravy.com/api/v1/{accountId}/{serviceSlug}/{operationName}- Breaking changes will be released under a new version (e.g.,
v2). - Non-breaking additions (new fields, new optional parameters) may be added to the current version without a version bump.
- Deprecated versions will be supported for at least 6 months after a new version is released.
Example: SOAP to REST Transformation
Here is a complete example showing how SOAPless transforms a SOAP operation into a REST API call.
Original SOAP Request
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:usr="http://example.com/users">
<soap:Header>
<usr:AuthToken>ws-sec-token-xyz</usr:AuthToken>
</soap:Header>
<soap:Body>
<usr:GetUser>
<usr:userId>42</usr:userId>
</usr:GetUser>
</soap:Body>
</soap:Envelope>Original SOAP Response
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:usr="http://example.com/users">
<soap:Body>
<usr:GetUserResponse>
<usr:user>
<usr:id>42</usr:id>
<usr:name>Alice Johnson</usr:name>
<usr:email>alice@acme.com</usr:email>
<usr:department>Engineering</usr:department>
</usr:user>
</usr:GetUserResponse>
</soap:Body>
</soap:Envelope>SOAPless REST Request
curl -X POST https://soapless.miravy.com/api/v1/ab12cd34ef/user-service/GetUser \
-H "Content-Type: application/json" \
-H "X-API-Key: sl_live_abc123" \
-d '{"userId": 42}'SOAPless REST Response
{
"result": {
"id": 42,
"name": "Alice Johnson",
"email": "alice@acme.com",
"department": "Engineering"
},
"meta": {
"service": "user-service",
"operation": "GetUser",
"latencyMs": 312,
"cached": false
}
}