List platform customers
curl --request GET \
--url https://api.ebrc.in/api/v1/platform-customers \
--header 'x-api-key: <api-key>'import requests
url = "https://api.ebrc.in/api/v1/platform-customers"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.ebrc.in/api/v1/platform-customers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ebrc.in/api/v1/platform-customers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.ebrc.in/api/v1/platform-customers"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.ebrc.in/api/v1/platform-customers")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ebrc.in/api/v1/platform-customers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"items": [
{
"id": "<string>",
"name": "<string>",
"email": "jsmith@example.com",
"type": "customer",
"companyName": "<string>",
"iec": "<string>",
"address": "<string>",
"platformId": "<string>",
"mode": "test",
"isActive": true,
"hasDgftCredentials": true,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
],
"meta": {
"totalItems": 123,
"itemsPerPage": 123,
"totalPages": 123,
"currentPage": 123
}
}{
"code": "<string>",
"message": "<string>"
}{
"code": "<string>",
"message": "<string>"
}{
"code": "<string>",
"message": "<string>"
}Platform customers
Get Customers List
List the platform customers under your account with pagination and search by partial name or email, so you can find the exporter entity you generate eBRCs for.
GET
/
platform-customers
List platform customers
curl --request GET \
--url https://api.ebrc.in/api/v1/platform-customers \
--header 'x-api-key: <api-key>'import requests
url = "https://api.ebrc.in/api/v1/platform-customers"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.ebrc.in/api/v1/platform-customers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ebrc.in/api/v1/platform-customers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.ebrc.in/api/v1/platform-customers"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.ebrc.in/api/v1/platform-customers")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ebrc.in/api/v1/platform-customers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"items": [
{
"id": "<string>",
"name": "<string>",
"email": "jsmith@example.com",
"type": "customer",
"companyName": "<string>",
"iec": "<string>",
"address": "<string>",
"platformId": "<string>",
"mode": "test",
"isActive": true,
"hasDgftCredentials": true,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
],
"meta": {
"totalItems": 123,
"itemsPerPage": 123,
"totalPages": 123,
"currentPage": 123
}
}{
"code": "<string>",
"message": "<string>"
}{
"code": "<string>",
"message": "<string>"
}{
"code": "<string>",
"message": "<string>"
}List every exporter entity under your platform account. Use this to reconcile your records with the API, or to look up a
See the client object for what each field means. Two things differ on this endpoint:
platformCustomerId you did not store.
The roster is scoped to the mode your key selects: a dev_ key lists test clients only, a prod_ key lists live clients only. Results are ordered newest first.
Request example
curl --location 'https://api.ebrc.in/api/v1/platform-customers?page=1&limit=10&search=surya' \
--header 'x-api-key: <YOUR_API_KEY>'
page starts at 1 and defaults to 1. limit defaults to 10 and caps at 100. search filters by partial name or email, case insensitive, and must be at least 1 character.
Response example
{
"success": true,
"data": {
"items": [
{
"id": "ee849a90-7a28-49b4-8cb2-8e31041650a2",
"name": "Rohan Mehta",
"email": "finance@suryatextiles.example.com",
"type": "customer",
"companyName": "Surya Textile Exports Pvt Ltd",
"iec": "AAECS1234F",
"address": "Tiruppur, Tamil Nadu",
"platformId": "1f0c9a52-3b41-4d78-9e26-7a8b5c4d3e2f",
"isActive": true,
"hasDgftCredentials": true,
"createdAt": "2026-07-22T10:15:04.874Z"
}
],
"meta": {
"totalItems": 1,
"itemsPerPage": 10,
"totalPages": 1,
"currentPage": 1
}
},
"statusCode": 200,
"timestamp": "2026-07-22T10:25:00.000Z"
}
updatedAtandmodeare not returned in the list. Use Get Customer by Id forupdatedAt.- Fields the client has no value for are
nullhere, not absent.
isActive: false with hasDgftCredentials: false means onboarding was never finished. That client cannot file until you validate its DGFT credentials.
Errors
400Validation failedfor an out-of-rangelimit, apagebelow 1, or an emptysearch.401No API key providedorInvalid API key. See authentication errors.403Only platform users can access this resource, orMaster Platform Agreement not signed yet.
Next steps
Authorizations
Query Parameters
Page number (starts at 1)
Required range:
x >= 1Items per page
Required range:
1 <= x <= 100Filter by partial name or email