{"openapi":"3.0.3","info":{"title":"Signal Labs API","description":"Competitive intelligence API. Track competitors, generate battlecards, and monitor signals programmatically.","version":"1.0.0","contact":{"url":"https://usesignallabs.com"},"x-logo":{"url":"https://usesignallabs.com/logo.png"}},"servers":[{"url":"https://app.usesignallabs.com/api/v1","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"API key from Settings > API Keys (e.g. sl_live_...)"}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"type":{"type":"string"},"upgrade_url":{"type":"string"},"docs_url":{"type":"string"},"required_step":{"type":"string"},"credits_remaining":{"type":"number"},"credits_required":{"type":"number"},"retry_after":{"type":"number"}}}}},"Company":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"website":{"type":"string"},"description":{"type":"string"},"industry":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"Product":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"target_market":{"type":"string"},"created_at":{"type":"string","format":"date-time"}}},"Competitor":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"website":{"type":"string"},"description":{"type":"string"},"relationship_type":{"type":"string","enum":["direct","indirect"]},"product_id":{"type":"string","format":"uuid","nullable":true},"status":{"type":"string"},"created_at":{"type":"string","format":"date-time"}}},"Battlecard":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string"},"overview":{"type":"string"},"strengths":{"type":"array","items":{"type":"string"}},"weaknesses":{"type":"array","items":{"type":"string"}},"our_advantages":{"type":"array","items":{"type":"string"}},"key_talking_points":{"type":"array","items":{"type":"string"}},"positioning_strategy":{"type":"string"},"win_strategy":{"type":"string"},"enablement_focus":{"type":"string","enum":["gtm_sales","product","marketing_growth","leadership","landscape"]},"common_objections":{"type":"array","items":{"type":"object","properties":{"objection":{"type":"string"},"response":{"type":"string"}}}},"discovery_questions":{"type":"array","items":{"type":"object","properties":{"question":{"type":"string"},"what_to_listen_for":{"type":"string"},"how_to_position":{"type":"string"}}}},"created_at":{"type":"string","format":"date-time"}}},"Signal":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"competitor_name":{"type":"string"},"post_type":{"type":"string"},"importance_score":{"type":"number"},"brief_summary":{"type":"string"},"detailed_summary":{"type":"string"},"highlights":{"type":"array","items":{"type":"string"}},"what_this_means_for_us":{"type":"string"},"recommendations":{"type":"object"},"article_url":{"type":"string"},"created_at":{"type":"string","format":"date-time"}}}}},"paths":{"/companies":{"get":{"operationId":"listCompanies","summary":"List all tracked companies","tags":["Companies"],"responses":{"200":{"description":"List of companies"}}},"post":{"operationId":"createCompany","summary":"Create or track a new company","tags":["Companies"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"domain":{"type":"string"},"description":{"type":"string"},"industry":{"type":"string"}}}}}},"responses":{"201":{"description":"Company created"}}}},"/companies/{id}":{"get":{"operationId":"getCompany","summary":"Get a single company","tags":["Companies"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Company details"}}}},"/companies/{id}/products":{"get":{"operationId":"listProducts","summary":"List products for a company","tags":["Products"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"List of products"}}},"post":{"operationId":"createProduct","summary":"Create a product/service vertical","tags":["Products"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"}}}}}},"responses":{"201":{"description":"Product created"}}}},"/companies/{id}/competitors":{"get":{"operationId":"listCompetitors","summary":"List competitors","tags":["Competitors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"product_id","in":"query","schema":{"type":"string"},"description":"Filter by product"}],"responses":{"200":{"description":"List of competitors"}}},"post":{"operationId":"addCompetitors","summary":"Add competitors (supports bulk)","tags":["Competitors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"competitors":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"website":{"type":"string"},"description":{"type":"string"},"relationship_type":{"type":"string","enum":["direct","indirect"]},"product_id":{"type":"string"}}}}}}}}},"responses":{"201":{"description":"Competitors created"}}}},"/companies/{id}/competitors/discover":{"post":{"operationId":"discoverCompetitors","summary":"AI-powered competitor discovery","tags":["Competitors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Suggested competitors"}}}},"/companies/{id}/battlecards":{"get":{"operationId":"listBattlecards","summary":"Get battlecards for a company","tags":["Battlecards"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"competitor_id","in":"query","schema":{"type":"string"}},{"name":"enablement_focus","in":"query","schema":{"type":"string","enum":["gtm_sales","product","marketing_growth","leadership","landscape"]}}],"responses":{"200":{"description":"List of battlecards"}}}},"/companies/{id}/battlecards/generate":{"post":{"operationId":"generateBattlecard","summary":"Generate a new battlecard (costs 1 credit)","tags":["Battlecards"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["competitor_id"],"properties":{"competitor_id":{"type":"string"},"enablement_focus":{"type":"string","enum":["gtm_sales","product","marketing_growth","leadership"],"default":"gtm_sales"},"special_instructions":{"type":"string"}}}}}},"responses":{"201":{"description":"Battlecard generated and saved"}}}},"/companies/{id}/signals":{"get":{"operationId":"listSignals","summary":"Get intelligence signals","tags":["Signals"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"competitor_id","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":100}}],"responses":{"200":{"description":"List of signals"}}}},"/companies/{id}/signals/summary":{"get":{"operationId":"getSignalSummary","summary":"AI-generated signal digest","tags":["Signals"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"days","in":"query","schema":{"type":"integer","default":7,"maximum":30}}],"responses":{"200":{"description":"Executive signal summary"}}}},"/ai/chat":{"post":{"operationId":"aiChat","summary":"Ask AI about competitive landscape (RAG-powered)","tags":["AI"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["message","company_id"],"properties":{"message":{"type":"string"},"company_id":{"type":"string"},"conversation_id":{"type":"string"}}}}}},"responses":{"200":{"description":"AI response"}}}}}}