Browse documentation
Use the bbradar Pro API
Authenticate requests, query opportunity and target-intelligence fields, handle limits, and regenerate credentials safely.
10 min read
Authentication
- 1
Open Account & Billing
Find the Pro API Key card while Pro is active. - 2
Create or regenerate the key
Select Create API key when no key exists. Select Regenerate only when you intentionally want to invalidate the current secret. - 3
Copy the secret now
The complete key starts withbbr_liveand is displayed once. Store it in a secret manager or protected environment variable before closing the dialog. - 4
Send it as a Bearer token
Add the header below to server-side scripts, command-line requests, or the local MCP server.
Authorization: Bearer YOUR_BBRADAR_API_KEYYour API key is ready
This secret is shown once.
Make your first request
curl --request GET \
--url "https://bbradar.io/api/v1/pro/programs?page_size=10" \
--header "Authorization: Bearer YOUR_BBRADAR_API_KEY"Successful list responses are paginated. Follow the response paging fields instead of assuming the first page is the complete dataset.
For an authenticated parameter reference and additional examples, Pro users can also open the in-account API reference.
Endpoints
- Method and path
GET /api/v1/pro/programs- Purpose
- Browse and filter program data.
- Opportunity intelligence
competitionRiskand its reason can be present.
- Method and path
GET /api/v1/pro/opportunities/{level}- Purpose
- Browse elite, hot, strong, or potential programs.
- Opportunity intelligence
opportunity_tagcontains the tier, score, factor values, and reason.
- Method and path
GET /api/v1/pro/programs/{program_id}/targets- Purpose
- Get active target identities for one program.
- Opportunity intelligence
- Returns target score, label, breakdown, dupe risk, and Why This Target when eligible.
- Method and path
GET /api/v1/pro/targets/changes- Purpose
- Read the material target-change feed.
- Opportunity intelligence
- Returns the same target intelligence plus program-level dupe-risk context.
| Method and path | Purpose | Opportunity intelligence |
|---|---|---|
GET /api/v1/pro/programs | Browse and filter program data. | competitionRisk and its reason can be present. |
GET /api/v1/pro/opportunities/{level} | Browse elite, hot, strong, or potential programs. | opportunity_tag contains the tier, score, factor values, and reason. |
GET /api/v1/pro/programs/{program_id}/targets | Get active target identities for one program. | Returns target score, label, breakdown, dupe risk, and Why This Target when eligible. |
GET /api/v1/pro/targets/changes | Read the material target-change feed. | Returns the same target intelligence plus program-level dupe-risk context. |
Both target endpoints accept minTargetScore from 0 to 100, targetOpportunityLabel with Elite Target, Strong Target, Potential Target, or Normal, and competitionRisk with Low, Medium, High, or Unknown.
curl --request GET \
--url "https://bbradar.io/api/v1/pro/targets/changes?change_type=added&minTargetScore=70&targetOpportunityLabel=Strong%20Target&competitionRisk=Low" \
--header "Authorization: Bearer YOUR_BBRADAR_API_KEY"Rate and concurrency limits
- Control
- Programs and opportunities
- Current limit
- 80 requests per minute
- Control
- Program targets
- Current limit
- 40 requests per minute
- Control
- Target changes
- Current limit
- 30 requests per minute
- Control
- Global key limit
- Current limit
- 120 requests per minute with a burst capacity of 300
- Control
- Key and IP pair
- Current limit
- 60 requests per minute
- Control
- Concurrent requests
- Current limit
- 8 total; 3 for heavy feeds
- Control
- IP spread protection
- Current limit
- 5 distinct IPs per hour before a 10-minute lock; repeated locks can become 24 hours
| Control | Current limit |
|---|---|
| Programs and opportunities | 80 requests per minute |
| Program targets | 40 requests per minute |
| Target changes | 30 requests per minute |
| Global key limit | 120 requests per minute with a burst capacity of 300 |
| Key and IP pair | 60 requests per minute |
| Concurrent requests | 8 total; 3 for heavy feeds |
| IP spread protection | 5 distinct IPs per hour before a 10-minute lock; repeated locks can become 24 hours |
Limits are defense-in-depth controls and may be adjusted. Write clients that respect 429 responses, back off, and avoid high-concurrency page walking.
Errors and retries
- Status
- 400
- Meaning
- Invalid parameter or request shape.
- What to do
- Correct the request; do not retry unchanged.
- Status
- 401
- Meaning
- Missing, malformed, revoked, or incorrect API key.
- What to do
- Check the Bearer header and current key.
- Status
- 402
- Meaning
- The user no longer has active Pro access.
- What to do
- Restore Pro access before retrying.
- Status
- 404
- Meaning
- Program or resource not found.
- What to do
- Verify the composite program ID and URL encoding.
- Status
- 423
- Meaning
- The key is temporarily locked by abuse protection.
- What to do
- Stop traffic and wait until the lock expires.
- Status
- 429
- Meaning
- A rate or concurrency limit was exceeded.
- What to do
- Back off with jitter, reduce concurrency, then retry.
| Status | Meaning | What to do |
|---|---|---|
| 400 | Invalid parameter or request shape. | Correct the request; do not retry unchanged. |
| 401 | Missing, malformed, revoked, or incorrect API key. | Check the Bearer header and current key. |
| 402 | The user no longer has active Pro access. | Restore Pro access before retrying. |
| 404 | Program or resource not found. | Verify the composite program ID and URL encoding. |
| 423 | The key is temporarily locked by abuse protection. | Stop traffic and wait until the lock expires. |
| 429 | A rate or concurrency limit was exceeded. | Back off with jitter, reduce concurrency, then retry. |
