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.
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/searchEvery 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.
| Module | Endpoint | Credits | Min Plan |
|---|---|---|---|
| BreachINT | POST /v1/breach/search | 3 | STARTER+ |
| BreachINT | GET /v1/breach/whois/{domain} | 1 | STARTER+ |
| BreachINT | GET /v1/breach/reverse-whois | 2 | STARTER+ |
| BreachINT | GET /v1/breach/caller-id | 2 | STARTER+ |
| BreachINT | GET /v1/breach/gmail-osint/{email} | 2 | STARTER+ |
| Social OSINT | POST /v1/social/search | 2 | PRO+ |
| Social OSINT | POST /v1/social/analyze | 3 | PRO+ |
| Social OSINT | POST /v1/social/intelligence | 5 | PRO+ |
| Social OSINT | POST /v1/social/actor-profile | 3 | PRO+ |
| Social OSINT | POST /v1/social/stix-export | 2 | PRO+ |
| Social OSINT | GET /v1/social/stream | 1 | PRO+ |
| X Investigation | GET /v1/twitter/user | 2 | ENTERPRISE |
| X Investigation | GET /v1/twitter/tweets | 2 | ENTERPRISE |
| X Investigation | GET /v1/twitter/search | 3 | ENTERPRISE |
| X Investigation | GET /v1/twitter/tweet/{tweet_id}/replies | 2 | ENTERPRISE |
| X Investigation | POST /v1/twitter/investigate | 5 | ENTERPRISE |
| X Investigation | POST /v1/twitter/event | 5 | ENTERPRISE |
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.
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
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"
}
}
}
}- breach_search
- breach_whois
- breach_reverse_whois
- breach_caller_id
- breach_gmail_osint
- breach_full_profile
- twitter_user
- twitter_tweets
- twitter_search
- twitter_replies
- twitter_investigate
- twitter_event
- twitter_full_profile
- social_search
- social_stream
- social_analyze
- social_intelligence
- social_actor_profile
- social_stix_export
- social_investigate
BreachINT
STARTER+5 endpointsBreach intelligence search across emails, usernames, phones, domains, and IPs. Auto-enriched with stealer logs, WHOIS, Gmail OSINT, and LeakIX data.
http://localhost:8000/v1/breach/v1/breach/searchFull 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
| Name | Type | Description |
|---|---|---|
query* | string | Email, username, phone number, domain, or IP addresse.g. [email protected] |
force_refresh | boolean | Bypass 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
/v1/breach/whois/{domain}WHOIS lookup
Fetch WHOIS registration data for a domain: registrant info, registrar, nameservers, creation/expiry dates, and status flags.
Path Parameters
| Name | Type | Description |
|---|---|---|
domain* | string | Domain 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
/v1/breach/reverse-whoisReverse 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
| Name | Type | Description |
|---|---|---|
search_term* | string | Value to search fore.g. [email protected] |
search_field* | string | Field to search. One of: domain_keyword, domain_name, registrant_email, registrant_name, registrant_company, registrant_phone, registrar_name, name_serverse.g. registrant_email |
database | string | "current" (active registrations) or "historic"e.g. current |
page_size | integer | Results 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
/v1/breach/caller-idCaller ID lookup
Look up a phone number to identify the registered name and linked social accounts using the Eyecon Caller ID database.
Query Parameters
| Name | Type | Description |
|---|---|---|
country_code* | string | Country dialing code without +e.g. 1 |
number* | string | Phone 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
/v1/breach/gmail-osint/{email}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
| Name | Type | Description |
|---|---|---|
email* | string | Gmail 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
X Investigation
ENTERPRISE6 endpointsDeep Twitter/X account investigation: user profiles, tweet timelines, follower networks, advanced search, event-centric multi-phase analysis, and cached full investigations.
http://localhost:8000/v1/twitter/v1/twitter/userUser 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
| Name | Type | Description |
|---|---|---|
username* | string | Twitter/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
/v1/twitter/tweetsRecent tweets
Fetch recent tweets for a user including text, hashtags, mentions, engagement metrics, and media attachments.
Query Parameters
| Name | Type | Description |
|---|---|---|
username* | string | Twitter/X usernamee.g. elonmusk |
count | integer | Number 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
/v1/twitter/searchAdvanced 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
| Name | Type | Description |
|---|---|---|
q* | string | Search query with full Twitter operator syntaxe.g. from:elonmusk AI lang:en |
search_type | string | Latest | Top | People | Media (default Latest)e.g. Latest |
limit | integer | Number 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
/v1/twitter/tweet/{tweet_id}/repliesTweet replies
Fetch replies to a specific tweet. Useful for mapping conversation trees and identifying amplification networks.
Path Parameters
| Name | Type | Description |
|---|---|---|
tweet_id* | string | Tweet IDe.g. 1234567890123456789 |
Query Parameters
| Name | Type | Description |
|---|---|---|
page_count | integer | Pages 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
/v1/twitter/investigateFull 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
| Name | Type | Description |
|---|---|---|
username* | string | Twitter/X username to investigatee.g. target_account |
include_followers | boolean | Include followers list (default true)e.g. true |
include_followings | boolean | Include following list (default false)e.g. false |
include_tweets | boolean | Include recent tweets (default true)e.g. true |
max_followers | integer | Max followers to fetch (cap 500)e.g. 200 |
max_tweets | integer | Max tweets to fetch (cap 100)e.g. 20 |
force_refresh | boolean | Bypass 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
/v1/twitter/eventEvent 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
| Name | Type | Description |
|---|---|---|
post_id_or_url* | string | Tweet URL or numeric tweet IDe.g. https://x.com/user/status/1234567890123456789 |
max_reply_pages | integer | Pages of replies to fetch (default 3)e.g. 3 |
max_quote_pages | integer | Pages of quote tweets (default 2)e.g. 2 |
include_thread | boolean | Include 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
Developer Portal
Any plan4 endpointsManage 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.
/developer/keysGenerate 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"
}/developer/keysList 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
}/developer/keys/{prefix}Revoke API key
Revoke an API key permanently by its prefix. Get the prefix from GET /developer/keys.
Path Parameters
| Name | Type | Description |
|---|---|---|
prefix* | string | Key prefix from the list endpointe.g. sk_AbCdEfGh |
Response Example
{
"message": "Key sk_AbCdEf...wxyz revoked.",
"revoked": true
}/developer/usageCredit 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
}
Social OSINT
PRO+6 endpointsMulti-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.
http://localhost:8000/v1/social/v1/social/searchMulti-platform search
Search across multiple social platforms simultaneously and return posts with sentiment, hashtags, engagement metrics, and platform metadata.
Request Body
query*government protest irelandplatforms*["twitter","reddit"]count_per_platform50Request Example
Response Example
Error Codes
/v1/social/analyzeNarrative 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
posts*Request Example
Response Example
Error Codes
/v1/social/intelligenceFull 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
posts*keyword*ireland protestRequest Example
Response Example
Error Codes
/v1/social/actor-profileBehavioral 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
author_id*user1posts*Request Example
Response Example
Error Codes
/v1/social/stix-exportSTIX 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
query*ireland protestposts*iocsclustersRequest Example
Response Example
Error Codes
/v1/social/streamLive stream events
Fetch the latest posts from all active social monitoring streams. Returns events in reverse-chronological order.
Query Parameters
limit50Response Example
Error Codes