{"openapi":"3.1.0","info":{"title":"Billboard Charts API","description":"\nPrivate API for cached Billboard chart data.\n\nProtected endpoints require the `X-API-Key` header.\n\nMain endpoint:\n\n`GET /billboard/charts/hot-100/latest?limit=100`\n","version":"1.0.0"},"servers":[{"url":"/billboard"}],"paths":{"/":{"get":{"tags":["system"],"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"tags":["system"],"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/charts":{"get":{"tags":["billboard"],"summary":"List Charts","operationId":"list_charts_billboard_charts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/charts/{chart_slug}/snapshots":{"get":{"tags":["billboard"],"summary":"List Snapshots","operationId":"list_snapshots_billboard_charts__chart_slug__snapshots_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"chart_slug","in":"path","required":true,"schema":{"type":"string","title":"Chart Slug"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/charts/{chart_slug}/dates":{"get":{"tags":["billboard"],"summary":"List Chart Dates","operationId":"list_chart_dates_billboard_charts__chart_slug__dates_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"chart_slug","in":"path","required":true,"schema":{"type":"string","title":"Chart Slug"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":52,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/charts/{chart_slug}/latest":{"get":{"tags":["billboard"],"summary":"Latest Chart","operationId":"latest_chart_billboard_charts__chart_slug__latest_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"chart_slug","in":"path","required":true,"schema":{"type":"string","title":"Chart Slug"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":100,"title":"Limit"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Raw"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/charts/{chart_slug}/preset":{"get":{"tags":["billboard"],"summary":"Chart By Preset","operationId":"chart_by_preset_billboard_charts__chart_slug__preset_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"chart_slug","in":"path","required":true,"schema":{"type":"string","title":"Chart Slug"}},{"name":"preset","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ChartDatePreset","default":"latest"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":100,"title":"Limit"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Raw"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/charts/{chart_slug}/weeks-ago/{weeks_ago}":{"get":{"tags":["billboard"],"summary":"Chart By Weeks Ago","operationId":"chart_by_weeks_ago_billboard_charts__chart_slug__weeks_ago__weeks_ago__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"chart_slug","in":"path","required":true,"schema":{"type":"string","title":"Chart Slug"}},{"name":"weeks_ago","in":"path","required":true,"schema":{"type":"integer","title":"Weeks Ago"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":100,"title":"Limit"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Raw"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/charts/{chart_slug}/{chart_date}":{"get":{"tags":["billboard"],"summary":"Chart By Date","operationId":"chart_by_date_billboard_charts__chart_slug___chart_date__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"chart_slug","in":"path","required":true,"schema":{"type":"string","title":"Chart Slug"}},{"name":"chart_date","in":"path","required":true,"schema":{"type":"string","title":"Chart Date"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":100,"title":"Limit"}},{"name":"include_raw","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Raw"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/search":{"get":{"tags":["billboard"],"summary":"Search Entries","operationId":"search_entries_billboard_search_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"title":"Q"}},{"name":"chart_slug","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chart Slug"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"ChartDatePreset":{"type":"string","enum":["latest","previous","oldest"],"title":"ChartDatePreset"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"APIKeyHeader":{"type":"apiKey","description":"Enter your private API key from the .env file.","in":"header","name":"X-API-Key"}}}}