> This page is for Cash App Pay Partner API.

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

# List brands

GET https://api.cash.app/network/v1/brands

Returns a list of brands matching the given query parameters.

**This endpoint is rate limited to 50 QPS.**

Scopes: `BRANDS_READ`

Reference: https://developers.cash.app/cash-app-pay-partner-api/api-reference/network-api/list-brands

## Servers

- `https://api.cash.app/network/v1` (Production, default)
- `https://sandbox.api.cash.app/network/v1` (Sandbox)

## Request

### Query parameters

- `cursor` (string, optional) — A pagination cursor returned by a previous call to this endpoint. Provide this cursor to retrieve the next set of results for the original query.
- `limit` (integer, optional, default: 50) — Maximum number of brands to return.
- `reference_id` (string, optional) — Filters results to only include brands with a `reference_id` matching the given value.

## Response

### 200

OK

- `brands` (list of Brand, required) — List of brands matching the given query parameters.
- `cursor` (string, optional) — The pagination cursor to be used in a subsequent request. If empty, this is the final response.

## Errors

### 400 List Brands Request Bad Request Error

Bad Request

- `errors` (list of Error, required) — A list of errors that occurred while processing the request. Min number of items: `1`

## Types

### Brand

A brand is the entity a customer perceives that they are transacting with.

- `id` (string, required) — A unique identifier for the brand issued by Cash App. Min length: `1` Max length: `128`
- `name` (string, required) — Name of the brand to be shown in Cash App next to payments. Min length: `1` Max length: `1024`
- `created_at` (datetime, required) — When this brand was created, in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format (UTC).
- `updated_at` (datetime, required) — When this brand was last updated, in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format (UTC).
- `reference_id` (string, required) — A user-defined identifier for this brand, typically used to associate the brand with a record in an external system. Independent from the [merchant reference_id](https://developers.cash.app/docs/api/network-api/operations/create-a-merchant#request-body). Min length: `1` Max length: `1024`
- `color` (string, optional) — Primary color associated with this brand and its logo, in 6-digit hex code format (`#f0f0f0`). Min length: `7` Max length: `7`
- `profile_image_url` (string, optional, default: https://example.com) — URL to the image that should be shown in Cash App next to payments made to this brand, typically the brand's logo. The image should be square and be at least 256x256. It must be less than 2MB in filesize. Acceptable file formats: - `.png` - `.jpg` - `.jpeg` Min length: `8` Max length: `8000`
- `metadata` (map from string to string, optional) — Freeform key-value pairs of arbitrary data associated with this resource. Keys and values must be passed as strings and not contain any personally identifiable information (PII). Min keys: `0` Max keys: `50` > Note: Nested keys are not supported.

### Error

Represents an error encountered during a request to the API.

- `category` (enum, required) — The high-level reason the error occurred.
  - Allowed values: `API_ERROR`, `AUTHENTICATION_ERROR`, `BRAND_ERROR`, `DISPUTE_ERROR`, `MERCHANT_ERROR`, `INVALID_REQUEST_ERROR`, `PAYMENT_PROCESSING_ERROR`, `RATE_LIMIT_ERROR`, `WEBHOOK_ERROR`, `API_KEY_ERROR`, `GRANT_ERROR`
- `code` (string, required) — A unique identifier for the specific type of error that occurred. For more information, see [Error Code Reference](/cash-app-pay-partner-api/guides/technical-guides/api-fundamentals/errors/error-code-reference). Min length: `1`
- `detail` (string, optional) — Human-readable description of why the error occurred and how to resolve it. Min length: `1`
- `field` (string, optional) — The field in the request that caused the error, using array and object dot notation. Min length: `1`

## Examples

**Response**

```json
{
  "brands": [
    {
      "id": "id",
      "name": "name",
      "created_at": "2021-01-01T00:00:00Z",
      "updated_at": "2021-01-01T00:00:00Z",
      "reference_id": "example-id",
      "color": "#ffffff",
      "profile_image_url": "https://example.com",
      "metadata": {
        "my-meta": "meta-value"
      }
    }
  ],
  "cursor": "cursor"
}
```

**SDK Code**

```python
import requests

url = "https://api.cash.app/network/v1/brands"

response = requests.get(url)

print(response.json())
```

```javascript
const url = 'https://api.cash.app/network/v1/brands';
const options = {method: 'GET'};

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

```go
package main

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

func main() {

	url := "https://api.cash.app/network/v1/brands"

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

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

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

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

}
```

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

url = URI("https://api.cash.app/network/v1/brands")

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

request = Net::HTTP::Get.new(url)

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

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

HttpResponse<String> response = Unirest.get("https://api.cash.app/network/v1/brands")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.cash.app/network/v1/brands');

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

```csharp
using RestSharp;

var client = new RestClient("https://api.cash.app/network/v1/brands");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.cash.app/network/v1/brands")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

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()
```