> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.getsinbad.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.getsinbad.com/_mcp/server.

# List partner customers

GET https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users

List partner customers.

**Credential:** Partner secret

**Before you call**

- A server-side partner secret for the owning partner. Do not send an Origin header.

Lists only customers of

the authenticated partner, across its integrations. Each page scans at most

100 profiles plus one lookahead; deleted and malformed profiles are omitted.

A page can be empty and still have a nextCursor. Follow nextCursor until null.

Returns directory names and stable partner customer IDs, without contacts,

wallet addresses, sessions, or payment data. Requires no customer session.



> Confirm with Sinbad that this endpoint is enabled in your environment.

**Errors**

| Status | Code | What to do |
| --- | --- | --- |
| 400 | `VALIDATION_ERROR` | Correct the fields reported in details before retrying. |
| 401 | `UNAUTHENTICATED` | Create a new customer session or use a valid server credential. |
| 403 | `FORBIDDEN` | Check credential ownership, integration and the supplied Origin. |
| 503 | `UPSTREAM_ERROR` | Retry with backoff; preserve the same idempotency key for a repeated mutation. |

Reference: https://docs.getsinbad.com/api-reference/customer-management/list-partner-users

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Request

### Query parameters

- `after` (string, optional) — nextCursor from the preceding page; omit for the first page.

## Response

### 200

One bounded page of partner customers

- `users` (list of V1PartnerUsersGetResponsesContentApplicationJsonSchemaUsersItems, required)
- `nextCursor` (string, required, nullable)

## Errors

### 400 Bad Request Error

The request is invalid.

- `error` (V1PartnerUsersGetResponsesContentApplicationJsonSchemaError, required)

### 401 Unauthorized Error

Authentication is required.

- `error` (V1PartnerUsersGetResponsesContentApplicationJsonSchemaError, required)

### 403 Forbidden Error

You do not have permission to perform this action.

- `error` (V1PartnerUsersGetResponsesContentApplicationJsonSchemaError, required)

### 503 Service Unavailable Error

Service temporarily unavailable.

- `error` (V1PartnerUsersGetResponsesContentApplicationJsonSchemaError, required)

## Types

### V1PartnerUsersGetResponsesContentApplicationJsonSchemaUsersItems

- `partnerUserId` (string, required)
- `fullName` (string, required)

### V1PartnerUsersGetResponsesContentApplicationJsonSchemaError

- `code` (string, required)
- `numericId` (integer, required)
- `message` (string, required)
- `requestId` (string, optional)
- `details` (map from string to any, optional)

## Examples

### Success

**Response**

```json
{
  "users": [
    {
      "partnerUserId": "customer_demo",
      "fullName": "Alex Example"
    }
  ],
  "nextCursor": null
}
```

**SDK Code**

```python Success
import requests

url = "https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript Success
const url = 'https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Success
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Success
require 'uri'
require 'net/http'

url = URI("https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Success
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Success
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Success
using RestSharp;

var client = new RestClient("https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Success
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Empty final page

**Response**

```json
{
  "users": [],
  "nextCursor": null
}
```

**SDK Code**

```python Empty final page
import requests

url = "https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript Empty final page
const url = 'https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Empty final page
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Empty final page
require 'uri'
require 'net/http'

url = URI("https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Empty final page
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Empty final page
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Empty final page
using RestSharp;

var client = new RestClient("https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Empty final page
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Next page

**Response**

```json
{
  "users": [
    {
      "partnerUserId": "customer_demo_1",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_2",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_3",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_4",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_5",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_6",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_7",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_8",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_9",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_10",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_11",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_12",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_13",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_14",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_15",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_16",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_17",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_18",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_19",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_20",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_21",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_22",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_23",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_24",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_25",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_26",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_27",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_28",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_29",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_30",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_31",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_32",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_33",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_34",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_35",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_36",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_37",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_38",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_39",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_40",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_41",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_42",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_43",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_44",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_45",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_46",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_47",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_48",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_49",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_50",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_51",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_52",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_53",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_54",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_55",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_56",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_57",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_58",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_59",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_60",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_61",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_62",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_63",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_64",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_65",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_66",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_67",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_68",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_69",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_70",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_71",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_72",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_73",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_74",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_75",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_76",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_77",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_78",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_79",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_80",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_81",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_82",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_83",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_84",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_85",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_86",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_87",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_88",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_89",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_90",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_91",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_92",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_93",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_94",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_95",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_96",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_97",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_98",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_99",
      "fullName": "Alex Example"
    },
    {
      "partnerUserId": "customer_demo_100",
      "fullName": "Alex Example"
    }
  ],
  "nextCursor": "user_demo_100"
}
```

**SDK Code**

```python Next page
import requests

url = "https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript Next page
const url = 'https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Next page
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Next page
require 'uri'
require 'net/http'

url = URI("https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Next page
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Next page
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Next page
using RestSharp;

var client = new RestClient("https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Next page
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://us-central1-sinbad-staging-env.cloudfunctions.net/b2b-v1/v1/partner-users")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```