> Reverse Contact API documentation. This is the Markdown copy of https://docs.reversecontact.com/sdk/python/without-the-sdk
> Every page is listed at https://docs.reversecontact.com/llms.txt, every endpoint with its credit cost and status at https://docs.reversecontact.com/catalog.json

# Without the SDK

> Call the Reverse Contact API from Python with a standard HTTPS client, authenticate with a Bearer key, and use OpenAPI to generate your own models.

- Last verified: 2026-11-04

The API uses JSON over HTTPS and works with any HTTP client. Send your key in an `Authorization: Bearer` header, as shown in the cURL examples on each endpoint page. To generate your own typed models, use the OpenAPI spec at `https://docs.reversecontact.com/openapi.json`.

Follow the rules in [Error handling & retries](https://docs.reversecontact.com/guides/errors-retries) and [Polling](https://docs.reversecontact.com/guides/polling). The SDK handles these for you.

## Send a request with httpx

The free [Usage endpoint](https://docs.reversecontact.com/endpoints/usage) returns workspace credit information in `quotas`.

**Python**

```python [Python]
import os

import httpx

with httpx.Client(timeout=90.0) as client:
    response = client.get(
        "https://api.reversecontact.com/v2/usage",
        headers={"Authorization": f"Bearer {os.environ['RC_API_KEY']}"},
    )
    response.raise_for_status()
    print(response.json().get("quotas"))
```

Install `httpx` in your application before running this example. Raw HTTP responses use the API's camelCase fields. The SDK converts known fields to Python model attributes for you.

## Choose what your integration handles

With a raw HTTP client, implement the API's retry and polling rules in your own code. The [Python SDK error guide](https://docs.reversecontact.com/sdk/python/errors-and-retries) and [Async jobs](https://docs.reversecontact.com/sdk/python/async-jobs) explain how `reversecontact` handles retries and jobs. For JavaScript or TypeScript applications, see the [TypeScript SDK overview](https://docs.reversecontact.com/sdk/javascript).

Return to the [Python SDK overview](https://docs.reversecontact.com/sdk/python).

## FAQ

### Can I call Reverse Contact from Python without the SDK?

The API uses JSON over HTTPS. Any Python HTTP client can send an `Authorization: Bearer` header with your API key.

### Where can I get the Reverse Contact OpenAPI specification?

The OpenAPI specification is published at `https://docs.reversecontact.com/openapi.json` for generating your own typed models.

### Does a raw HTTP client handle Reverse Contact jobs automatically?

With a raw HTTP client, you write the polling and retry logic. The `reversecontact` SDK provides typed results, retries and job waiting.
