# A provider's logo (GET /assets/providers/{slug})

Source: DepositScout Data API docs — https://depositscout.com/developers/docs/assets.providers

The provider's logo as a public URL you can load directly (usually SVG).

---

Only Enterprise gets logos inside other responses. No logo is a free 404.

- **Cost:** 5 DS Credits per request
- **Scope:** `providers:read`
- **Same data as:** the DepositScout website

## Request

`GET https://depositscout.com/api/developer/v1/assets/providers/{slug}`

| Parameter | In | Type | Example | Description |
| --- | --- | --- | --- | --- |
| slug* | path | string | chase | Provider slug, as returned by /reference/providers or /providers. |

## Example

**curl**

```bash
curl "https://depositscout.com/api/developer/v1/assets/providers/chase" \
  -H "Authorization: Bearer $DS_API_KEY"
```

**Node**

```javascript
const res = await fetch("https://depositscout.com/api/developer/v1/assets/providers/chase", {
  headers: { Authorization: `Bearer ${process.env.DS_API_KEY}` },
});
const { data, meta } = await res.json();
console.log(meta.creditsCharged, data);
```

**Python**

```python
import os, requests

res = requests.get(
    "https://depositscout.com/api/developer/v1/assets/providers/chase",
    headers={"Authorization": f"Bearer {os.environ['DS_API_KEY']}"},
)
body = res.json()
print(body["meta"]["creditsCharged"], body["data"])
```

**MCP (tool call)**

```mcptoolcall
curl https://depositscout.com/api/mcp \
  -H "Authorization: Bearer $DS_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"assets_providers","arguments":{"slug":"chase"}}}'
```

## Response

`data` is a single object. Every 2xx also sets `X-DS-Request-Id`, `X-DS-Credits-Charged`, `X-DS-Credits-Balance`, the `X-RateLimit-*` trio and an `ETag`.

```json
{
  "data": {
    "…": "the item"
  },
  "meta": {
    "requestId": "req_7f3a9c2d1b4e5a6f7c8d",
    "generatedAt": "2026-09-21T09:00:00.000Z",
    "creditsCharged": 5,
    "creditsBalance": 199,
    "attribution": "Rates powered by DepositScout — depositscout.com"
  }
}
```

**Logos and images:** `logoUrl`. An absolute, public HTTPS URL for the provider's logo (or, for imageUrl, the card's image) that you can load directly (usually SVG; PNG or JPG for a few), or null when we have none.

## Errors

What this endpoint can return instead of data. Every error has the same shape: `error` (a stable code to branch on), `message` (what to do next), `requestId` and a `docs` link, plus the extra fields shown. None of them is charged.

401 `missing_api_key` — No Authorization header, or it isn't a Bearer token.

```json
{
  "error": "missing_api_key",
  "message": "Send your key as 'Authorization: Bearer ds_live_…'. Create one at https://depositscout.com/developer.",
  "requestId": "req_7f3a9c2d1b4e5a6f7c8d",
  "docs": "https://depositscout.com/developers/docs#missing_api_key"
}
```

403 `insufficient_scope` — The key doesn't carry the scope the endpoint needs.

```json
{
  "error": "insufficient_scope",
  "message": "This key doesn't have the 'providers:read' scope.",
  "requestId": "req_7f3a9c2d1b4e5a6f7c8d",
  "docs": "https://depositscout.com/developers/docs#insufficient_scope",
  "required": "providers:read"
}
```

402 `insufficient_credits` — Balance is lower than the call's cost. A list whose page you can't fully afford is cut to the rows your balance covers instead (meta.limit and X-DS-Limit-Reduced say so), so this only happens below one row's price. Body has required, balance and topUp.

```json
{
  "error": "insufficient_credits",
  "message": "Not enough DS Credits for this request. Top up at https://depositscout.com/developer/credits.",
  "requestId": "req_7f3a9c2d1b4e5a6f7c8d",
  "docs": "https://depositscout.com/developers/docs#insufficient_credits",
  "required": 5,
  "balance": 0,
  "topUp": "https://depositscout.com/developer/credits"
}
```

404 `not_found` — Unknown route, unknown sourceKey or slug, or an endpoint that hasn't launched yet.

```json
{
  "error": "not_found",
  "message": "Nothing at that address.",
  "requestId": "req_7f3a9c2d1b4e5a6f7c8d",
  "docs": "https://depositscout.com/developers/docs#not_found"
}
```

429 `rate_limited` — Burst or daily limit hit. Retry-After tells you when.

```json
{
  "error": "rate_limited",
  "message": "Too many requests. Retry after 12s.",
  "requestId": "req_7f3a9c2d1b4e5a6f7c8d",
  "docs": "https://depositscout.com/developers/docs#rate_limited",
  "retryAfter": 12
}
```

Every code is listed in the [shared error contract](https://depositscout.com/developers/docs#errors). Back to [all endpoints](https://depositscout.com/developers/docs#endpoints).
