# Client SDKs

> Call the Curriculo API from TypeScript, Python or any language with any HTTP client, or import a cURL request into Postman.

**Source:** /docs/client-sdks/ (Curriculo Docs)  
**Updated:** 15 October 2026  
**Contact:** hello@curriculo.me

The API is plain REST, so any HTTP client works and you do not depend on a hand-written SDK release cycle.

Call the [screening interview](/docs/api/screening-interview/) endpoints directly, like every other operation.

## What every client must do

- Send `Authorization: Bearer <credential>` on every call.
- Keep a request timeout above five minutes for the document operations.
- Retry `429` and `503` with backoff.
- Log the `X-Curriculo-Request-Id` response header.

See [Authentication](/docs/authentication/), [Rate limits](/docs/rate-limits/) and [Errors](/docs/errors/).

## Postman

- **Postman:** import the `/prompt/` cURL request copied from the documentation page in the [Developer Console](https://console.curriculo.me).

## Example: call parse from a script

Any HTTP client works. In Python with `requests`:

```python
import requests

resp = requests.post(
    "https://api.curriculo.me/public/parse/",
    headers={"Authorization": "Bearer key_abc123_yoursecret"},
    files=[("files", open("candidate.pdf", "rb"))],
    timeout=330,
)
resp.raise_for_status()
print(resp.headers.get("X-Curriculo-Request-Id"), resp.json())
```

## Common questions

**Is there an official SDK package?**
No. Call the API with any HTTP client.

**How do I call the screening interview endpoints?**
Call them with any HTTP client; see [Screening interview](/docs/api/screening-interview/).

**Which timeout should my client use?**
More than five minutes for document and media calls, because processing can take up to 300 seconds.

## Next steps

- [Quickstart](/docs/quickstart/): a first call with cURL.
- [Requests and responses](/docs/requests-and-responses/): content types and size limits.
- [Rate limits](/docs/rate-limits/): per-key and per-IP ceilings.
