{"openapi":"3.1.0","info":{"title":"bbconnectapi","description":"Public bug bounty program metadata, rewards, scopes and policies. No API key, login or Authorization header required. Directory summaries are fast; live details can take longer. Check partial/source status before using results.","version":"1.0.0"},"servers":[{"url":"/","description":"Current host"}],"paths":{"/api/v1/health":{"get":{"tags":["Service"],"summary":"Check application readiness without contacting platforms","operationId":"health_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Payload"}}}}}}},"/api/v1/sources":{"get":{"tags":["Service"],"summary":"Describe data sources, capabilities and cache lifetimes","operationId":"sources_api_v1_sources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Payload"}}}}}}},"/api/v1/programs":{"get":{"tags":["Programs"],"summary":"Search and paginate programs; summaries by default","operationId":"programs_api_v1_programs_get","parameters":[{"name":"platforms","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated platform names; use /sources for supported values.","default":"hackerone","title":"Platforms"},"description":"Comma-separated platform names; use /sources for supported values."},{"name":"search","in":"query","required":false,"schema":{"type":"string","maxLength":300,"description":"Case-insensitive substring in name, handle, URL or website.","default":"","title":"Search"},"description":"Case-insensitive substring in name, handle, URL or website."},{"name":"bounty_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Bounty Only"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":0,"default":0,"title":"Offset"}},{"name":"include_details","in":"query","required":false,"schema":{"type":"boolean","description":"Live rewards, targets and rules for this page; maximum limit 100.","default":false,"title":"Include Details"},"description":"Live rewards, targets and rules for this page; maximum limit 100."},{"name":"currency","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{3}$"},{"type":"null"}],"description":"ISO currency code; excludes unknown currencies.","title":"Currency"},"description":"ISO currency code; excludes unknown currencies."},{"name":"reward_at_least","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"Require advertised max_bounty >= this amount. Requires currency; applied to directory metadata.","title":"Reward At Least"},"description":"Require advertised max_bounty >= this amount. Requires currency; applied to directory metadata."},{"name":"sort_by","in":"query","required":false,"schema":{"enum":["name","max_bounty","min_bounty"],"type":"string","default":"name","title":"Sort By"}},{"name":"descending","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Descending"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProgramPage"}}}},"400":{"description":"Invalid filter combination","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorPayload"}}}},"422":{"description":"Invalid query or request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorPayload"}}}},"429":{"description":"Collection capacity busy; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorPayload"}}}},"503":{"description":"Required upstream data is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorPayload"}}}}}}},"/api/v1/programs/batch":{"post":{"tags":["Programs"],"summary":"Retrieve details for up to 20 programs; preserve input order","operationId":"batch_api_v1_programs_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchResult"}}}},"400":{"description":"Invalid filter combination","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorPayload"}}}},"422":{"description":"Invalid query or request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorPayload"}}}},"429":{"description":"Collection capacity busy; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorPayload"}}}},"503":{"description":"All requested program lookups failed; inspect each item.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchResult"}}}}}}},"/api/v1/programs/{platform}/{handle}":{"get":{"tags":["Programs"],"summary":"Retrieve public program rewards, rules, scopes and exclusions","operationId":"program_api_v1_programs__platform___handle__get","parameters":[{"name":"platform","in":"path","required":true,"schema":{"$ref":"#/components/schemas/Platform"}},{"name":"handle","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_.-]{1,200}$","title":"Handle"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProgramDetails"}}}},"400":{"description":"Invalid filter combination","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorPayload"}}}},"422":{"description":"Invalid query or request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorPayload"}}}},"429":{"description":"Collection capacity busy; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorPayload"}}}},"503":{"description":"Required upstream data is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorPayload"}}}}}}},"/api/v1/programs/{platform}/{handle}/assets":{"get":{"tags":["Assets"],"summary":"Get normalized assets; all exclusions remain visible","operationId":"assets_api_v1_programs__platform___handle__assets_get","parameters":[{"name":"platform","in":"path","required":true,"schema":{"$ref":"#/components/schemas/Platform"}},{"name":"handle","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9_.-]{1,200}$","title":"Handle"}},{"name":"asset_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["url","api","domain","wildcard","ip","ip_range","android","ios","device","other"],"type":"string"},{"type":"null"}],"title":"Asset Type"}},{"name":"search","in":"query","required":false,"schema":{"type":"string","maxLength":300,"default":"","title":"Search"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetPage"}}}},"400":{"description":"Invalid filter combination","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorPayload"}}}},"422":{"description":"Invalid query or request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorPayload"}}}},"429":{"description":"Collection capacity busy; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorPayload"}}}},"503":{"description":"Required upstream data is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorPayload"}}}}}}},"/api/v1/stats":{"get":{"tags":["Service"],"summary":"Count directory programs without fetching live detail documents","operationId":"stats_api_v1_stats_get","parameters":[{"name":"platforms","in":"query","required":false,"schema":{"type":"string","default":"hackerone,bugcrowd,intigriti,yeswehack","title":"Platforms"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Payload"}}}},"400":{"description":"Invalid filter combination","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorPayload"}}}},"422":{"description":"Invalid query or request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorPayload"}}}},"429":{"description":"Collection capacity busy; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorPayload"}}}},"503":{"description":"Required upstream data is unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorPayload"}}}}}}}},"components":{"schemas":{"Asset":{"properties":{"identifier":{"type":"string","title":"Identifier"},"type":{"type":"string","title":"Type"},"native_type":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Native Type"},"instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions"},"eligible_for_bounty":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Eligible For Bounty"},"raw":{"title":"Raw"}},"type":"object","required":["identifier","type","native_type","instructions","eligible_for_bounty","raw"],"title":"Asset"},"AssetPage":{"properties":{"ok":{"type":"boolean","title":"Ok"},"partial":{"type":"boolean","title":"Partial","default":false},"api_version":{"type":"string","title":"Api Version","default":"1.0.0"},"platform":{"type":"string","title":"Platform"},"handle":{"type":"string","title":"Handle"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"},"next_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Offset"},"in_scope":{"items":{"$ref":"#/components/schemas/Asset"},"type":"array","title":"In Scope"},"out_of_scope":{"items":{"$ref":"#/components/schemas/Asset"},"type":"array","title":"Out Of Scope"},"rules":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Rules"},"source":{"additionalProperties":true,"type":"object","title":"Source"},"note":{"type":"string","title":"Note"}},"additionalProperties":true,"type":"object","required":["ok","platform","handle","total","limit","offset","next_offset","in_scope","out_of_scope","source","note"],"title":"AssetPage"},"BatchRequest":{"properties":{"programs":{"items":{"$ref":"#/components/schemas/ProgramRef"},"type":"array","maxItems":20,"minItems":1,"title":"Programs"}},"additionalProperties":false,"type":"object","required":["programs"],"title":"BatchRequest"},"BatchResult":{"properties":{"ok":{"type":"boolean","title":"Ok"},"partial":{"type":"boolean","title":"Partial","default":false},"api_version":{"type":"string","title":"Api Version","default":"1.0.0"},"count":{"type":"integer","title":"Count"},"succeeded":{"type":"integer","title":"Succeeded"},"programs":{"items":{"$ref":"#/components/schemas/ProgramDetails"},"type":"array","title":"Programs"}},"additionalProperties":true,"type":"object","required":["ok","count","succeeded","programs"],"title":"BatchResult"},"ErrorInfo":{"properties":{"code":{"type":"string","title":"Code"},"message":{"type":"string","title":"Message"},"details":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Details"}},"type":"object","required":["code","message"],"title":"ErrorInfo"},"ErrorPayload":{"properties":{"ok":{"type":"boolean","const":false,"title":"Ok","default":false},"api_version":{"type":"string","title":"Api Version","default":"1.0.0"},"error":{"$ref":"#/components/schemas/ErrorInfo"}},"type":"object","required":["error"],"title":"ErrorPayload"},"Payload":{"properties":{"ok":{"type":"boolean","title":"Ok"},"partial":{"type":"boolean","title":"Partial","default":false},"api_version":{"type":"string","title":"Api Version","default":"1.0.0"}},"additionalProperties":true,"type":"object","required":["ok"],"title":"Payload","description":"Shared envelope; platform-native policy and reward structures remain JSON."},"Platform":{"type":"string","enum":["hackerone","bugcrowd","intigriti","yeswehack"],"title":"Platform"},"ProgramDetails":{"properties":{"ok":{"type":"boolean","title":"Ok"},"partial":{"type":"boolean","title":"Partial","default":false},"api_version":{"type":"string","title":"Api Version","default":"1.0.0"},"platform":{"type":"string","title":"Platform"},"handle":{"type":"string","title":"Handle"},"targets":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Targets"},"rules":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Rules"},"reward_table":{"title":"Reward Table"},"min_bounty":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Bounty"},"max_bounty":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Bounty"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"field_status":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Field Status"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"},"fetched_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fetched At"},"source_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Updated At"},"warning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Warning"},"cached":{"type":"boolean","title":"Cached","default":false}},"additionalProperties":true,"type":"object","required":["ok","platform","handle"],"title":"ProgramDetails"},"ProgramPage":{"properties":{"ok":{"type":"boolean","title":"Ok"},"partial":{"type":"boolean","title":"Partial","default":false},"api_version":{"type":"string","title":"Api Version","default":"1.0.0"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"},"next_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Offset"},"include_details":{"type":"boolean","title":"Include Details"},"sources":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object","title":"Sources"},"programs":{"items":{"$ref":"#/components/schemas/ProgramResult"},"type":"array","title":"Programs"},"filters":{"additionalProperties":true,"type":"object","title":"Filters"}},"additionalProperties":true,"type":"object","required":["ok","total","limit","offset","next_offset","include_details","sources","programs","filters"],"title":"ProgramPage"},"ProgramRef":{"properties":{"platform":{"$ref":"#/components/schemas/Platform"},"handle":{"type":"string","maxLength":200,"minLength":1,"pattern":"^[A-Za-z0-9_.-]+$","title":"Handle","description":"Use the exact handle returned by the programs endpoint."}},"additionalProperties":false,"type":"object","required":["platform","handle"],"title":"ProgramRef"},"ProgramResult":{"properties":{"id":{"type":"string","title":"Id"},"platform":{"$ref":"#/components/schemas/Platform"},"handle":{"type":"string","title":"Handle"},"name":{"type":"string","title":"Name"},"url":{"type":"string","title":"Url"},"offers_bounties":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Offers Bounties"},"min_bounty":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Bounty"},"max_bounty":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Bounty"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"targets":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Targets"},"rules":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Rules"},"reward_table":{"title":"Reward Table"},"details_source":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Details Source"},"field_status":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Field Status"}},"additionalProperties":true,"type":"object","required":["id","platform","handle","name","url"],"title":"ProgramResult"}}},"tags":[{"name":"Programs","description":"Search public programs and retrieve details."},{"name":"Assets","description":"Normalized assets with native records and exclusions."},{"name":"Service","description":"Readiness, supported sources and directory statistics."}]}