# Verified participant PNG logos

Retrieve an actual provider-supplied ESPN team logo after verifying a retained event and its participant.

Canonical page: https://getoddsapi.com/docs/participant-logos

## Free API key

Get a free GetOdds API key: **1,000 requests per UTC day and 60 per minute, no card**. One key covers REST and the hosted MCP server.

Sign up: https://getoddsapi.com/sign-up?ref=ai-claudebot

## Quickstart

1. Create an account at https://getoddsapi.com/sign-up?ref=ai-claudebot, open https://getoddsapi.com/dashboard and issue a key with the sources you need (draftkings, fanduel, betrivers, prizepicks or underdog). Keep it in a server environment variable named GETODDS_API_KEY.
2. Read current DraftKings NBA spreads with curl:

```bash
curl --fail-with-body "https://getoddsapi.com/api/v1/odds?sport=NBA&market=spread&fresh_only=true&limit=50" \
  -H "Authorization: Bearer $GETODDS_API_KEY"
```

3. The same request in Python (standard library only):

```python
import json, os, urllib.request

req = urllib.request.Request(
    "https://getoddsapi.com/api/v1/odds?sport=NBA&market=spread&fresh_only=true&limit=50",
    headers={"Authorization": "Bearer " + os.environ["GETODDS_API_KEY"]},
)
with urllib.request.urlopen(req) as res:
    rows = json.load(res)["data"]
for row in rows:
    print(row["away"], "at", row["home"], row["side"], row["line"], row["american"], row["observed_at"])
```

4. Check `observed_at`, `age_seconds` and `stale` on every row before using a price. Full reference: https://getoddsapi.com/docs

## Use with Claude (MCP)

```bash
claude mcp add --transport http getodds https://getoddsapi.com/api/mcp \
  --header "Authorization: Bearer $GETODDS_API_KEY"
```

The MCP tools follow the key's source grants and share its allowance. Setup guide: https://getoddsapi.com/use-with-claude

## Pricing

| Plan | Allowance | Price |
| --- | --- | --- |
| Free key | 1,000 requests a day, 60 a minute | $0, no card |
| Developer Bundle | 10,000 requests or credits a month on each of four sources | $149 a month |

Free development allowance: 1,000 requests per UTC day and 60 per minute per account, with no payment step. Paid: the Developer Bundle at $149 per month, with 10,000 monthly requests or credits on each of four sources.
Details: https://getoddsapi.com/bundle

## Guide


Canonical: https://getoddsapi.com/docs/participant-logos
Reviewed: 2026-11-07 UTC

Retrieve an actual provider-supplied ESPN team logo after verifying a retained event and its participant.

## Request a logo with event context

GET /api/v1/participants/{id}/logo?event_id={event_id} requires a bearer key granted DraftKings. Use participant IDs returned for that retained event; participant and event leagues must match. This endpoint does not guess an image path from a team ID.

A successful response is image/png bytes, not JSON. One successful request costs one credit. Bookmaker price selection is not required. Errors use the normal JSON error contract.

```bash
curl --fail-with-body "https://getoddsapi.com/api/v1/participants/espn:NFL:team:30/logo?event_id=espn-draftkings:espn:NFL:401873028" -H "Authorization: Bearer $GETODDS_API_KEY" --output team-logo.png
```

## Actual provider links and bounded images

The service verifies the persisted event identity, fetches its ESPN summary, verifies the participant, and reads the default PNG URL actually supplied by that team payload. Only the explicit ESPN CDN team-logo path is allowed. URLs cannot be submitted by the caller, redirects are rejected, and your bearer key is never sent upstream.

Each source fetch has a five-second deadline. PNG images are limited to 1 MiB and 2048 pixels per dimension, with content type, PNG signature, header dimensions and end marker validated. Unsupported or absent provider logo links return 404 LOGO_NOT_AVAILABLE; unavailable or malformed image responses return 503.

## Headers and freshness

X-GetOdds-Source-URL identifies the allowlisted provider image. X-GetOdds-Observed-At is the network receipt time, not a verified provider-update time. X-GetOdds-Request-Id links the successful image response to request accounting. Responses are private and not cached.

The contract covers supported team participants only, not guessed athlete images or canonical cross-book logo identity. Generic JSON SDK/MCP wrappers do not automatically decode this binary endpoint.

## Questions

### Can I supply a custom logo URL?

No. Only links present in the verified provider team payload are considered.

### What happens if no supported logo exists?

The service returns404 LOGO_NOT_AVAILABLE; no image is fabricated.

### Can clearing sportsbook prices block logos?

No. The endpoint requires DraftKings source access and verified event membership; price-selection preferences are separate.

## Sources

- [Stored source identity](https://getoddsapi.com/docs/sportsbook)
- [API contract](https://getoddsapi.com/openapi.json)
- [Participant identity](https://getoddsapi.com/docs/event-metadata)

Independent product; not affiliated with the operators named. No picks or predicted profits.

---

GetOdds is an independent developer product and is not affiliated with any sportsbook or pick’em operator. Prices describe data, not betting advice.
