Sycek OSINT

API Reference

The Sycek Public API provides programmatic access to 17 OSINT intelligence endpoints across three modules — BreachINT, Social OSINT, and X Investigation. All requests are authenticated via an X-API-Key header and billed per call against your credit balance.

Base URL
sycek.io/api
HTTPS only
Endpoints
17
3 modules
Auth
X-API-Key
sk_ prefix
Billing
Per-call
Credit-based

Authentication

Include your API key as the X-API-Key header on every request. Generate keys in the Developer Portal.

# All /v1/* endpoints
curl -H "X-API-Key: sk_your_api_key_here" \
     -H "Content-Type: application/json" \
     http://localhost:8000/v1/breach/search

Every response includes a _credits object:

"_credits": {
  "credits_used": 3,
  "credits_remaining": 47,
  "credits_total": 50
}

Quick start

curl -X POST http://localhost:8000/v1/breach/search \
  -H "X-API-Key: sk_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"query": "[email protected]"}'

Credit Pricing

Credits are deducted at call time. Insufficient credits return HTTP 402. Check balance via GET /developer/usage.

ModuleEndpointCreditsMin Plan
BreachINTPOST /v1/breach/search3STARTER+
BreachINTGET /v1/breach/whois/{domain}1STARTER+
BreachINTGET /v1/breach/reverse-whois2STARTER+
BreachINTGET /v1/breach/caller-id2STARTER+
BreachINTGET /v1/breach/gmail-osint/{email}2STARTER+
Social OSINTPOST /v1/social/search2PRO+
Social OSINTPOST /v1/social/analyze3PRO+
Social OSINTPOST /v1/social/intelligence5PRO+
Social OSINTPOST /v1/social/actor-profile3PRO+
Social OSINTPOST /v1/social/stix-export2PRO+
Social OSINTGET /v1/social/stream1PRO+
X InvestigationGET /v1/twitter/user2ENTERPRISE
X InvestigationGET /v1/twitter/tweets2ENTERPRISE
X InvestigationGET /v1/twitter/search3ENTERPRISE
X InvestigationGET /v1/twitter/tweet/{tweet_id}/replies2ENTERPRISE
X InvestigationPOST /v1/twitter/investigate5ENTERPRISE
X InvestigationPOST /v1/twitter/event5ENTERPRISE

MCP Integration

Use Sycek OSINT directly from Claude Desktop, Cursor, or any MCP-compatible AI — no code required. Your API key is the credential. 20 tools across BreachINT, X/Twitter, and Social OSINT are exposed.

Zero-Install (Hosted SSE)

Point your AI client at the Sycek cloud endpoint. No Python required.

{
  "mcpServers": {
    "sycek-osint": {
      "type": "sse",
      "url": "https://sycek.io/mcp/sse",
      "headers": {
        "Authorization": "Bearer sk_your_key_here"
      }
    }
  }
}

Config: %APPDATA%\Claude\claude_desktop_config.json

Local Install (pip)

Run the MCP server locally. Requires Python 3.10+.

pip install sycek-osint-mcp

# claude_desktop_config.json:
{
  "mcpServers": {
    "sycek-osint": {
      "command": "sycek-osint-mcp",
      "env": {
        "SYCEK_API_KEY": "sk_your_key_here"
      }
    }
  }
}
Available MCP Tools
BreachINT
  • breach_search
  • breach_whois
  • breach_reverse_whois
  • breach_caller_id
  • breach_gmail_osint
  • breach_full_profile
X / Twitter
  • twitter_user
  • twitter_tweets
  • twitter_search
  • twitter_replies
  • twitter_investigate
  • twitter_event
  • twitter_full_profile
Social Stream
  • social_search
  • social_stream
  • social_analyze
  • social_intelligence
  • social_actor_profile
  • social_stix_export
  • social_investigate

BreachINT

STARTER+5 endpoints

Breach intelligence search across emails, usernames, phones, domains, and IPs. Auto-enriched with stealer logs, WHOIS, Gmail OSINT, and LeakIX data.

Base path: http://localhost:8000/v1/breach
POST/v1/breach/search
3 creditsSTARTER+

Full breach graph search

Search the breach intelligence database. Returns a graph of nodes (email, password, breach source, IP, username) and edges connecting them. Auto-enriched with Hudson Rock stealer logs, LeakIX, and Gmail OSINT for @gmail.com addresses. Results are cached — repeat queries return cached data at no extra cost.

Request Body
NameTypeDescription
query*stringEmail, username, phone number, domain, or IP addresse.g. [email protected]
force_refreshbooleanBypass cache and re-fetch live datae.g. false
Request Example
{
  "query": "[email protected]",
  "force_refresh": false
}
Response Example
{
  "nodes": [
    {
      "id": "email:[email protected]",
      "type": "email",
      "label": "[email protected]",
      "props": {}
    },
    {
      "id": "source:linkedin-2012",
      "type": "source",
      "label": "LinkedIn 2012",
      "props": {
        "records_affected": 165000000,
        "data_types": "Email, Password"
      }
    }
  ],
  "edges": [
    {
      "source": "email:[email protected]",
      "target": "source:linkedin-2012",
      "relation": "found_in",
      "weight": 1
    }
  ],
  "facets": {
    "sources": [
      "sycek_intelligence",
      "hudson_rock"
    ]
  },
  "_credits": {
    "credits_used": 3,
    "credits_remaining": 47,
    "credits_total": 50
  }
}
Error Codes
400Missing query
401Invalid API key
402Insufficient credits
403Plan does not include BreachINT
500Search failed
GET/v1/breach/whois/{domain}
1 creditSTARTER+

WHOIS lookup

Fetch WHOIS registration data for a domain: registrant info, registrar, nameservers, creation/expiry dates, and status flags.

Path Parameters
NameTypeDescription
domain*stringDomain name to look upe.g. example.com
Response Example
{
  "domain": "example.com",
  "registrar": "IANA",
  "registrant": {
    "name": "IANA",
    "email": "[email protected]",
    "country": "US"
  },
  "created": "1995-08-14",
  "expires": "2027-08-13",
  "nameservers": [
    "A.IANA-SERVERS.NET",
    "B.IANA-SERVERS.NET"
  ],
  "status": [
    "clientDeleteProhibited"
  ],
  "_credits": {
    "credits_used": 1,
    "credits_remaining": 46,
    "credits_total": 50
  }
}
Error Codes
401Invalid API key
402Insufficient credits
403Plan does not include BreachINT
500WHOIS lookup failed
GET/v1/breach/reverse-whois
2 creditsSTARTER+

Reverse WHOIS

Find all domains registered by a given registrant field value. Useful for pivoting from an email or company name to all domains they own.

Query Parameters
NameTypeDescription
search_term*stringValue to search fore.g. [email protected]
search_field*stringField to search. One of: domain_keyword, domain_name, registrant_email, registrant_name, registrant_company, registrant_phone, registrar_name, name_serverse.g. registrant_email
databasestring"current" (active registrations) or "historic"e.g. current
page_sizeintegerResults per page (default 10)e.g. 10
Response Example
{
  "domains": [
    "example.com",
    "example.net",
    "example.org"
  ],
  "total": 3,
  "search_field": "registrant_email",
  "search_term": "[email protected]",
  "_credits": {
    "credits_used": 2,
    "credits_remaining": 44,
    "credits_total": 50
  }
}
Error Codes
400Missing search_term or invalid search_field
401Invalid API key
402Insufficient credits
403Plan does not include BreachINT
GET/v1/breach/caller-id
2 creditsSTARTER+

Caller ID lookup

Look up a phone number to identify the registered name and linked social accounts using the Eyecon Caller ID database.

Query Parameters
NameTypeDescription
country_code*stringCountry dialing code without +e.g. 1
number*stringPhone number without country codee.g. 5551234567
Response Example
{
  "name": "John Doe",
  "phone": "+15551234567",
  "facebook_profile": "https://facebook.com/profile/...",
  "carrier": "Verizon",
  "line_type": "mobile",
  "_credits": {
    "credits_used": 2,
    "credits_remaining": 42,
    "credits_total": 50
  }
}
Error Codes
400Missing country_code or number
401Invalid API key
402Insufficient credits
403Plan does not include BreachINT
GET/v1/breach/gmail-osint/{email}
2 creditsSTARTER+

Gmail OSINT

Retrieve Gmail profile data for a @gmail.com address: display name, profile picture URL, and account recovery hints. Only works with @gmail.com addresses.

ℹ

Only works with @gmail.com addresses.

Path Parameters
NameTypeDescription
email*stringGmail address to look upe.g. [email protected]
Response Example
{
  "email": "[email protected]",
  "name": "Target User",
  "profile_photo": "https://lh3.googleusercontent.com/...",
  "recovery_email_hint": "t****@outlook.com",
  "recovery_phone_hint": "+1 *** *** **67",
  "_credits": {
    "credits_used": 2,
    "credits_remaining": 40,
    "credits_total": 50
  }
}
Error Codes
400Not a @gmail.com address
401Invalid API key
402Insufficient credits
403Plan does not include BreachINT

Social OSINT

PRO+6 endpoints

Multi-platform social media intelligence across Twitter, Reddit, YouTube, Instagram, TikTok, Telegram, and Facebook. Includes NWS scoring, CIB detection, IOC extraction, and STIX 2.1 export.

Base path: http://localhost:8000/v1/social
POST/v1/social/search
2 creditsPRO+

Multi-platform search

Search across multiple social platforms simultaneously and return posts with sentiment, hashtags, engagement metrics, and platform metadata.

Request Body
NameTypeDescription
query*stringSearch query or hashtage.g. government protest ireland
platforms*string[]Platforms: twitter, reddit, youtube, instagram, tiktok, telegram, facebooke.g. ["twitter","reddit"]
count_per_platformintegerPosts per platform (default 50)e.g. 50
Request Example
{
  "query": "government protest ireland",
  "platforms": [
    "twitter",
    "reddit",
    "youtube"
  ],
  "count_per_platform": 50
}
Response Example
{
  "posts": [
    {
      "id": "1",
      "platform": "twitter",
      "author": "user1",
      "text": "Sample post...",
      "timestamp": "2026-04-13T09:00:00Z",
      "likes": 120,
      "shares": 45,
      "hashtags": [
        "#ireland"
      ]
    }
  ],
  "total_posts": 143,
  "platforms_searched": [
    "twitter",
    "reddit",
    "youtube"
  ],
  "_credits": {
    "credits_used": 2,
    "credits_remaining": 98,
    "credits_total": 100
  }
}
Error Codes
400Missing query or platforms
401Invalid API key
402Insufficient credits
403PRO+ plan required
POST/v1/social/analyze
3 creditsPRO+

Narrative analysis

Analyze a post batch for hashtag co-occurrence networks, top influencers, narrative clusters, UTC timeline distribution, and NWS (Narrative Weaponization Score) per cluster. NWS range: critical ≥75, high ≥50, medium ≥25, low <25.

Request Body
NameTypeDescription
posts*Post[]Array of posts from /v1/social/search
Request Example
{
  "posts": [
    {
      "id": "1",
      "author": "user1",
      "text": "Protest update...",
      "hashtags": [
        "#ireland"
      ],
      "platform": "twitter",
      "timestamp": "2026-04-13T09:00:00Z",
      "likes": 100,
      "shares": 40,
      "comments": 10
    }
  ]
}
Response Example
{
  "hashtag_network": {
    "nodes": [
      {
        "id": "ireland",
        "count": 87
      }
    ],
    "edges": [
      {
        "source": "ireland",
        "target": "protest",
        "weight": 42
      }
    ]
  },
  "top_influencers": [
    {
      "author": "user1",
      "total_engagement": 1500,
      "post_count": 12
    }
  ],
  "narrative_clusters": [
    {
      "terms": [
        "government",
        "ireland"
      ],
      "post_count": 43,
      "nws": 82,
      "nws_level": "critical",
      "nws_breakdown": {
        "velocity": 30,
        "neg_conc": 17,
        "platform": 10,
        "amplification": 25
      }
    }
  ],
  "timeline": {
    "10": 32,
    "11": 28,
    "09": 15
  },
  "_credits": {
    "credits_used": 3,
    "credits_remaining": 95,
    "credits_total": 100
  }
}
Error Codes
400Missing or empty posts array
401Invalid API key
402Insufficient credits
403PRO+ plan required
POST/v1/social/intelligence
5 creditsPRO+

Full ML intelligence pass

Full ML intelligence pass: per-post deep sentiment via distilRoBERTa, Coordinated Inauthentic Behavior (CIB) detection, IOC extraction, geospatial inference, and velocity/surge analysis. Expect 10–30s latency for large batches.

ℹ

Runs distilRoBERTa ML model. Expect 10–30s latency for large batches.

Request Body
NameTypeDescription
posts*Post[]Array of posts from /v1/social/search
keyword*stringTopic keyword for contexte.g. ireland protest
Request Example
{
  "posts": [
    {
      "id": "1",
      "author": "user1",
      "text": "Pray for Ireland the government must fall",
      "platform": "twitter",
      "timestamp": "2026-04-13T09:00:00Z",
      "likes": 100,
      "shares": 50,
      "comments": 10
    }
  ],
  "keyword": "ireland protest"
}
Response Example
{
  "keyword": "ireland protest",
  "post_count": 1,
  "cib": {
    "cib_score": 72,
    "coordination_flag": true,
    "summary": "2 similar-text clusters detected"
  },
  "iocs": {
    "urls": [
      {
        "value": "https://t.co/abc",
        "count": 3
      }
    ],
    "handles": [
      {
        "value": "@rebel_voice",
        "count": 5
      }
    ],
    "total_iocs": 2
  },
  "geo": {
    "inference_method": "spacy_ner",
    "top_country": "Ireland",
    "location_clusters": [
      "Cork",
      "Dublin"
    ]
  },
  "velocity": {
    "surge": true,
    "z_score": 94.67,
    "alert_level": "high"
  },
  "_credits": {
    "credits_used": 5,
    "credits_remaining": 90,
    "credits_total": 100
  }
}
Error Codes
400Missing posts or keyword
401Invalid API key
402Insufficient credits
403PRO+ plan required
503ML model not ready — retry in a few seconds
POST/v1/social/actor-profile
3 creditsPRO+

Behavioral actor profile

Build a behavioral profile for a specific author: platform breakdown, peak activity hours, posting cadence coefficient of variation, engagement totals, and bot-behavior flags.

ℹ

cadence_flag: true means posting interval is suspiciously regular (CV < 0.15) — a bot-behavior indicator.

Request Body
NameTypeDescription
author_id*stringAuthor identifier to profilee.g. user1
posts*Post[]All posts (filtered to author_id server-side)
Request Example
{
  "author_id": "user1",
  "posts": [
    {
      "id": "1",
      "author": "user1",
      "author_id": "user1",
      "text": "...",
      "platform": "twitter",
      "timestamp": "2026-04-13T09:00:00Z",
      "likes": 100,
      "shares": 50,
      "comments": 10
    }
  ]
}
Response Example
{
  "author_id": "user1",
  "author": "user1",
  "post_count": 18,
  "platforms": {
    "twitter": 15,
    "youtube": 3
  },
  "total_engagement": 3200,
  "peak_hours": [
    9,
    10,
    14
  ],
  "cadence_cv": 0.08,
  "cadence_flag": true,
  "followers": 1240,
  "verified": false,
  "_credits": {
    "credits_used": 3,
    "credits_remaining": 87,
    "credits_total": 100
  }
}
Error Codes
400Missing author_id or posts
401Invalid API key
402Insufficient credits
403PRO+ plan required
POST/v1/social/stix-export
2 creditsPRO+

STIX 2.1 bundle export

Generate a STIX 2.1 bundle from posts, IOCs, and narrative clusters. Returns identity, indicators, threat-actors, notes, and a report object. Compatible with any SIEM that ingests STIX 2.1.

Request Body
NameTypeDescription
query*stringInvestigation topice.g. ireland protest
posts*Post[]Posts array
iocsobjectIOC data from /v1/social/intelligence
clustersobject[]Narrative clusters from /v1/social/analyze
Request Example
{
  "query": "ireland protest",
  "posts": [
    {
      "id": "1",
      "author": "user1",
      "text": "..."
    }
  ],
  "iocs": {
    "urls": [
      {
        "value": "https://t.co/abc123",
        "count": 2
      }
    ]
  },
  "clusters": [
    {
      "terms": [
        "government"
      ],
      "nws": 82,
      "nws_level": "critical"
    }
  ]
}
Response Example
{
  "type": "bundle",
  "spec_version": "2.1",
  "objects": [
    {
      "type": "identity",
      "name": "Sycek OSINT Platform",
      "spec_version": "2.1"
    },
    {
      "type": "indicator",
      "name": "https://t.co/abc123",
      "spec_version": "2.1"
    },
    {
      "type": "threat-actor",
      "name": "user1",
      "spec_version": "2.1"
    },
    {
      "type": "report",
      "name": "SOCINT Report: ireland protest",
      "spec_version": "2.1"
    }
  ],
  "_credits": {
    "credits_used": 2,
    "credits_remaining": 85,
    "credits_total": 100
  }
}
Error Codes
400Missing query or posts
401Invalid API key
402Insufficient credits
403PRO+ plan required
GET/v1/social/stream
1 creditPRO+

Live stream events

Fetch the latest posts from all active social monitoring streams. Returns events in reverse-chronological order.

Query Parameters
NameTypeDescription
limitintegerNumber of events to return (1–500, default 50)e.g. 50
Response Example
{
  "events": [
    {
      "id": "evt1",
      "platform": "twitter",
      "text": "Breaking news...",
      "author": "user1",
      "timestamp": "2026-04-13T10:00:00Z",
      "likes": 50
    }
  ],
  "total": 1,
  "_credits": {
    "credits_used": 1,
    "credits_remaining": 84,
    "credits_total": 100
  }
}
Error Codes
401Invalid API key
402Insufficient credits
403PRO+ plan required

X Investigation

ENTERPRISE6 endpoints

Deep Twitter/X account investigation: user profiles, tweet timelines, follower networks, advanced search, event-centric multi-phase analysis, and cached full investigations.

Base path: http://localhost:8000/v1/twitter
GET/v1/twitter/user
2 creditsENTERPRISE

User profile

Fetch profile metadata for a Twitter/X account: display name, bio, follower/following counts, tweet count, verified status, and account creation date.

Query Parameters
NameTypeDescription
username*stringTwitter/X username (without @)e.g. elonmusk
Response Example
{
  "success": true,
  "data": {
    "id": "44196397",
    "username": "elonmusk",
    "name": "Elon Musk",
    "followers_count": 180000000,
    "following_count": 640,
    "tweet_count": 42000,
    "verified": true,
    "created_at": "2009-06-02T20:12:29Z",
    "description": "Mars & cars"
  },
  "_credits": {
    "credits_used": 2,
    "credits_remaining": 198,
    "credits_total": 200
  }
}
Error Codes
400Missing username
401Invalid API key
402Insufficient credits
403ENTERPRISE plan required
404Account not found
GET/v1/twitter/tweets
2 creditsENTERPRISE

Recent tweets

Fetch recent tweets for a user including text, hashtags, mentions, engagement metrics, and media attachments.

Query Parameters
NameTypeDescription
username*stringTwitter/X usernamee.g. elonmusk
countintegerNumber of tweets (1–100, default 20)e.g. 20
Response Example
{
  "tweets": [
    {
      "id": "1234567890",
      "text": "Tweet content...",
      "created_at": "2026-04-13T08:00:00Z",
      "like_count": 15000,
      "retweet_count": 3200,
      "reply_count": 890,
      "hashtags": [
        "#AI"
      ],
      "mentions": [
        "@openai"
      ]
    }
  ],
  "total": 20,
  "_credits": {
    "credits_used": 2,
    "credits_remaining": 196,
    "credits_total": 200
  }
}
Error Codes
400Missing username or invalid count
401Invalid API key
402Insufficient credits
403ENTERPRISE plan required
GET/v1/twitter/search
3 creditsENTERPRISE

Advanced search

Advanced Twitter search using full operator syntax: from:user, to:user, #hashtag, lang:en, since:2026-01-01, -exclude, exact phrases, min_retweets:N.

Query Parameters
NameTypeDescription
q*stringSearch query with full Twitter operator syntaxe.g. from:elonmusk AI lang:en
search_typestringLatest | Top | People | Media (default Latest)e.g. Latest
limitintegerNumber of results (default 20)e.g. 20
Response Example
{
  "tweets": [
    {
      "id": "111",
      "text": "AI is transforming...",
      "author": "elonmusk",
      "created_at": "2026-04-10T12:00:00Z",
      "likes": 8200
    }
  ],
  "total": 20,
  "query": "from:elonmusk AI lang:en",
  "_credits": {
    "credits_used": 3,
    "credits_remaining": 193,
    "credits_total": 200
  }
}
Error Codes
400Missing q parameter
401Invalid API key
402Insufficient credits
403ENTERPRISE plan required
GET/v1/twitter/tweet/{tweet_id}/replies
2 creditsENTERPRISE

Tweet replies

Fetch replies to a specific tweet. Useful for mapping conversation trees and identifying amplification networks.

Path Parameters
NameTypeDescription
tweet_id*stringTweet IDe.g. 1234567890123456789
Query Parameters
NameTypeDescription
page_countintegerPages to fetch (1–5, ~20 replies/page)e.g. 1
Response Example
{
  "replies": [
    {
      "id": "222",
      "text": "Great point!",
      "author": "user2",
      "likes": 45
    }
  ],
  "total": 18,
  "_credits": {
    "credits_used": 2,
    "credits_remaining": 191,
    "credits_total": 200
  }
}
Error Codes
400Missing tweet_id
401Invalid API key
402Insufficient credits
403ENTERPRISE plan required
404Tweet not found
POST/v1/twitter/investigate
5 creditsENTERPRISE

Full account investigation

Comprehensive account investigation: profile, followers, following, and tweet timeline in a single call. Results are cached — repeat calls for the same username are served instantly at no extra cost (from_cache: true).

Request Body
NameTypeDescription
username*stringTwitter/X username to investigatee.g. target_account
include_followersbooleanInclude followers list (default true)e.g. true
include_followingsbooleanInclude following list (default false)e.g. false
include_tweetsbooleanInclude recent tweets (default true)e.g. true
max_followersintegerMax followers to fetch (cap 500)e.g. 200
max_tweetsintegerMax tweets to fetch (cap 100)e.g. 20
force_refreshbooleanBypass cachee.g. false
Request Example
{
  "username": "target_account",
  "include_followers": true,
  "include_followings": false,
  "include_tweets": true,
  "max_followers": 200,
  "max_tweets": 20,
  "force_refresh": false
}
Response Example
{
  "user_info": {
    "success": true,
    "data": {
      "username": "target_account",
      "followers_count": 4200
    }
  },
  "followers": {
    "followers": [
      {
        "username": "follower1"
      }
    ]
  },
  "tweets": {
    "tweets": [
      {
        "id": "1",
        "text": "Tweet..."
      }
    ]
  },
  "summary": {
    "total_followers_fetched": 200,
    "total_tweets_fetched": 20
  },
  "history_id": "inv_abc123",
  "from_cache": false,
  "_credits": {
    "credits_used": 5,
    "credits_remaining": 186,
    "credits_total": 200
  }
}
Error Codes
400Missing username
401Invalid API key
402Insufficient credits
403ENTERPRISE plan required
404Account not found
POST/v1/twitter/event
5 creditsENTERPRISE

Event investigation

Start an event-centric investigation from a tweet URL or ID. Phase 1 collects the seed tweet, all replies, quote tweets, retweets, and the full thread context.

ℹ

Use investigation_id to run subsequent phases (2–5: volume, sentiment/geo, attribution, synthesis) via the platform dashboard.

Request Body
NameTypeDescription
post_id_or_url*stringTweet URL or numeric tweet IDe.g. https://x.com/user/status/1234567890123456789
max_reply_pagesintegerPages of replies to fetch (default 3)e.g. 3
max_quote_pagesintegerPages of quote tweets (default 2)e.g. 2
include_threadbooleanInclude full thread context (default true)e.g. true
Request Example
{
  "post_id_or_url": "https://x.com/user/status/1234567890123456789",
  "max_reply_pages": 3,
  "max_quote_pages": 2,
  "include_thread": true
}
Response Example
{
  "investigation_id": "evt_xyz789",
  "phase": 1,
  "seed_tweet": {
    "id": "1234567890",
    "text": "Original tweet...",
    "author": "user1",
    "likes": 5000
  },
  "replies": [
    {
      "id": "2",
      "text": "Reply...",
      "author": "user2"
    }
  ],
  "quote_tweets": [
    {
      "id": "3",
      "text": "Quote...",
      "author": "user3"
    }
  ],
  "retweeters": [
    {
      "username": "user4"
    }
  ],
  "thread": [
    {
      "id": "0",
      "text": "Thread parent..."
    }
  ],
  "stats": {
    "total_replies": 142,
    "total_quotes": 37,
    "total_retweets": 820
  },
  "_credits": {
    "credits_used": 5,
    "credits_remaining": 181,
    "credits_total": 200
  }
}
Error Codes
400Missing post_id_or_url
401Invalid API key
402Insufficient credits
403ENTERPRISE plan required
404Tweet not found or deleted

Developer Portal

Any plan4 endpoints

Manage API keys and view credit usage. These endpoints use your session JWT (Authorization: Bearer ...) not an X-API-Key. Access via sycek.io/app/developer.

POST/developer/keys
FreeAny plan

Generate API key

Generate a new API key (format: sk_...). The full key is returned exactly once — store it securely. Maximum 5 keys per account.

ℹ

Use your JWT session token (Authorization: Bearer ...) for this endpoint, not an X-API-Key.

Response Example
{
  "key": "sk_AbCdEfGhIjKlMnOpQrStUvWxYz1234567890AbCd",
  "prefix": "sk_AbCdEf",
  "message": "Save this key — it will not be shown again.",
  "docs": "Pass as X-API-Key header to /v1/* endpoints"
}
GET/developer/keys
FreeAny plan

List API keys

List all API keys for the authenticated account. Keys are masked — only prefix and last 4 characters are shown.

Response Example
{
  "keys": [
    {
      "masked": "sk_AbCdEf...wxyz",
      "prefix": "sk_AbCdEf"
    }
  ],
  "count": 1,
  "limit": 5
}
DELETE/developer/keys/{prefix}
FreeAny plan

Revoke API key

Revoke an API key permanently by its prefix. Get the prefix from GET /developer/keys.

Path Parameters
NameTypeDescription
prefix*stringKey prefix from the list endpointe.g. sk_AbCdEfGh
Response Example
{
  "message": "Key sk_AbCdEf...wxyz revoked.",
  "revoked": true
}
GET/developer/usage
FreeAny plan

Credit balance & usage

View your current credit balance, usage counters, subscription tier, and the credit cost for every public API endpoint.

Response Example
{
  "credits_total": 200,
  "credits_used": 14,
  "credits_remaining": 186,
  "unlimited": false,
  "subscription_tier": "starter",
  "endpoint_costs": {
    "social_osint": {
      "POST /v1/social/search": 2,
      "POST /v1/social/analyze": 3,
      "POST /v1/social/intelligence": 5
    },
    "x_investigation": {
      "GET /v1/twitter/user": 2,
      "POST /v1/twitter/investigate": 5
    },
    "breachint": {
      "POST /v1/breach/search": 3,
      "GET /v1/breach/whois/{domain}": 1
    }
  },
  "api_keys_used": 1,
  "api_keys_limit": 5
}