> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ebrc.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Conventions shared by every eBRC API endpoint: base URLs, x-api-key authentication, the JSON response envelope, pagination, date formats, and error handling.

The eBRC API is a REST API. Requests and responses are JSON over HTTPS, authenticated with an API key.

## Base URLs

<CodeGroup>
  ```bash Production theme={"dark"}
  https://ebrcapi.eximfiles.io/api/v1
  ```

  ```bash Sandbox theme={"dark"}
  https://ebrcapi.dev.eximfiles.com/api/v1
  ```
</CodeGroup>

Keys are issued per environment. See [Environments and Base URLs](/environments) for how the two behave.

## Authentication

Every endpoint requires an API key in the request headers, alongside a JSON content type:

```bash theme={"dark"}
x-api-key: <YOUR_API_KEY>
Content-Type: application/json
```

Rate limits are published per endpoint. See [Authentication](/authentication) for limits, key handling, and the exact auth error responses.

## Processing timelines

| Event                               | When services / status are ready                                          |
| ----------------------------------- | ------------------------------------------------------------------------- |
| Customer validation                 | Services enabled after **24 hours**                                       |
| Push IRM (`POST /genebrc/push-irm`) | In Production, acknowledgement typically arrives within about **2 hours** |

## Response envelope

Every successful JSON response is wrapped in the same envelope. The schemas documented on each endpoint describe the `data` field:

```json theme={"dark"}
{
  "success": true,
  "data": { },
  "statusCode": 200,
  "timestamp": "2026-07-22T10:15:04.874Z"
}
```

File downloads (Excel templates, certificate PDFs) return the raw file body instead, with a `Content-Disposition: attachment` header.

Error responses are not wrapped; they use a flat shape with `statusCode`, `message`, and often a machine-readable `errorCode` and a `requestId`. The full shape, every status code, and the exact validation messages are documented on the [Errors](/errors) page.

## Pagination

List endpoints accept `page` (starts at 1) and `limit` (default 10, maximum 100) query parameters. Customer lists also accept `search` to filter by partial name or email.

## Date formats

Filing date fields (`irmDt`, `sbCumInvoiceDate`, `eBRCIssueFromDt`, and friends) are `DDMMYYYY` strings, for example `01042024`. Timestamps generated by the API (`createdAt`, `timestamp`) are ISO 8601.

## Need help?

<Card title="Contact support" icon="envelope" href="mailto:amin@eximfiles.io">
  Email [amin@eximfiles.io](mailto:amin@eximfiles.io) and quote the requestId from your API response.
</Card>
