Introduction

Signal Labs is a real-time competitive intelligence platform. Track competitors, generate AI-powered battlecards, and monitor competitive and market signals from the dashboard, or programmatically via REST API, native SDKs, or AI tools, agents, and CLIs via MCP.

Base URL

All API requests are made to the following base URL:

Base URL
https://app.usesignallabs.com/api/v1

Authentication

All API requests require a Bearer token in the Authorization header:

Bash
curl https://app.usesignallabs.com/api/v1/companies \
  -H "Authorization: Bearer sl_live_your_key_here"

Get your API key from Settings > API Keys.

Response Format

All responses return JSON with a consistent structure:

JSON
{
  "data": { ... },
  "meta": {
    "total": 5
  }
}

List endpoints return data as an array. Single-resource endpoints return data as an object.

Errors

Errors return a structured JSON object with actionable guidance:

JSON
{
  "error": {
    "code": "insufficient_credits",
    "message": "Battlecard generation requires 1 credit. Your organization has 0 remaining.",
    "type": "credit_error",
    "credits_remaining": 0,
    "credits_required": 1,
    "upgrade_url": "https://app.usesignallabs.com/settings/billing"
  }
}

Error Types

HTTP CodeTypeDescription
400validation_errorMissing or invalid parameters
400prerequisite_errorMust complete a prior step first (includes required_step and docs_url)
401authentication_errorMissing, invalid, or revoked API key
403credit_errorInsufficient credits for this operation
403limit_errorPlan limit reached (e.g., competitor count)
404not_found_errorResource not found
429rate_limit_errorDaily rate limit exceeded (includes retry_after)
400invalid_fileFile type not supported or exceeds 25MB
400document_context_too_largeCombined document text exceeds 100,000 character limit
400document_not_readyDocument not found or not yet processed
403storage_quota_exceededOrganization storage quota exceeded
500server_errorInternal server error

Rate Limits

PlanRequests / Day
Free Trial100
Starter500
Pro1,000
Ultra5,000
Enterprise10,000

Storage Quotas

PlanStorage Quota
Free Trial100 MB
Starter1 GB
Pro5 GB
Ultra10 GB
Enterprise10 GB

Credits

OperationCost
Generate Battlecard1 credit
AI Modify Battlecard0.5 credits
Create CompanyFree
Add CompetitorFree (plan limits apply)
Add ProductFree
List / Get (all read ops)Free

Documents

Upload competitive documents for AI analysis and RAG-powered battlecard generation.

MethodPathDescription
POST/v1/documents/uploadUpload a document (multipart form data, max 25MB). Supported: PDF, DOCX, XLSX, CSV, PPTX, TXT, MD, PNG, JPG, WebP.
GET/v1/documents?company_id={id}List documents with storage usage stats
GET/v1/documents/{id}Get document detail including extracted text
DELETE/v1/documents/{id}Delete a document and its RAG chunks

Documents are automatically parsed, chunked, and embedded for RAG. Use document_ids when generating battlecards to include uploaded documents as additional context.

Enablement Focus Types

When generating battlecards, specify one of these focus types:

FocusDescriptionParameter
gtm_salesGTM / Sales enablement (default)competitor_id
productProduct & engineeringcompetitor_id
marketing_growthMarketing & growthcompetitor_id
leadershipStrategy & leadershipcompetitor_id
landscapeMulti-competitor landscape analysiscompetitor_ids (array of 2+)

Note: The landscape focus requires competitor_ids (an array of 2 or more competitor IDs) instead of competitor_id.

SDKs

  • JavaScript / TypeScript: npm install @signal-labs/sdk
  • Python: pip install signallabs

MCP Server

For AI agents (Claude, Cursor, Copilot):

Bash
npx signallabs-mcp

See the MCP Setup Guide for full configuration instructions.

What's Next?