Quickstart

This 5-minute quickstart walks you through installing the SDK, authenticating, and hitting all four verification endpoints. By the end you will understand the SignalStack response format and trust scoring model.

Prerequisites

  • A SignalStack account (sign up free)
  • An API key from the dashboard
  • Python 3.9+ or Node.js 18+ (or just cURL)

1. Install the SDK

Code
# Python
pip install signalstack

# TypeScript
npm install @signalstack/sdk

2. Initialize the client

Code
# Python
import signalstack

client = signalstack.SignalStack(
    api_key="ssk_live_YOUR_API_KEY"
)

# TypeScript
{`import { SignalStack } from "@signalstack/sdk"

const client = new SignalStack({
  apiKey: "ssk_live_YOUR_API_KEY",
})`}

3. Verify a business

Check if a company is registered and in good standing:

Code
# Python
result = client.verify.business(
    company_name="Acme Corp",
    jurisdiction="us_de",
    officers=True,
)

print(f"Trust score: {result.trust_score}")
print(f"Status: {result.status}")        # "active", "dissolved", etc.
print(f"Officers: {result.officers}")

{[
  '# TypeScript',
  'const result = await client.verify.business({',
  '  companyName: "Acme Corp",',
  '  jurisdiction: "us_de",',
  '  officers: true,',
  '})',
  '',
  'console.log(`Trust score: ${result.trustScore}`)',
  'console.log(`Status: ${result.status}`)',
].join('
')}

4. Analyze a document

Detect AI-generated or manipulated content:

Code
# Python
from signalstack.types import DocumentSource

result = client.verify.document(
    source=DocumentSource.URL,
    content="https://example.com/report.pdf",
)

print(f"AI probability: {result.ai_generated_probability}")
print(f"Manipulation: {result.manipulation_flags}")

# TypeScript
import { DocumentSource } from "@signalstack/sdk"

const result = await client.verify.document({
  source: DocumentSource.URL,
  content: "https://example.com/report.pdf",
})

console.log(`AI probability: ${result.aiGeneratedProbability}`)

5. Verify media provenance

Trace the origin and authenticity of an image:

Code
# Python
result = client.verify.media(
    url="https://example.com/photo.jpg",
    check_deepfakes=True,
)

print(f"Authenticity: {result.authenticity}")
print(f"Deepfake score: {result.deepfake_score}")
print(f"Source: {result.provenance_source}")

# TypeScript
const result = await client.verify.media({
  url: "https://example.com/photo.jpg",
  checkDeepfakes: true,
})

console.log(`Authenticity: ${result.authenticity}`)

6. Verify a claim

Fact-check a statement against authoritative sources:

Code
# Python
result = client.verify.claim(
    claim="Water boils at 100°C at sea level",
    sources=["web", "wikipedia", "semantic_scholar"],
)

print(f"Trust score: {result.trust_score}")
print(f"Verdict: {result.verdict}")

# TypeScript
const result = await client.verify.claim({
  claim: "Water boils at 100°C at sea level",
  sources: ["web", "wikipedia", "semantic_scholar"],
})

console.log(`Trust score: ${result.trustScore}`)

Response format

Every endpoint returns a consistent envelope:

Code
{
  "id": "vrf_d1a2b3c4e5f6",
  "request_type": "claim",
  "trust_score": 0.97,
  "verdict": "true",
  "confidence": 0.97,
  "evidence": [
    {
      "source": "Wikipedia",
      "url": "https://en.wikipedia.org/wiki/Boiling_point",
      "snippet": "At sea level, water boils at 100 °C (212 °F).",
      "supports_claim": true,
      "authority_score": 0.92,
      "retrieved_at": "2025-02-01T12:00:00Z"
    }
  ],
  "dimensions": {
    "source_authority": 0.92,
    "cross_reference": 0.95,
    "recency": 1.0,
    "llm_analysis": 0.98
  },
  "latency_ms": 142,
  "credits_used": 1
}

Using cURL

Code
curl -X POST https://signal-stack-ten.vercel.app/v1/verify/claim   -H "Authorization: Bearer $SIGNALSTACK_API_KEY"   -H "Content-Type: application/json"   -d '{
    "claim": "The Great Wall of China is visible from space",
    "sources": ["web", "wikipedia"]
  }' | jq .

Next steps