# Service Proxy

Access Sapiom services from any language using our REST API

Access Sapiom capabilities from any language using our REST API — no SDK required.

## When to Use This

The Service Proxy provides direct REST API access to Sapiom services. Use it when:

- You're using Python, Go, Ruby, or another language without a Sapiom SDK
- You want Sapiom to handle provider selection and payment server-side

If you're using Node.js, the [SDK integration](/md/integration/http-clients.md) offers a better developer experience with automatic payment handling.

> **Do Not Mix with SDK:** Service Proxy endpoints (`api.sapiom.ai/v1/services/*`) handle payment server-side.

  **Do NOT wrap these calls with Sapiom SDK.** The SDK is for calling provider
  or external endpoints directly (e.g., `{provider}.services.sapiom.ai`).

  Mixing them will cause payment errors.

## Authentication

All Service Proxy endpoints require a Bearer token in the `Authorization` header:

```
Authorization: Bearer YOUR_API_KEY
```

Get your API key from the [Sapiom dashboard](https://app.sapiom.ai/settings).

## Available Services

- [Verify Users](/md/service-proxy/verify.md) - Send and check verification codes via SMS
## Error Handling

All Service Proxy endpoints return standard HTTP status codes:

| Status | Description |
|--------|-------------|
| 400 | Invalid request (bad format, missing fields) |
| 401 | Unauthorized — check your API key |
| 404 | Resource not found |
| 410 | Resource expired |
| 422 | Unprocessable entity (e.g., invalid verification code) |
| 429 | Rate limit exceeded |

**Error Response Format:**

```json
{
  "message": "Description of the error",
  "statusCode": 400
}
```

## Coming Soon

Additional services will be available through the Service Proxy:

- **Search** — currently available via [SDK with provider endpoints](/md/capabilities/search.md)
- **AI Models** — currently available via [SDK with provider endpoints](/md/capabilities/ai-models.md)