{"openapi":"3.1.0","info":{"title":"AltIndex API v2","version":"2.0.0"},"paths":{"/entities":{"get":{"tags":["entities"],"summary":"List Entities","operationId":"list_entities_entities_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/entities/{ticker}":{"get":{"tags":["entities"],"summary":"Get Entity Detail","operationId":"get_entity_detail_entities__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/social/x/{ticker}":{"get":{"tags":["social"],"summary":"Get X Timeline","description":"Data is canonicalized server-side to at most one datapoint per date. When duplicate source rows exist for a date, the latest source row (highest data_key) with at least one platform metric is used. Dates where all platform metrics are null are omitted. If the entity has no handle for the requested platform, the API returns 200 with handle=null and an empty data array.","operationId":"get_x_timeline_social_x__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From Date"}},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To Date"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialSeriesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/social/instagram/{ticker}":{"get":{"tags":["social"],"summary":"Get Instagram Timeline","description":"Data is canonicalized server-side to at most one datapoint per date. When duplicate source rows exist for a date, the latest source row (highest data_key) with at least one platform metric is used. Dates where all platform metrics are null are omitted. If the entity has no handle for the requested platform, the API returns 200 with handle=null and an empty data array.","operationId":"get_instagram_timeline_social_instagram__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From Date"}},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To Date"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialSeriesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/social/facebook/{ticker}":{"get":{"tags":["social"],"summary":"Get Facebook Timeline","description":"Data is canonicalized server-side to at most one datapoint per date. When duplicate source rows exist for a date, the latest source row (highest data_key) with at least one platform metric is used. Dates where all platform metrics are null are omitted. If the entity has no handle for the requested platform, the API returns 200 with handle=null and an empty data array.","operationId":"get_facebook_timeline_social_facebook__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From Date"}},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To Date"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialSeriesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/social/threads/{ticker}":{"get":{"tags":["social"],"summary":"Get Threads Timeline","description":"Data is canonicalized server-side to at most one datapoint per date. When duplicate source rows exist for a date, the latest source row (highest data_key) with at least one platform metric is used. Dates where all platform metrics are null are omitted. If the entity has no handle for the requested platform, the API returns 200 with handle=null and an empty data array.","operationId":"get_threads_timeline_social_threads__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From Date"}},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To Date"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialSeriesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/social/tiktok/{ticker}":{"get":{"tags":["social"],"summary":"Get Tiktok Timeline","description":"Data is canonicalized server-side to at most one datapoint per date. When duplicate source rows exist for a date, the latest source row (highest data_key) with at least one platform metric is used. Dates where all platform metrics are null are omitted. If the entity has no handle for the requested platform, the API returns 200 with handle=null and an empty data array.","operationId":"get_tiktok_timeline_social_tiktok__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From Date"}},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To Date"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialSeriesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/social/pinterest/{ticker}":{"get":{"tags":["social"],"summary":"Get Pinterest Timeline","description":"Data is canonicalized server-side to at most one datapoint per date. When duplicate source rows exist for a date, the latest source row (highest data_key) with at least one platform metric is used. Dates where all platform metrics are null are omitted. If the entity has no handle for the requested platform, the API returns 200 with handle=null and an empty data array.","operationId":"get_pinterest_timeline_social_pinterest__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From Date"}},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To Date"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialSeriesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/social/youtube/{ticker}":{"get":{"tags":["social"],"summary":"Get Youtube Timeline","description":"Data is canonicalized server-side to at most one datapoint per date. When duplicate source rows exist for a date, the latest source row (highest data_key) with at least one platform metric is used. Dates where all platform metrics are null are omitted. If the entity has no handle for the requested platform, the API returns 200 with handle=null and an empty data array.","operationId":"get_youtube_timeline_social_youtube__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From Date"}},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To Date"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialSeriesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/social/reddit/{ticker}":{"get":{"tags":["social"],"summary":"Get Reddit Timeline","description":"Data is canonicalized server-side to at most one datapoint per date. When duplicate source rows exist for a date, the latest source row (highest data_key) with at least one platform metric is used. Dates where all platform metrics are null are omitted. If the entity has no handle for the requested platform, the API returns 200 with handle=null and an empty data array.","operationId":"get_reddit_timeline_social_reddit__ticker__get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From Date"}},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To Date"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialSeriesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Root  Get"}}}}}}}},"components":{"schemas":{"EntityDetail":{"properties":{"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ticker"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"social_handles":{"$ref":"#/components/schemas/SocialHandles"}},"type":"object","required":["social_handles"],"title":"EntityDetail"},"EntityListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EntitySummary"},"type":"array","title":"Items"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","limit","offset","total"],"title":"EntityListResponse"},"EntitySummary":{"properties":{"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ticker"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"}},"type":"object","title":"EntitySummary"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"SocialDataPoint":{"properties":{"date":{"type":"string","format":"date","title":"Date"},"followers":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Followers"},"likes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Likes"},"subscribers":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subscribers"},"mentions":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Mentions"},"sentiment":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sentiment"}},"type":"object","required":["date"],"title":"SocialDataPoint"},"SocialHandles":{"properties":{"x":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X"},"instagram":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instagram"},"threads":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Threads"},"tiktok":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tiktok"},"pinterest":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pinterest"},"reddit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reddit"}},"type":"object","title":"SocialHandles"},"SocialSeriesResponse":{"properties":{"ticker":{"type":"string","title":"Ticker"},"platform":{"type":"string","title":"Platform"},"handle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Handle"},"from_date":{"type":"string","format":"date","title":"From Date"},"to_date":{"type":"string","format":"date","title":"To Date"},"data":{"items":{"$ref":"#/components/schemas/SocialDataPoint"},"type":"array","title":"Data"}},"type":"object","required":["ticker","platform","from_date","to_date","data"],"title":"SocialSeriesResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}