Choose between the demo and the Free plan
| Access path | What it gives you | What it does not establish |
|---|---|---|
| Public demo | A fictional dataset with predictable schema and examples; no key required. | Real player lines, current source coverage, or live history. |
| Free authenticated plan | 1,000 requests per UTC calendar month, up to 10 per minute. | Unlimited requests, guaranteed fresh collection, or paid webhook delivery. |
Use the public demo while building parsing logic, table layouts, and error handling. Its values are deliberately fictional, and records identify themselves with is_demo=true. Moving to the Free plan adds authentication and access to the stored live-source dataset. It does not turn fictional examples into real records or change how collection health is reported.
curl "https://prizepicksapi.com/api/v1/demo/projections?league=NBA&limit=5"What counts toward the allowance
The authenticated data API meters requests, not the number of records returned. Reading another page is another request. Increasing a page size can reduce the number of requests needed to traverse a board, provided your application can handle the response. The maximum supported page size is 200. A bounded CSV export also represents a page; it is not an unlimited download of every historical record.
The allowance and minute limit are shared across the account’s keys. Creating a second key does not create a second quota. Requests accepted by API-key authentication consume allowance even if a later parameter check rejects the request, so validate your filters before polling. Your workspace shows recorded usage, and successful authenticated responses include the remaining allowance header.
Decide whether the Free allowance fits your workflow
A small developer project that makes a few manual calls a day can behave very differently from a dashboard that refreshes on every page view. As a planning example, one request every hour is 24 requests per day, or 720 over a 30-day period. That calculation assumes one request per refresh and no other calls; multiple pages, history requests, and retries all add usage. It is a request-budget example, not a collection-frequency promise.
Cache shared responses on your server instead of making each visitor independently fetch the same board. Fetch only the league or exact stat you need. If your application is interested in changes, keep a cursor and consume the change feed rather than repeatedly downloading every projection. These design choices make your integration easier to reason about even after upgrading.
What happens when a limit is reached
A 429 response includes an error code that distinguishes the minute limit from the monthly quota. For a minute limit, wait and respect Retry-After. For an exhausted monthly allowance, stop the worker until the next UTC calendar month or choose a plan with a larger allowance. An aggressive retry loop can waste compute without producing new data.
A missing, revoked, or invalid key produces 401. That is an authentication problem rather than a signal to buy more requests. Keep these error states separate in a client: a user should be able to tell whether the key, the request budget, the parameters, or the data source needs attention.
Check what is actually available
The current source-status and coverage pages show observed leagues, stat names, and collection timestamps. Coverage is not inferred from the demo. A Free request can legitimately return an empty or stale dataset if no suitable fresh observation is available. Preserve source_status, observed_at, and null values instead of presenting every successful HTTP response as a fresh board.
Webhook delivery requires the Production plan. The Free plan is useful for a first integration and light usage, but it is not advertised as an unrestricted event-delivery service. Compare the current pricing page before selecting a larger allowance. This service is independent of PrizePicks and does not supply official account access, settlement, or sportsbook probabilities.
References
Current API documentation ↗Plans and request limits ↗PrizePicks API is an independent data service. It is not affiliated with or endorsed by PrizePicks. Observations, completeness, and freshness are separate claims; consult source status before relying on a stored line.