Live in Production

Surgical Intelligence Extraction at Scale

Multi-dimensional filtering. Section-level precision. 15+ structured outputs. Built for enterprise AI teams.

15+
Body Sections
Free
7-Day Context
1000
Stories/Month
api.synorb.com
Basic Fetch
# Simple story retrieval
curl -X POST https://api.synorb.com/stories \
  -H "api-key: YOUR_KEY" \
  -H "secret: YOUR_SECRET" \
  -d '{
    "stream_id": 889,
    "published_date_from": "2025-01-01"
  }'

# Returns complete stories
# Filter by entity dimensions
curl -X POST https://api.synorb.com/stories \
  -H "api-key: YOUR_KEY" \
  -H "secret: YOUR_SECRET" \
  -d '{
    "stream_id": 889,
    "filters": [
      {"key": "Topics", "value": "AI"}
    ]
  }'

# Returns only AI-related content
# Extract specific sections only
curl -X POST https://api.synorb.com/stories \
  -H "api-key: YOUR_KEY" \
  -H "secret: YOUR_SECRET" \
  -d '{
    "stream_id": 889,
    "body_sections": [
      "Key Insights",
      "Signals"
    ]
  }'

# Returns only insights + signals
# Surgical multi-dimensional extraction
curl -X POST https://api.synorb.com/stories \
  -H "api-key: YOUR_KEY" \
  -H "secret: YOUR_SECRET" \
  -d '{
    "stream_id": 889,
    "filters": [
      {"key": "Topics", "value": "AI"},
      {"key": "people", "value": "Marc Andreessen"}
    ],
    "body_sections": ["Portfolio Mentions"],
    "published_date_from": "2025-09-01"
  }'

# Precision-targeted intelligence

Endpoint Reference

Complete API specifications with enhanced filtering and surgical extraction capabilities

GET
/profile
Authentication verification and quota tracking

Authentication

Headers only - no query parameters required.

Header Type Description
api-key string Your API key from account dashboard
secret string Your API secret for authentication

Response Schema

{
  "user_id": 429,
  "usage": {
    "quota": 1000,           // Monthly allocation
    "usage": 3252,           // Stories consumed
    "overage": 2252,         // Beyond quota
    "quota_reset_date": "2025-10-15"
  }
}
GET
/catalog
Discover all available streams with metadata

Response Schema

{
  "streams": [
    {
      "id": 889,
      "title": "Andreessen Horowitz Insights",
      "description": "VC insights, portfolio updates...",
      "purpose": "Track venture perspectives...",
      "home_domain": "economics-business-work",
      "cross_domains": ["engineering-technology"],
      "primary_entity": {
        "name": "Andreessen Horowitz",
        "type": "org",
        "role": "publisher"
      }
    }
  ]
}

Key Fields

Field Type Description
id integer Stream identifier for detail queries
home_domain string Primary domain classification
cross_domains array Secondary domains this stream appears in
GET
/stream?streamid={id}
Filter discovery and stream structure inspection

Parameters

Parameter Type Required Description
streamid integer Required Stream ID from catalog

Response: Filter Discovery

{
  "stream_id": 889,
  "title": "Andreessen Horowitz Insights",
  
  // 15+ structured body sections (stream-specific)
  "body_sections": [
    "Overview", "Key Insights", "Notable Quotes",
    "Actionable Takeaways", "Announcement",
    "Key Details", "Big Picture", "Key Arguments",
    "Signals", "Entities Mentioned", "Links",
    "Portfolio Mentions", "Risks & Watchpoints",
    "Resources Mentioned", "Timestamps"
  ],
  
  // Multi-dimensional filters (stream-specific)
  "filters": [
    {
      "key": "Topics",
      "allowed": ["AI", "Crypto", "Biotech", "Enterprise"]
    },
    {
      "key": "people",
      "allowed": ["Marc Andreessen", "Ben Horowitz"]
    },
    {
      "key": "content_type",
      "allowed": ["Blog Post", "Podcast", "Tweet Thread"]
    }
  ],
  
  // Activity metrics
  "activity": {
    "7d_count": 12,
    "30d_count": 48,
    "90d_count": 156
  }
}
Filter Discovery Pattern

Always call /stream first to discover available filters and body sections for that stream. Each stream has unique filter dimensions and section structures. Use this metadata to construct precise /stories queries.

POST
/stories
Surgical extraction with multi-dimensional filtering

Request Body

{
  "stream_id": 889,                    // Required
  "published_date_from": "2025-08-01", // Optional
  "published_date_to": "2025-10-03",   // Optional
  "page_num": 0,                      // Default: 0
  "page_size": 100,                   // Max: 200
  
  // Section extraction (empty = all)
  "body_sections": [
    "Key Insights",
    "Signals",
    "Portfolio Mentions"
  ],
  
  // Multi-dimensional filtering
  "filters": [
    {"key": "Topics", "value": "AI"},
    {"key": "people", "value": "Marc Andreessen"}
  ]
}

Request Parameters

Parameter Type Required Description
stream_id integer Required Target stream identifier
body_sections array Optional Sections to extract (empty = all 15 sections). Use /stream to discover available sections.
filters array Optional Multi-dimensional filters [{key, value}]. Use /stream to discover filter dimensions.
published_date_from string Optional Start date (YYYY-MM-DD format)
page_size integer Optional Results per page (max: 200)

Response Schema

{
  "stories": [
    {
      "story_id": 1126730,
      "published_date": "2025-09-23",
      "filters": [
        {"key": "Topics", "allowed": ["AI", "Crypto"]},
        {"key": "people", "allowed": ["Ben Horowitz"]}
      ],
      "story": {
        "body": "# Title\n\n## Key Insights\n..."
      }
    }
  ],
  "pagination": {
    "total_count": 28,
    "next": null,
    "prev": null
  }
}
Surgical Extraction

Combine body_sections + filters for precision targeting. Example: Extract only "Portfolio Mentions" section from AI-related stories by Marc Andreessen. Filters are stream-specific - always check /stream first.

Native SDKs

Production-ready libraries with built-in surgical extraction and multi-dimensional filtering

PY

Python

v0.1.0
pip install synorb
from synorb import Client client = Client(api_key, secret) # Discover stream filters stream = client.get_stream(889) print(stream["body_sections"]) # 15+ sections # Surgical extraction stories = client.get_stories( stream_id=889, filters=[ {"key": "Topics", "value": "AI"}, {"key": "people", "value": "Marc Andreessen"} ], body_sections=["Key Insights", "Signals"] ) # Process extracted intelligence for story in stories["stories"]: insights = story["story"]["body"] print(insights)
JS

JavaScript/TypeScript

v0.1.0
npm install synorb
import { Synorb } from 'synorb' const client = new Synorb(apiKey, secret) // Discover stream structure const stream = await client.getStream(889) console.log(stream.bodySections) // Multi-dimensional filtering const response = await client.getStories({ streamId: 889, filters: [ { key: "Topics", value: "AI" }, { key: "people", value: "Ben Horowitz" } ], bodySections: ["Portfolio Mentions"] }) // Extract portfolio intelligence response.stories.forEach(s => { console.log(s.story.body) })
JAVA

Java

Coming Q1 2026
com.synorb:synorb-java:1.0.0
import com.synorb.Client; import com.synorb.models.*; Client client = new Client(apiKey, secret); // Surgical query builder Stories response = client.stories() .streamId(889) .filter("Topics", "AI") .sections("Key Insights", "Signals") .execute();
GO

Go

Coming Q1 2026
go get github.com/synorb/synorb-go
import "github.com/synorb/synorb-go" client := synorb.NewClient(apiKey, secret) // Multi-filter query response, err := client.GetStories(synorb.Query{ StreamID: 889, Filters: []synorb.Filter{ {Key: "Topics", Value: "AI"}, }, Sections: []string{"Key Insights"}, })

Enterprise Use Cases

Real patterns for production AI applications

Competitive Intelligence

Track Competitor Portfolio Activity

Extract portfolio mentions from VC content, filtered by specific topics and investors

filters=[{"key": "people", "value": "Marc Andreessen"}]
body_sections=["Portfolio Mentions", "Signals"]
Risk Monitoring

Extract Risk Signals from Filings

Pull only risk sections from regulatory filings, filtered by entity type

filters=[{"key": "entity_type", "value": "Public Company"}]
body_sections=["Risks & Watchpoints"]
Market Research

AI Trend Analysis from VC Insights

Aggregate key insights about AI from multiple venture sources

filters=[{"key": "Topics", "value": "AI"}]
body_sections=["Key Insights", "Big Picture"]
Deal Sourcing

Monitor Funding Announcements

Extract only announcement sections from specific industry streams

filters=[{"key": "content_type", "value": "Funding"}]
body_sections=["Announcement", "Key Details"]

Production-Ready in 3 Steps

From setup to surgical extraction

1

Get API Credentials

Email for instant access with free tier quota

2

Discover Filters

Call /stream to see available filters and sections

3

Extract Intelligence

Combine filters + sections for surgical precision

# Complete enterprise workflow - 8 lines from synorb import Client client = Client("your-key", "your-secret") # Discover stream structure stream = client.get_stream(889) # Surgical extraction ai_insights = client.get_stories( stream_id=889, filters=[{"key": "Topics", "value": "AI"}], body_sections=["Key Insights", "Signals"] ) print(f"Extracted {len(ai_insights['stories'])} precision insights")

Advanced Patterns

Production-ready techniques for multi-dimensional filtering, pagination strategies, and surgical extraction at scale

Multi-Dimensional Filtering

Combine filters across dimensions for precision targeting (AND logic)

# Python: Combine multiple filter dimensions
stories = client.get_stories(
    stream_id=889,
    filters=[
        {
            "key": "Topics",
            "value": "AI"
        },
        {
            "key": "people",
            "value": "Marc Andreessen"
        },
        {
            "key": "content_type",
            "value": "Blog Post"
        }
    ],
    published_date_from="2025-09-01"
)
How It Works
Filters use AND logic across dimensions:
  • Topics = "AI" AND
  • people = "Marc Andreessen" AND
  • content_type = "Blog Post"
Result: Only AI blog posts by Marc Andreessen

Surgical Section Extraction

Extract only specific sections to reduce payload and focus intelligence

# JavaScript: Extract specific sections only
const response = await client.getStories({
  streamId: 889,
  filters: [
    { key: "Topics", value: "AI" }
  ],
  bodySections: [
    "Key Insights",
    "Signals",
    "Portfolio Mentions"
  ]
})

// Story body contains ONLY requested sections
Why Use This
  • Reduce payload: Get 3 sections instead of 15
  • Focus intelligence: Extract only what matters
  • Faster processing: Less data to parse
  • Cost savings: Smaller responses = lower bandwidth

Efficient Pagination

Handle large result sets with cursor-based pagination

# Python: Paginate through large result sets
all_stories = []
page_num = 0
has_more = True

while has_more:
    response = client.get_stories(
        stream_id=889,
        filters=[{"key": "Topics", "value": "AI"}],
        page_num=page_num,
        page_size=200  # Max per request
    )
    
    all_stories.extend(response["stories"])
    
    # Check if there are more pages
    has_more = response["pagination"]["next"] is not None
    page_num += 1
    
    print(f"Fetched {len(all_stories)} stories so far...")

print(f"Total: {len(all_stories)} stories")

Production Recipes

Copy-paste patterns for common enterprise use cases

Competitive Intel

Monitor Competitor Portfolio Activity

Track what your competitors are investing in by extracting portfolio mentions from VC streams

# Get competitor portfolio signals client.get_stories( stream_id=889, filters=[ {"key": "people", "value": "Competitor VC"} ], body_sections=[ "Portfolio Mentions", "Signals" ] )
Risk Monitoring

Extract Risk Signals from Filings

Pull only risk-related sections from regulatory streams for compliance monitoring

# Monitor regulatory risks client.get_stories( stream_id=308, filters=[ {"key": "entity_type", "value": "Public Company"} ], body_sections=[ "Risks & Watchpoints", "Key Details" ] )
Trend Analysis

Aggregate AI Market Insights

Collect key insights about AI trends from multiple VC and research sources

# Aggregate AI trend signals client.get_stories( stream_id=889, filters=[ {"key": "Topics", "value": "AI"} ], body_sections=[ "Key Insights", "Big Picture" ], published_date_from="2025-09-01" )
Deal Sourcing

Track Funding Announcements

Monitor new funding rounds by filtering for announcement-type content

# Find funding announcements client.get_stories( stream_id=889, filters=[ {"key": "content_type", "value": "Funding"} ], body_sections=[ "Announcement", "Key Details", "Entities Mentioned" ] )
Market Research

Extract Actionable Takeaways

Get only actionable insights from industry reports for strategic planning

# Get strategic actions client.get_stories( stream_id=889, filters=[ {"key": "Topics", "value": "Enterprise"} ], body_sections=[ "Actionable Takeaways", "Big Picture" ] )
Content Aggregation

Build Custom News Feeds

Create personalized intelligence feeds by combining multiple filters and date ranges

# Custom intelligence feed client.get_stories( stream_id=889, filters=[ {"key": "Topics", "value": "AI"}, {"key": "content_type", "value": "Blog Post"} ], body_sections=["Overview", "Links"], published_date_from="2025-10-01" )

Get Your Free API Keys

Start building with Synorb's machine-native content infrastructure

🎉 7-day context window • 1,000 stories/month • No credit card required

Your keys are on their way...
Oops, can you try again...