Getting started
Authentication
Public endpoints are available without an API key. Free and Starter accounts can create an MCP-only key for the basic tools, with 100 and 1,000 calls a month. Pro includes the full API and MCP with 3,000 calls a month. Developer Access lets invited users test MCP and research APIs with limited usage. Enterprise limits are set per contract.
Bearer spk_live_…- Any signed-in account can create API keys. Free accounts are limited to the mcp:tools scope; invited Developer Access, Pro, and Enterprise can grant research scopes.
- Send your key using Authorization: Bearer spk_live_…
- Enable only the scopes your integration needs. Starting investigations requires research:execute; managing signal subscriptions requires webhooks:manage.
- Your full key is shown once. You can revoke it at any time.
- Developer Access usage is shared across keys on the same account.
- OAuth is not supported yet. Remote MCP currently uses API keys.
Get public product profiles · Remote MCP requires an API key; Free and Starter accounts get an MCP-only key for product overview, categories and signals (100 and 1,000 calls a month)
50 shared counted calls per UTC month across protected REST and MCP · Public catalog, API key management, handshake, tool discovery, ping, notifications, and failed calls do not count · Up to 10 results per response · Latest observation month; up to 5 product-sector filter options
Full Rankings access · Product overview, promotion investigations and rankings through Remote MCP · Pro: 3,000 counted calls per UTC month shared by REST and MCP; Enterprise per contract · 120 requests per minute · Rate limits still apply
Developer Access is invite only and requires a signed-in account. SaaS Ideas is in development, available only to active administrators on the website, and has no public API or MCP tool.
/research/promotion-investigationscurl "https://sigpik.com/api/v1/research/promotion-investigations" -X POST \
-H "Authorization: Bearer $SIGPIK_API_KEY" \
-H "Content-Type: application/json" \
--data '{"slug":"example-ai","locale":"en","idempotency_key":"b46b2db0-8a30-4d69-a33e-8b5b4509c279","confirm_usage":true}'Local simulation · illustrative data, no network request or quota usage.
202 AcceptedExample response · excerptJSON
{
"task_id": "task_b46b2db0-8a30-4d69-a33e-8b5b4509c279",
"type": "promotion_investigation",
"status": "queued",
"stage": "queued",
"created_at": "2026-09-17T05:00:00.000Z",
"updated_at": "2026-09-17T05:00:00.000Z",
"completed_at": null,
"status_url": "/api/v1/research/promotion-investigations/task_b46b2db0-8a30-4d69-a33e-8b5b4509c279",
"result_url": null,
"poll_after_seconds": 60,
"error": null,
"report": null
}Getting started
Rate limits & errors
Developer keys: 120 requests per 60 seconds. Monthly allowances (Free 100, Starter 1,000, Pro 3,000, invited Developer Access as granted) are shared by all keys on the account.
X-Quota-* headers describe the monthly allowance of the account. Public catalog, Enterprise, and quota-exempt accounts do not have the same allowance headers. On REST, a 429 may indicate short-term rate limiting or monthly quota exhaustion (with Retry-After); failed requests are not counted. On MCP, an exhausted allowance is returned as a PRO_API_QUOTA_EXHAUSTED tool error.
400Invalid parameters or cursor. Correct the request before retrying.
401Missing, invalid or revoked API key.
403The key scope or account access does not permit this operation.
404Product or resource not found.
409Idempotency key conflicts with another request.
429Rate limit or monthly quota exhausted. Inspect the error code and reset headers.
503Data is temporarily unavailable. Retry with backoff.
429 · X-Quota-Reset
HTTP/1.1 429 Too Many Requests
X-Quota-Limit: 50
X-Quota-Remaining: 0
X-Quota-Policy: 50;month
X-Quota-Reset: 2026-10-01T00:00:00.000Z
{
"error": {
"code": "PRO_API_QUOTA_EXHAUSTED",
"message": "Developer Access call quota is exhausted.",
"details": { "limit": 50, "remaining": 0 }
},
"request_id": "example-request-id"
}Public API · Free
Free public API
No registration, subscription or Sigpik API key. Read selected rankings and signals over HTTP as JSON, and combine them in your applications, scripts and automations.
Selected rankings
/api/public/v1/rankingsUp to five products ranked by positive absolute monthly traffic gain. Each comparable month has at least 1,000 estimated visits.
Each record includes rank, estimated_visits, previous_estimated_visits, visits_change, growth_rate, period.current_month and period.previous_month. A growth_rate of 0.314 means 31.4%.
Selected signals
/api/public/v1/signalsUp to five high-importance, confirmed and published signal summaries, at most one per product, selected from recent observations in the seven days before the edition’s UTC cutoff.
Each record includes type, title, summary, direction, before, after, observed_at, published_at and period. before / after contain public scalar measurements and units, or null when unavailable.
Parameters and response
Only locale=en (default) or locale=zh-CN is supported. One shared daily selection; changing the language does not change the record set. Pagination, filtering, arbitrary product lookup and historical editions are unavailable.
| Field | Description |
|---|---|
edition | Publication date of the current selection (UTC). |
published_at | When the selection was generated, not when its data was observed. |
stale | True when the current daily publication is delayed. Check published_at before using it. |
items | Up to five selected records. Fewer than five, including zero, is valid. |
items[].id | Stable record identifier for deduplication. |
items[].product | Product name, slug and detail URL. |
source_url | The corresponding ranking or signals page. |
Rankings use monthly estimates; selected signals are neither real-time nor a complete event stream. Delayed publications are retained for at most 48 hours, then return 503.
Requests and rate limits
No Authorization header or account API quota is required. Edge rate limit: 120 requests per IP per minute; read once daily. ETag / If-None-Match is supported, with 304 for unchanged responses.
400 means an unsupported query; 429 means rate limited; 503 means the selection is temporarily unavailable. Follow Retry-After before retrying a 429 or 503.
Core Intelligence
Start an investigation
/api/v1/research/promotion-investigationsResearch one product using the same promotion history service as its detail page. Explicitly consumes the existing account research allowance. Reuse the same UUID to retry the same request. Returns a task ID; no CSV or catalog export.
Required scope research:execute
Parameters
| Field / type | Description & constraints |
|---|---|
slug | Canonical product or category slug. minLength: 1 · maxLength: 200 |
domain | Product hostname or URL; normalized before lookup. minLength: 1 · maxLength: 253 |
locale | Response language: en or zh-CN. default: "en" · en | zh-CN |
idempotency_key | A UUID reused only when retrying the same product and language. pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ |
confirm_usage | Must be true to explicitly use the existing research allowance. true |
Response fields12
| Field / type | Description & constraints |
|---|---|
task_id | The random task ID returned by submission. pattern: ^task_[0-9a-f-]{36}$ |
type | Task type: promotion investigation. promotion_investigation |
status | See the example and full schema. queued | running | succeeded | failed | cancelled |
stage | See the example and full schema. queued | investigating | generating_report | complete |
status_url | See the example and full schema. |
result_url | See the example and full schema. |
poll_after_seconds | See the example and full schema. |
created_at | See the example and full schema. |
updated_at | See the example and full schema. |
completed_at | See the example and full schema. |
error | See the example and full schema. |
report | See the example and full schema. |
/research/promotion-investigationscurl "https://sigpik.com/api/v1/research/promotion-investigations" -X POST \
-H "Authorization: Bearer $SIGPIK_API_KEY" \
-H "Content-Type: application/json" \
--data '{"slug":"example-ai","locale":"en","idempotency_key":"b46b2db0-8a30-4d69-a33e-8b5b4509c279","confirm_usage":true}'Local simulation · illustrative data, no network request or quota usage.
202 AcceptedExample response · excerptJSON
{
"task_id": "task_b46b2db0-8a30-4d69-a33e-8b5b4509c279",
"type": "promotion_investigation",
"status": "queued",
"stage": "queued",
"created_at": "2026-09-17T05:00:00.000Z",
"updated_at": "2026-09-17T05:00:00.000Z",
"completed_at": null,
"status_url": "/api/v1/research/promotion-investigations/task_b46b2db0-8a30-4d69-a33e-8b5b4509c279",
"result_url": null,
"poll_after_seconds": 60,
"error": null,
"report": null
}Core Intelligence
Investigation progress and report · free
/api/v1/research/promotion-investigations/{task_id}One read returns progress and the saved final report. report is null while queued/running and populated when succeeded; failed/cancelled are terminal. Costs no research credits or monthly API calls, even after the allowance is exhausted. Poll after 60 seconds while pending. Unknown and another account’s IDs return 404.
Required scope research:read
Parameters
| Field / type | Description & constraints |
|---|---|
task_id | The random task ID returned by submission. |
Response fields12
| Field / type | Description & constraints |
|---|---|
task_id | The random task ID returned by submission. pattern: ^task_[0-9a-f-]{36}$ |
type | Task type: promotion investigation. promotion_investigation |
status | See the example and full schema. queued | running | succeeded | failed | cancelled |
stage | See the example and full schema. queued | investigating | generating_report | complete |
status_url | See the example and full schema. |
result_url | See the example and full schema. |
poll_after_seconds | See the example and full schema. |
created_at | See the example and full schema. |
updated_at | See the example and full schema. |
completed_at | See the example and full schema. |
error | See the example and full schema. |
report | See the example and full schema. |
/research/promotion-investigations/{task_id}curl "https://sigpik.com/api/v1/research/promotion-investigations/task_b46b2db0-8a30-4d69-a33e-8b5b4509c279" \
-H "Authorization: Bearer $SIGPIK_API_KEY"Local simulation · illustrative data, no network request or quota usage.
200 OKExample response · excerptJSON
{
"task_id": "task_b46b2db0-8a30-4d69-a33e-8b5b4509c279",
"type": "promotion_investigation",
"status": "succeeded",
"stage": "complete",
"created_at": "2026-09-17T05:00:00.000Z",
"updated_at": "2026-09-17T05:00:00.000Z",
"completed_at": "2026-09-17T05:10:00.000Z",
"status_url": "/api/v1/research/promotion-investigations/task_b46b2db0-8a30-4d69-a33e-8b5b4509c279",
"result_url": "/api/v1/research/promotion-investigations/task_b46b2db0-8a30-4d69-a33e-8b5b4509c279",
"poll_after_seconds": null,
"error": null,
"report": {
"version": "example",
"generated_at": "2026-09-17T05:10:00.000Z",
"narrative": {
"title": "Example promotion history",
"summary": {
"text": "Illustrative report: published sources describe a launch and later community activity.",
"citations": []
},
"sections": [],
"limitations": "Illustrative response. Actual reports include only available evidence."
},
"summary": {
"actionEvidenceCount": 0,
"channelCount": 0,
"contextLeadCount": 0,
"sourceCount": 0,
"unresolvedActionCount": 0
},
"analysis": {
"overview": "Illustrative report.",
"method": "",
"observations": [],
"phases": [],
"channels": [],
"openQuestions": []
},
"timeline": [],
"strategies": [],
"sources": [],
"context_leads": [],
"conclusion": "Observed promotion does not establish growth causality.",
"limitations": [
"Examples are not live research results."
],
"caveat": "Coverage depends on available public evidence.",
"reliability": {
"actorAttribution": "unknown",
"coverageLevel": "limited",
"growthCausality": "not_established",
"growthImpact": "unknown"
},
"omitted_action_count": 0,
"omitted_context_count": 0
}
}Core Intelligence
Rank AI products
/api/v1/research/rankingsCompare growth, traffic, domain rating, search and AI referrals.
Required scope research:read
Developer Access: page 1, up to 10 results. Paid access depends on account features. Growth is a ratio; null means unavailable.
Parameters
| Field / type | Description & constraints |
|---|---|
locale | Response language: en or zh-CN. default: "en" · maxLength: 20 |
category | Filter by category slug. maxLength: 120 |
country | Two-letter country code. pattern: ^[A-Za-z]{2}$ |
q | Search query. maxLength: 80 |
preset | See the example and full schema. opportunities | trending | fastest-growing | most-visited | ai-referrals | breakouts | new-rising |
sort | Metric used to order results. default: "growth" · growth | gain | traffic | dr_growth | organic | ai | paid | duration |
order | Sort direction. default: "desc" · asc | desc |
min_traffic | Minimum observed traffic. default: 1000 · min: 0 · max: 9007199254740991 |
min_growth | Minimum growth ratio; 0.1 represents 10%. default: 0 · min: 0 · max: 100 |
min_dr | Minimum domain rating. default: 0 · min: 0 · max: 100 |
min_dr_gain | Minimum domain rating increase. default: 0 · min: 0 · max: 100 |
max_domain_age_months | Maximum domain age in months; 0 disables this filter. default: 0 · min: 0 · max: 120 |
page | Page number. Developer Access always returns page 1. default: 1 · min: 1 · max: 200 |
limit | Maximum results per page. default: 25 · min: 1 · max: 50 |
Response fields8
| Field / type | Description & constraints |
|---|---|
category | Filter by category slug. |
dataset | Observation window and dataset coverage. |
eligible_population | Products eligible for this ranking. |
filters | Applied query filters. |
items | Result records. Fields vary by endpoint and account access. |
pagination | Page number, page size and continuation state. |
requested_locale | Requested response language. |
resolved_locale | Language available for this result. |
/research/rankingscurl "https://sigpik.com/api/v1/research/rankings?sort=growth&limit=10" \
-H "Authorization: Bearer $SIGPIK_API_KEY"Local simulation · illustrative data, no network request or quota usage.
200 OKExample response · excerptJSON
{
"dataset": {
"methodology_version": "example"
},
"eligible_population": 1,
"filters": {
"sort": "growth",
"limit": 10
},
"items": [
{
"rank": 1,
"tool_id": 1042,
"name": "Example AI",
"slug": "example-ai",
"normalized_domain": "example.ai",
"primary_category_name": "Productivity",
"primary_category_slug": "productivity",
"latest_month": "2026-08",
"previous_month": "2026-07",
"latest_visits": 131400,
"previous_visits": 100000,
"visits_change": 31400,
"growth_rate": 0.314,
"domain_rating": null,
"favicon_url": null
}
],
"pagination": {
"page": 1,
"limit": 10,
"has_more": false
},
"requested_locale": "en",
"resolved_locale": "en"
}Signal notifications
Subscribe to product signals
/api/v1/alerts/webhooksDeliver new confirmed published signals for products you follow. The verification POST requires HTTP 2xx with {"challenge":"the received value"}. Save the one-time signing_secret. Independent of email and investigations.
Manage endpoints, signing secrets and delivery history in Dashboard.
Signal event and signature
{
"id": "sig_1234_1042",
"version": "1",
"type": "signal.published",
"created_at": "2026-09-17T05:00:00.000Z",
"data": {
"signal_id": 1234,
"signal_type": "traffic_breakout",
"product": {
"id": 1042,
"slug": "example-ai"
},
"title": "Traffic breakout",
"summary": "Illustrative signal: monthly traffic increased.",
"change": {
"direction": "up",
"magnitude": 0.7,
"before": {
"value": 10000,
"unit": "visits"
},
"after": {
"value": 17000,
"unit": "visits"
}
},
"observed_at": "2026-09-17T05:00:00.000Z",
"period": {
"start": "2026-08-01",
"end": "2026-08-31"
},
"published_at": "2026-09-17T05:00:00.000Z",
"evidence_summary": "Illustrative monthly observation; does not establish growth causality.",
"url": "https://sigpik.com/tools/example-ai"
}
}X-Sigpik-Signature: t=<Unix seconds>,v1=<hex HMAC-SHA256>. Sign timestamp + "." + the original body using the full signing_secret. Verify within 5 minutes using constant-time comparison before parsing JSON, then durably deduplicate by event ID. Queue your own action and return HTTP 2xx. Notifications never start investigations.
Operational limits: at most 1,000 signal events per account in a rolling 24 hours; delayed events older than 24 hours are not backfilled. This is notification delivery, not real-time traffic monitoring.
Verify the signature · Node.js
import { createHmac, timingSafeEqual } from "node:crypto";
// rawBody must be the original Buffer, before JSON parsing.
export function verifySigpik(rawBody, signature, secret) {
const match = /^t=(\d{1,12}),v1=([a-f0-9]{64})$/.exec(signature ?? "");
if (!match) return false;
const [, timestamp, hex] = match;
if (Math.abs(Date.now() / 1000 - Number(timestamp)) > 300) return false;
const expected = createHmac("sha256", secret)
.update(timestamp + ".").update(rawBody).digest();
return timingSafeEqual(expected, Buffer.from(hex, "hex"));
}Supported signal events
traffic_breakoutTraffic breakout
Monthly traffic rose enough in both rate and scale to stand out.
traffic_accelerationTraffic growth accelerating
Traffic kept growing across consecutive periods, with the latest increase larger than before.
traffic_decelerationTraffic growth slowing
Traffic may still be growing, but the increase has become smaller across recent periods.
entered_category_top_10Entered market top 10
The product recently entered the top 10 of its primary market.
entered_category_top_20Entered market top 20
The product recently entered the top 20 of its primary market.
dropped_out_of_category_top_10Dropped out of market top 10
The product recently dropped out of the top 10 of its primary market.
market_share_shiftMarket traffic share changed
The product gained or lost a meaningful share of traffic in its primary market.
ai_referral_breakoutAI referral traffic breakout
Traffic arriving from AI assistants rose well above its previous level.
ai_traffic_share_shiftAI referral share changed
The share of total traffic coming from AI assistants moved materially up or down.
new_ai_referral_sourceNew AI referral source
The product began receiving traffic from an AI platform that had not appeared before.
ai_referral_sources_diversifiedMore AI referral sources
More AI platforms are now sending traffic to the product.
backlink_discoveredNew backlinks
Newly observed links from external pages, with sources and first-seen dates. These are collected samples, not a complete link count or proof of faster growth.
backlink_acquisition_spikeBacklink growth accelerating
New backlinks or linking websites exceeded comparable historical levels.
ai_directory_pushAI directory push
The product was recently listed by several verified AI directories.
media_review_burstMedia and review coverage increased
Several new media articles or product reviews appeared in a short period.
google_ads_startedGoogle Ads started
Google Ads activity appeared after a period with no detected campaigns.
ad_creative_expansionMore ad creatives
The number of ad creatives in use increased materially.
new_featureNew feature launched
An official product source introduced a feature that had not appeared before.
new_modelNew model launched
The product officially introduced a new model.
api_addedAPI support added
The product website now offers an API.
mcp_addedMCP support added
The product website now offers MCP support.
positioning_shiftProduct positioning changed
The way the homepage describes the product or its main value changed materially.
product_launchProduct launched
An official source announced that the product had launched.
website_sitemap_expansionMore pages in the sitemap
The number of indexable URLs in the public sitemap increased materially.
website_sitemap_contractionFewer pages in the sitemap
The number of indexable URLs in the public sitemap decreased materially.
programmatic_seo_expansionStructured sitemap URLs expanded
Comparable sitemaps show a net increase in similarly structured URLs. This does not establish indexing or search traffic.
organic_keyword_breakoutNon-brand keyword traffic growth
Estimated traffic grew for a non-brand keyword tracked in both months.
brand_search_growthBrand search growth
Search volume grew for branded keywords tracked in both months.
new_market_pagesNew market pages
Comparable sitemaps show new URLs with language, region, or use-case paths; first entry into a market is not established.
chrome_user_growthChrome extension user growth
The number of users for the Chrome extension increased materially.
primary_domain_changedPrimary domain changed
The product website moved to a new primary domain.
product_discontinuedProduct discontinued
An official source confirmed that the product is no longer offered.
Required scope webhooks:manage
Parameters
| Field / type | Description & constraints |
|---|---|
url | See the example and full schema. maxLength: 2048 |
locale | Response language: en or zh-CN. default: "en" · en | zh-CN |
signal_types | Supported signal types for products you follow. |
Response fields9
| Field / type | Description & constraints |
|---|---|
id | See the example and full schema. |
url | See the example and full schema. |
status | See the example and full schema. pending | active | paused | deleted |
locale | Response language: en or zh-CN. en | zh-CN |
signal_types | Supported signal types for products you follow. |
failure_count | See the example and full schema. |
created_at | See the example and full schema. |
updated_at | See the example and full schema. |
signing_secret | See the example and full schema. |
/alerts/webhookscurl "https://sigpik.com/api/v1/alerts/webhooks" -X POST \
-H "Authorization: Bearer $SIGPIK_API_KEY" \
-H "Content-Type: application/json" \
--data '{"url":"https://your-domain.com/webhooks/sigpik","locale":"en","signal_types":["traffic_breakout"]}'Local simulation · illustrative data, no network request or quota usage.
201 CreatedExample response · excerptJSON
{
"id": "wh_b46b2db0-8a30-4d69-a33e-8b5b4509c279",
"url": "https://your-domain.com/webhooks/sigpik",
"status": "pending",
"locale": "en",
"signal_types": [
"traffic_breakout"
],
"failure_count": 0,
"created_at": "2026-09-17T05:00:00.000Z",
"updated_at": "2026-09-17T05:00:00.000Z",
"signing_secret": "whsec_EXAMPLE_ONLY"
}Public Catalog
Product profile
/api/v1/tools/{slug}Look up a product by its canonical slug. Available fields depend on account access.
Public · no API key
Parameters
| Field / type | Description & constraints |
|---|---|
slug | Canonical product or category slug. |
Response fields20
| Field / type | Description & constraints |
|---|---|
tool_id | See the example and full schema. |
canonical_slug | See the example and full schema. |
localized_slug | See the example and full schema. |
name | See the example and full schema. |
tagline | See the example and full schema. |
short_description | See the example and full schema. |
long_description | See the example and full schema. |
official_url | One public product website per request. |
pricing_model | See the example and full schema. |
listed_at | See the example and full schema. |
verification_status | See the example and full schema. |
staleness_status | See the example and full schema. |
has_free_plan | See the example and full schema. |
has_free_trial | See the example and full schema. |
has_api | Filter products by API availability. |
has_mcp | Filter products by MCP availability. |
requested_locale | Requested response language. |
resolved_locale | Language available for this result. |
available_locales | See the example and full schema. |
categories | See the example and full schema. |
/tools/{slug}curl "https://sigpik.com/api/v1/tools/example-ai"Local simulation · illustrative data, no network request or quota usage.
200 OKExample response · excerptJSON
{
"tool_id": 1042,
"canonical_slug": "example-ai",
"localized_slug": "example-ai",
"name": "Example AI",
"tagline": "An illustrative AI workspace",
"short_description": null,
"logo_url": null,
"official_url": "https://example.ai",
"primary_category_slug": "productivity",
"primary_category_name": "Productivity",
"pricing_model": "freemium",
"has_free_plan": true,
"has_api": true,
"has_mcp": false,
"verification_status": "verified",
"staleness_status": "fresh",
"requested_locale": "en",
"resolved_locale": "en",
"available_locales": [
"en"
],
"long_description": null,
"listed_at": "2026-09-01T00:00:00Z",
"has_free_trial": false,
"categories": []
}Remote MCP
Agent integration
/api/mcpStateless HTTPS with API-key authentication; OAuth is not supported. Every tool needs mcp:tools plus its listed scope. get_account_quota reports plan, scopes, MCP call units, promotion reports, and backlink allowance/credits (zero monthly MCP call units). Free and Starter accounts can create an mcp:tools-only key for the basic MCP tools (100 and 1,000 counted calls a month; Pro has 3,000 shared by REST and MCP): get_product_overview, list_market_categories, list_product_signals, list_product_keywords (where entitled), and get_account_quota. Only successful tool calls are counted; a call that returns an error, including not_found, is not. list_product_signals follows account signal preview/full-history entitlements. list_product_keywords requires product.search_intelligence (Starter+). start_backlink_research requires research:execute, backlinks.research, and confirm_usage=true; get_backlink_research and get_promotion_investigation also cost zero monthly MCP call units. Discovery and ping are also free.
Cursor
Save as .cursor/mcp.json. Replace YOUR_API_KEY locally and keep the file out of version control.
Claude Desktop
For Claude Desktop’s local config, use the mcp-remote bridge (requires Node.js). Save in claude_desktop_config.json and restart Claude. This is a third-party client bridge.
{
"mcpServers": {
"sigpik": {
"url": "https://sigpik.com/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Save as .cursor/mcp.json. Replace YOUR_API_KEY locally and keep the file out of version control.
Remote MCP
Agent skills
Installable Markdown skills teach Agents when and in what order to call Sigpik MCP tools. Start with growth teardown when you want to study and reuse the growth playbook of a competitor. Skills are instructions only; they do not grant API access.
sigpik-growth-teardownGrowth teardown: overview → channel branch (keywords or signals) → optional rankings → ask before promotion investigation.
https://sigpik.com/skills/sigpik-growth-teardown/SKILL.md
Intelligence tools
get_account_quota
Read plan, scopes, MCP call allowance, promotion deep-research remaining reports, and backlink research allowance/credits. Available on the Free and Starter MCP tier. Does not use monthly MCP calls.
mcp:tools + mcp:tools
| Field / type | Description & constraints |
|---|---|
locale | Response language: en or zh-CN. default: "en" · maxLength: 20 |
Returns text content and structuredContent. Tool errors set isError and include error.code and error.message.
tools/call · JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_account_quota",
"arguments": {
"locale": "en"
}
}
}Example response · excerpt
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "{\"contract_version\":\"account-quota-v1\",\"generated_at\":\"2026-10-31T00:00:00.000Z\",\"plan\":{\"code\":\"pro\",\"charge_exempt\":false},\"scopes\":[\"mcp:tools\",\"research:read\",\"research:execute\"],\"features\":{\"promotion_research\":true,\"backlink_research\":true,\"search_intelligence\":true,\"signals_preview\":true,\"signals_full_history\":true,\"api_access\":true},\"mcp_calls\":{\"kind\":\"limited\",\"frequency\":\"month\",\"limit\":3000,\"used\":412,\"remaining\":2588,\"resets_at\":\"2026-11-01T00:00:00.000Z\",\"quota_key\":\"developer-pro-v1\",\"reason\":null},\"promotion_research\":{\"enabled\":true,\"limit\":5,\"used\":1,\"remaining\":4,\"credits\":null,\"resets_at\":\"2026-11-01T00:00:00.000Z\",\"charge_exempt\":false,\"live\":null,\"available\":true},\"backlink_research\":{\"enabled\":true,\"limit\":10,\"used\":2,\"remaining\":8,\"credits\":0,\"resets_at\":\"2026-11-01T00:00:00.000Z\",\"charge_exempt\":false,\"live\":true,\"available\":true},\"hint\":\"Call before start_promotion_investigation or start_backlink_research. This read does not consume monthly MCP call units, research allowance, or credits.\"}"
}
],
"structuredContent": {
"contract_version": "account-quota-v1",
"generated_at": "2026-10-31T00:00:00.000Z",
"plan": {
"code": "pro",
"charge_exempt": false
},
"scopes": [
"mcp:tools",
"research:read",
"research:execute"
],
"features": {
"promotion_research": true,
"backlink_research": true,
"search_intelligence": true,
"signals_preview": true,
"signals_full_history": true,
"api_access": true
},
"mcp_calls": {
"kind": "limited",
"frequency": "month",
"limit": 3000,
"used": 412,
"remaining": 2588,
"resets_at": "2026-11-01T00:00:00.000Z",
"quota_key": "developer-pro-v1",
"reason": null
},
"promotion_research": {
"enabled": true,
"limit": 5,
"used": 1,
"remaining": 4,
"credits": null,
"resets_at": "2026-11-01T00:00:00.000Z",
"charge_exempt": false,
"live": null,
"available": true
},
"backlink_research": {
"enabled": true,
"limit": 10,
"used": 2,
"remaining": 8,
"credits": 0,
"resets_at": "2026-11-01T00:00:00.000Z",
"charge_exempt": false,
"live": true,
"available": true
},
"hint": "Call before start_promotion_investigation or start_backlink_research. This read does not consume monthly MCP call units, research allowance, or credits."
}
}
}Intelligence tools
get_product_overview
Latest-month product snapshot by domain or slug: identity, market, MoM traffic, current DR, and acquisition mix with lead_channel. Available on the Free and Starter MCP tier. Counts as one MCP call when it succeeds.
mcp:tools + mcp:tools
| Field / type | Description & constraints |
|---|---|
domain | Product hostname or URL; normalized before lookup. minLength: 1 · maxLength: 253 |
slug | Canonical product or category slug. minLength: 1 · maxLength: 160 |
locale | Response language: en or zh-CN. default: "en" · maxLength: 20 |
trend_months | Months of visits in traffic.trend (3–12, default 6), oldest first; the same history the public product page shows. default: 6 · min: 3 · max: 12 |
Returns text content and structuredContent. Tool errors set isError and include error.code and error.message.
tools/call · JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_product_overview",
"arguments": {
"domain": "example.ai",
"locale": "en"
}
}
}Example response · excerpt
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "{\"contract_version\":\"product-overview-v1\",\"generated_at\":\"2026-10-29T00:00:00.000Z\",\"product\":{\"tool_id\":1042,\"name\":\"Example AI\",\"slug\":\"example-ai\",\"domain\":\"example.ai\",\"official_url\":\"https://example.ai\",\"listed_at\":\"2026-01-01T00:00:00.000Z\",\"domain_created_at\":\"2024-06-01\",\"domain_age_months\":28,\"has_api\":true,\"has_mcp\":false,\"verification_status\":\"verified\",\"locale\":\"en\"},\"market\":{\"primary\":{\"slug\":\"productivity\",\"name\":\"Productivity\",\"parent_slug\":null,\"parent_name\":null},\"secondary\":[]},\"traffic\":{\"latest_month\":\"2026-08\",\"latest_visits\":131400,\"previous_month\":\"2026-07\",\"previous_visits\":100000,\"visits_change\":31400,\"growth_rate\":0.314,\"avg_visit_duration_seconds\":120,\"pages_per_visit\":3.2,\"bounce_rate\":0.41,\"trend\":[{\"month\":\"2026-07\",\"visits\":100000},{\"month\":\"2026-08\",\"visits\":131400}]},\"domain_authority\":{\"domain_rating\":62,\"observed_at\":\"2026-08-15\"},\"acquisition\":{\"snapshot_month\":\"2026-08\",\"channels\":[{\"channel\":\"search_organic\",\"share\":0.48,\"promotion_like\":false},{\"channel\":\"direct\",\"share\":0.31,\"promotion_like\":false},{\"channel\":\"referrals\",\"share\":0.12,\"promotion_like\":false}],\"lead_channel\":\"search_organic\",\"lead_share\":0.48,\"coverage\":\"partial\"},\"ai_visibility\":null,\"access\":{\"tier\":\"free_summary\",\"plan_code\":\"free\",\"redacted\":[\"ai_visibility\"]},\"links\":{\"product_page\":\"https://sigpik.com/tools/example-ai\",\"developers\":\"https://sigpik.com/developers\"}}"
}
],
"structuredContent": {
"contract_version": "product-overview-v1",
"generated_at": "2026-10-29T00:00:00.000Z",
"product": {
"tool_id": 1042,
"name": "Example AI",
"slug": "example-ai",
"domain": "example.ai",
"official_url": "https://example.ai",
"listed_at": "2026-01-01T00:00:00.000Z",
"domain_created_at": "2024-06-01",
"domain_age_months": 28,
"has_api": true,
"has_mcp": false,
"verification_status": "verified",
"locale": "en"
},
"market": {
"primary": {
"slug": "productivity",
"name": "Productivity",
"parent_slug": null,
"parent_name": null
},
"secondary": []
},
"traffic": {
"latest_month": "2026-08",
"latest_visits": 131400,
"previous_month": "2026-07",
"previous_visits": 100000,
"visits_change": 31400,
"growth_rate": 0.314,
"avg_visit_duration_seconds": 120,
"pages_per_visit": 3.2,
"bounce_rate": 0.41,
"trend": [
{
"month": "2026-07",
"visits": 100000
},
{
"month": "2026-08",
"visits": 131400
}
]
},
"domain_authority": {
"domain_rating": 62,
"observed_at": "2026-08-15"
},
"acquisition": {
"snapshot_month": "2026-08",
"channels": [
{
"channel": "search_organic",
"share": 0.48,
"promotion_like": false
},
{
"channel": "direct",
"share": 0.31,
"promotion_like": false
},
{
"channel": "referrals",
"share": 0.12,
"promotion_like": false
}
],
"lead_channel": "search_organic",
"lead_share": 0.48,
"coverage": "partial"
},
"ai_visibility": null,
"access": {
"tier": "free_summary",
"plan_code": "free",
"redacted": [
"ai_visibility"
]
},
"links": {
"product_page": "https://sigpik.com/tools/example-ai",
"developers": "https://sigpik.com/developers"
}
}
}
}Intelligence tools
list_market_categories
Market taxonomy dictionary. Resolve a canonical category slug before calling rank_ai_products. Available on the Free and Starter MCP tier. Counts as one MCP call when it succeeds.
mcp:tools + mcp:tools
| Field / type | Description & constraints |
|---|---|
locale | Response language: en or zh-CN. default: "en" · maxLength: 20 |
q | Search query. minLength: 1 · maxLength: 80 |
parent_slug | Optional parent category slug to return one branch. minLength: 1 · maxLength: 120 |
format | tree (default) or flat. Search queries return flat matches. default: "tree" · tree | flat |
Returns text content and structuredContent. Tool errors set isError and include error.code and error.message.
tools/call · JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_market_categories",
"arguments": {
"locale": "en"
}
}
}Example response · excerpt
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "{\"contract_version\":\"market-categories-v1\",\"generated_at\":\"2026-10-29T00:00:00.000Z\",\"locale\":\"en\",\"format\":\"tree\",\"total\":2,\"items\":[{\"slug\":\"productivity\",\"name\":\"Productivity\",\"parent_slug\":null,\"tool_count\":120,\"display_order\":10,\"children\":[{\"slug\":\"notes\",\"name\":\"Notes\",\"parent_slug\":\"productivity\",\"tool_count\":18,\"display_order\":11,\"children\":[]}]}],\"access\":{\"tier\":\"free_dictionary\",\"plan_code\":\"free\",\"redacted\":[]},\"links\":{\"markets_page\":\"https://sigpik.com/markets\",\"developers\":\"https://sigpik.com/developers\"},\"hint\":\"Use items[].slug (canonical) as rank_ai_products.category. Do not invent category strings.\"}"
}
],
"structuredContent": {
"contract_version": "market-categories-v1",
"generated_at": "2026-10-29T00:00:00.000Z",
"locale": "en",
"format": "tree",
"total": 2,
"items": [
{
"slug": "productivity",
"name": "Productivity",
"parent_slug": null,
"tool_count": 120,
"display_order": 10,
"children": [
{
"slug": "notes",
"name": "Notes",
"parent_slug": "productivity",
"tool_count": 18,
"display_order": 11,
"children": []
}
]
}
],
"access": {
"tier": "free_dictionary",
"plan_code": "free",
"redacted": []
},
"links": {
"markets_page": "https://sigpik.com/markets",
"developers": "https://sigpik.com/developers"
},
"hint": "Use items[].slug (canonical) as rank_ai_products.category. Do not invent category strings."
}
}
}Intelligence tools
list_product_signals
Recent confirmed product signals by domain or slug. Preview length follows account signal entitlements. Available on the Free and Starter MCP tier. Counts as one MCP call when it succeeds.
mcp:tools + mcp:tools
| Field / type | Description & constraints |
|---|---|
domain | Product hostname or URL; normalized before lookup. minLength: 1 · maxLength: 253 |
slug | Canonical product or category slug. minLength: 1 · maxLength: 160 |
locale | Response language: en or zh-CN. default: "en" · maxLength: 20 |
window | Signal lookback window: 7d, 30d, or 90d (default 90d). default: "90d" · 7d | 30d | 90d |
limit | Maximum results per page. default: 10 · min: 1 · max: 50 |
family | Optional signal family filter. growth | product | distribution | search | ai_visibility | adoption | business_lifecycle |
type | Keyword classification; defaults to non-brand. minLength: 1 · maxLength: 80 |
Returns text content and structuredContent. Tool errors set isError and include error.code and error.message.
tools/call · JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_product_signals",
"arguments": {
"domain": "example.ai",
"window": "30d"
}
}
}Example response · excerpt
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "{\"contract_version\":\"product-signals-list-v1\",\"generated_at\":\"2026-10-29T00:00:00.000Z\",\"product\":{\"tool_id\":1042,\"name\":\"Example AI\",\"slug\":\"example-ai\",\"domain\":\"example.ai\",\"locale\":\"en\"},\"window\":\"30d\",\"filters\":{\"family\":null,\"type\":null,\"limit\":10},\"total_matched\":1,\"truncated\":false,\"full_history\":false,\"preview_limit\":3,\"items\":[{\"signal_key\":\"sig_v1_example\",\"signal_type\":\"traffic_breakout\",\"family\":\"growth\",\"label\":\"Traffic breakout\",\"description\":\"Monthly traffic rose enough in both rate and scale to stand out.\",\"direction\":\"up\",\"importance_score\":82,\"observed_at\":\"2026-10-20T00:00:00.000Z\",\"period_start\":\"2026-09-01\",\"period_end\":\"2026-10-01\",\"old_value\":null,\"new_value\":null,\"magnitude\":null,\"evidence_count\":2}],\"access\":{\"tier\":\"signals_preview\",\"plan_code\":\"free\",\"redacted\":[\"signals.full_history\"]},\"links\":{\"product_page\":\"https://sigpik.com/tools/example-ai\",\"signals_page\":\"https://sigpik.com/signals\",\"developers\":\"https://sigpik.com/developers\"}}"
}
],
"structuredContent": {
"contract_version": "product-signals-list-v1",
"generated_at": "2026-10-29T00:00:00.000Z",
"product": {
"tool_id": 1042,
"name": "Example AI",
"slug": "example-ai",
"domain": "example.ai",
"locale": "en"
},
"window": "30d",
"filters": {
"family": null,
"type": null,
"limit": 10
},
"total_matched": 1,
"truncated": false,
"full_history": false,
"preview_limit": 3,
"items": [
{
"signal_key": "sig_v1_example",
"signal_type": "traffic_breakout",
"family": "growth",
"label": "Traffic breakout",
"description": "Monthly traffic rose enough in both rate and scale to stand out.",
"direction": "up",
"importance_score": 82,
"observed_at": "2026-10-20T00:00:00.000Z",
"period_start": "2026-09-01",
"period_end": "2026-10-01",
"old_value": null,
"new_value": null,
"magnitude": null,
"evidence_count": 2
}
],
"access": {
"tier": "signals_preview",
"plan_code": "free",
"redacted": [
"signals.full_history"
]
},
"links": {
"product_page": "https://sigpik.com/tools/example-ai",
"signals_page": "https://sigpik.com/signals",
"developers": "https://sigpik.com/developers"
}
}
}
}Intelligence tools
list_product_keywords
Observed top search keywords by domain or slug. Facts only; requires product.search_intelligence. Available on the Free and Starter MCP tier. Counts as one MCP call when it succeeds.
mcp:tools + mcp:tools
| Field / type | Description & constraints |
|---|---|
domain | Product hostname or URL; normalized before lookup. minLength: 1 · maxLength: 253 |
slug | Canonical product or category slug. minLength: 1 · maxLength: 160 |
locale | Response language: en or zh-CN. default: "en" · maxLength: 20 |
month | See the example and full schema. pattern: ^\d{4}-\d{2}$ |
brand_scope | See the example and full schema. default: "all" · all | brand | non_brand |
limit | Maximum results per page. default: 20 · min: 1 · max: 50 |
Returns text content and structuredContent. Tool errors set isError and include error.code and error.message.
tools/call · JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_product_keywords",
"arguments": {
"domain": "example.ai",
"brand_scope": "non_brand",
"limit": 10
}
}
}Example response · excerpt
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "{\"contract_version\":\"product-keywords-list-v1\",\"generated_at\":\"2026-10-29T00:00:00.000Z\",\"product\":{\"tool_id\":1042,\"name\":\"Example AI\",\"slug\":\"example-ai\",\"domain\":\"example.ai\",\"locale\":\"en\"},\"sample\":{\"observed_month\":\"2026-09-01\",\"source_mode\":\"normalized\",\"sample_scope\":\"top_observed_keywords\",\"sample_size\":5},\"filters\":{\"month\":null,\"brand_scope\":\"all\",\"limit\":20},\"total_matched\":1,\"truncated\":false,\"items\":[{\"keyword\":\"example ai writing\",\"keyword_id\":9001,\"brand_type\":\"generic\",\"brand_confidence\":0.91,\"traffic\":1200,\"search_volume\":5400,\"position\":4,\"cpc\":1.2}],\"access\":{\"tier\":\"search_intelligence\",\"plan_code\":\"starter\",\"redacted\":[]},\"links\":{\"product_page\":\"https://sigpik.com/tools/example-ai\",\"developers\":\"https://sigpik.com/developers\"},\"hint\":\"Observed top keyword sample only (5 keywords kept for this month) — not a complete keyword universe; truncated refers to your limit, not the source cap. No competitor gap or opportunity ranking.\"}"
}
],
"structuredContent": {
"contract_version": "product-keywords-list-v1",
"generated_at": "2026-10-29T00:00:00.000Z",
"product": {
"tool_id": 1042,
"name": "Example AI",
"slug": "example-ai",
"domain": "example.ai",
"locale": "en"
},
"sample": {
"observed_month": "2026-09-01",
"source_mode": "normalized",
"sample_scope": "top_observed_keywords",
"sample_size": 5
},
"filters": {
"month": null,
"brand_scope": "all",
"limit": 20
},
"total_matched": 1,
"truncated": false,
"items": [
{
"keyword": "example ai writing",
"keyword_id": 9001,
"brand_type": "generic",
"brand_confidence": 0.91,
"traffic": 1200,
"search_volume": 5400,
"position": 4,
"cpc": 1.2
}
],
"access": {
"tier": "search_intelligence",
"plan_code": "starter",
"redacted": []
},
"links": {
"product_page": "https://sigpik.com/tools/example-ai",
"developers": "https://sigpik.com/developers"
},
"hint": "Observed top keyword sample only (5 keywords kept for this month) — not a complete keyword universe; truncated refers to your limit, not the source cap. No competitor gap or opportunity ranking."
}
}
}Intelligence tools
rank_ai_products
Compare growth, traffic, domain rating, search and AI referrals. Counts as one MCP call when it succeeds.
mcp:tools + research:read
| Field / type | Description & constraints |
|---|---|
locale | Response language: en or zh-CN. default: "en" · maxLength: 20 |
category | Filter by category slug. maxLength: 120 |
country | Two-letter country code. pattern: ^[A-Za-z]{2}$ |
q | Search query. maxLength: 80 |
preset | See the example and full schema. opportunities | trending | fastest-growing | most-visited | ai-referrals | breakouts | new-rising |
sort | Metric used to order results. default: "growth" · growth | gain | traffic | dr_growth | organic | ai | paid | duration |
order | Sort direction. default: "desc" · asc | desc |
min_traffic | Minimum observed traffic. default: 1000 · min: 0 · max: 9007199254740991 |
min_growth | Minimum growth ratio; 0.1 represents 10%. default: 0 · min: 0 · max: 100 |
min_dr | Minimum domain rating. default: 0 · min: 0 · max: 100 |
min_dr_gain | Minimum domain rating increase. default: 0 · min: 0 · max: 100 |
max_domain_age_months | Maximum domain age in months; 0 disables this filter. default: 0 · min: 0 · max: 120 |
page | Page number. Developer Access always returns page 1. default: 1 · min: 1 · max: 200 |
limit | Maximum results per page. default: 25 · min: 1 · max: 50 |
Returns text content and structuredContent. Tool errors set isError and include error.code and error.message.
tools/call · JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "rank_ai_products",
"arguments": {
"sort": "growth",
"limit": 10
}
}
}Example response · excerpt
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "{\"dataset\":{\"methodology_version\":\"example\"},\"eligible_population\":1,\"filters\":{\"sort\":\"growth\",\"limit\":10},\"items\":[{\"rank\":1,\"tool_id\":1042,\"name\":\"Example AI\",\"slug\":\"example-ai\",\"normalized_domain\":\"example.ai\",\"primary_category_name\":\"Productivity\",\"primary_category_slug\":\"productivity\",\"latest_month\":\"2026-08\",\"previous_month\":\"2026-07\",\"latest_visits\":131400,\"previous_visits\":100000,\"visits_change\":31400,\"growth_rate\":0.314,\"domain_rating\":null,\"favicon_url\":null}],\"pagination\":{\"page\":1,\"limit\":10,\"has_more\":false},\"requested_locale\":\"en\",\"resolved_locale\":\"en\"}"
}
],
"structuredContent": {
"dataset": {
"methodology_version": "example"
},
"eligible_population": 1,
"filters": {
"sort": "growth",
"limit": 10
},
"items": [
{
"rank": 1,
"tool_id": 1042,
"name": "Example AI",
"slug": "example-ai",
"normalized_domain": "example.ai",
"primary_category_name": "Productivity",
"primary_category_slug": "productivity",
"latest_month": "2026-08",
"previous_month": "2026-07",
"latest_visits": 131400,
"previous_visits": 100000,
"visits_change": 31400,
"growth_rate": 0.314,
"domain_rating": null,
"favicon_url": null
}
],
"pagination": {
"page": 1,
"limit": 10,
"has_more": false
},
"requested_locale": "en",
"resolved_locale": "en"
}
}
}Intelligence tools
start_promotion_investigation
Research one product using the same promotion history service as its detail page. Explicitly consumes the existing account research allowance. Reuse the same UUID to retry the same request. Returns a task ID; no CSV or catalog export. Counts as one MCP call when it succeeds.
mcp:tools + research:execute
| Field / type | Description & constraints |
|---|---|
slug | Canonical product or category slug. minLength: 1 · maxLength: 200 |
domain | Product hostname or URL; normalized before lookup. minLength: 1 · maxLength: 253 |
locale | Response language: en or zh-CN. default: "en" · en | zh-CN |
idempotency_key | A UUID reused only when retrying the same product and language. pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ |
confirm_usage | Must be true to explicitly use the existing research allowance. true |
Returns text content and structuredContent. Tool errors set isError and include error.code and error.message.
tools/call · JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "start_promotion_investigation",
"arguments": {
"slug": "example-ai",
"locale": "en",
"idempotency_key": "b46b2db0-8a30-4d69-a33e-8b5b4509c279",
"confirm_usage": true
}
}
}Example response · excerpt
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "{\"task_id\":\"task_b46b2db0-8a30-4d69-a33e-8b5b4509c279\",\"type\":\"promotion_investigation\",\"status\":\"queued\",\"stage\":\"queued\",\"created_at\":\"2026-09-17T05:00:00.000Z\",\"updated_at\":\"2026-09-17T05:00:00.000Z\",\"completed_at\":null,\"status_url\":\"/api/v1/research/promotion-investigations/task_b46b2db0-8a30-4d69-a33e-8b5b4509c279\",\"result_url\":null,\"poll_after_seconds\":60,\"error\":null,\"report\":null}"
}
],
"structuredContent": {
"task_id": "task_b46b2db0-8a30-4d69-a33e-8b5b4509c279",
"type": "promotion_investigation",
"status": "queued",
"stage": "queued",
"created_at": "2026-09-17T05:00:00.000Z",
"updated_at": "2026-09-17T05:00:00.000Z",
"completed_at": null,
"status_url": "/api/v1/research/promotion-investigations/task_b46b2db0-8a30-4d69-a33e-8b5b4509c279",
"result_url": null,
"poll_after_seconds": 60,
"error": null,
"report": null
}
}
}Intelligence tools
get_promotion_investigation
One read returns progress and the saved final report. report is null while queued/running and populated when succeeded; failed/cancelled are terminal. Costs no research credits or monthly API calls, even after the allowance is exhausted. Poll after 60 seconds while pending. Unknown and another account’s IDs return 404. Does not use monthly MCP calls.
mcp:tools + research:read
| Field / type | Description & constraints |
|---|---|
task_id | The random task ID returned by submission. pattern: ^task_[0-9a-f-]{36}$ |
Returns text content and structuredContent. Tool errors set isError and include error.code and error.message.
tools/call · JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_promotion_investigation",
"arguments": {
"task_id": "task_b46b2db0-8a30-4d69-a33e-8b5b4509c279"
}
}
}Example response · excerpt
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "{\"task_id\":\"task_b46b2db0-8a30-4d69-a33e-8b5b4509c279\",\"type\":\"promotion_investigation\",\"status\":\"succeeded\",\"stage\":\"complete\",\"created_at\":\"2026-09-17T05:00:00.000Z\",\"updated_at\":\"2026-09-17T05:00:00.000Z\",\"completed_at\":\"2026-09-17T05:10:00.000Z\",\"status_url\":\"/api/v1/research/promotion-investigations/task_b46b2db0-8a30-4d69-a33e-8b5b4509c279\",\"result_url\":\"/api/v1/research/promotion-investigations/task_b46b2db0-8a30-4d69-a33e-8b5b4509c279\",\"poll_after_seconds\":null,\"error\":null,\"report\":{\"version\":\"example\",\"generated_at\":\"2026-09-17T05:10:00.000Z\",\"narrative\":{\"title\":\"Example promotion history\",\"summary\":{\"text\":\"Illustrative report: published sources describe a launch and later community activity.\",\"citations\":[]},\"sections\":[],\"limitations\":\"Illustrative response. Actual reports include only available evidence.\"},\"summary\":{\"actionEvidenceCount\":0,\"channelCount\":0,\"contextLeadCount\":0,\"sourceCount\":0,\"unresolvedActionCount\":0},\"analysis\":{\"overview\":\"Illustrative report.\",\"method\":\"\",\"observations\":[],\"phases\":[],\"channels\":[],\"openQuestions\":[]},\"timeline\":[],\"strategies\":[],\"sources\":[],\"context_leads\":[],\"conclusion\":\"Observed promotion does not establish growth causality.\",\"limitations\":[\"Examples are not live research results.\"],\"caveat\":\"Coverage depends on available public evidence.\",\"reliability\":{\"actorAttribution\":\"unknown\",\"coverageLevel\":\"limited\",\"growthCausality\":\"not_established\",\"growthImpact\":\"unknown\"},\"omitted_action_count\":0,\"omitted_context_count\":0}}"
}
],
"structuredContent": {
"task_id": "task_b46b2db0-8a30-4d69-a33e-8b5b4509c279",
"type": "promotion_investigation",
"status": "succeeded",
"stage": "complete",
"created_at": "2026-09-17T05:00:00.000Z",
"updated_at": "2026-09-17T05:00:00.000Z",
"completed_at": "2026-09-17T05:10:00.000Z",
"status_url": "/api/v1/research/promotion-investigations/task_b46b2db0-8a30-4d69-a33e-8b5b4509c279",
"result_url": "/api/v1/research/promotion-investigations/task_b46b2db0-8a30-4d69-a33e-8b5b4509c279",
"poll_after_seconds": null,
"error": null,
"report": {
"version": "example",
"generated_at": "2026-09-17T05:10:00.000Z",
"narrative": {
"title": "Example promotion history",
"summary": {
"text": "Illustrative report: published sources describe a launch and later community activity.",
"citations": []
},
"sections": [],
"limitations": "Illustrative response. Actual reports include only available evidence."
},
"summary": {
"actionEvidenceCount": 0,
"channelCount": 0,
"contextLeadCount": 0,
"sourceCount": 0,
"unresolvedActionCount": 0
},
"analysis": {
"overview": "Illustrative report.",
"method": "",
"observations": [],
"phases": [],
"channels": [],
"openQuestions": []
},
"timeline": [],
"strategies": [],
"sources": [],
"context_leads": [],
"conclusion": "Observed promotion does not establish growth causality.",
"limitations": [
"Examples are not live research results."
],
"caveat": "Coverage depends on available public evidence.",
"reliability": {
"actorAttribution": "unknown",
"coverageLevel": "limited",
"growthCausality": "not_established",
"growthImpact": "unknown"
},
"omitted_action_count": 0,
"omitted_context_count": 0
}
}
}
}Intelligence tools
start_backlink_research
Start paid backlink research for a domain/slug. Auto-binds the latest applicable backlink signal window. Requires confirm_usage=true. Counts as one MCP call when it succeeds.
mcp:tools + research:execute
| Field / type | Description & constraints |
|---|---|
domain | Product hostname or URL; normalized before lookup. minLength: 1 · maxLength: 253 |
slug | Canonical product or category slug. minLength: 1 · maxLength: 160 |
signal_key | See the example and full schema. pattern: ^sig_v1_[a-f0-9]{64}$ |
action | See the example and full schema. default: "start" · start | more | refresh |
job_key | See the example and full schema. pattern: ^bd_[a-f0-9]{64}$ |
locale | Response language: en or zh-CN. default: "en" · maxLength: 20 |
confirm_usage | Must be true to explicitly use the existing research allowance. true |
Returns text content and structuredContent. Tool errors set isError and include error.code and error.message.
tools/call · JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "start_backlink_research",
"arguments": {
"domain": "example.ai",
"confirm_usage": true
}
}
}Example response · excerpt
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "{\"contract_version\":\"backlink-research-v1\",\"generated_at\":\"2026-10-31T00:00:00.000Z\",\"signal_key\":\"sig_v1_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\",\"product\":{\"tool_id\":1042,\"domain\":\"example.ai\",\"slug\":\"example-ai\",\"name\":\"Example AI\"},\"window\":{\"period_start\":\"2026-08-01T00:00:00.000Z\",\"period_end\":\"2026-09-01T00:00:00.000Z\"},\"quota\":{\"remaining\":8,\"credits\":0,\"limit\":10,\"resets_at\":\"2026-11-01T00:00:00.000Z\",\"charge_exempt\":false},\"jobs\":[{\"key\":\"bd_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\",\"status\":\"succeeded\",\"page\":0,\"count\":42,\"matchedCount\":42,\"hasMore\":false,\"partial\":false,\"capturedAt\":\"2026-10-31T00:00:10.000Z\",\"access\":\"charged\"}],\"selected_job\":\"bd_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\",\"status\":\"succeeded\",\"poll_after_seconds\":null,\"poll_hint\":null,\"summary\":{\"total_rows_in_page\":2,\"active_count\":2,\"lost_count\":0,\"dofollow_count\":1,\"nofollow_count\":1,\"unknown_follow_count\":0,\"channel_counts\":[{\"channel\":\"content\",\"count\":2}],\"top_source_domains\":[{\"domain\":\"news.example\",\"count\":1,\"sample_url\":\"https://news.example/post\"}],\"sample\":[{\"source_url\":\"https://news.example/post\",\"source_domain\":\"news.example\",\"anchor\":\"Example AI\",\"dofollow\":true,\"links_count\":3,\"first_seen\":\"2026-08-12T00:00:00.000Z\",\"channel\":\"content\"}]},\"filters\":{\"offset\":0,\"page_size\":20,\"min_dofollow\":null},\"items\":[{\"sourceUrl\":\"https://news.example/post\",\"targetUrl\":\"https://example.ai/\",\"sourceDomain\":\"news.example\",\"anchor\":\"Example AI\",\"dofollow\":true,\"linksCount\":3,\"firstSeen\":\"2026-08-12T00:00:00.000Z\",\"lastSeen\":null,\"observedAt\":\"2026-09-01T00:00:00.000Z\",\"status\":\"active\",\"channel\":\"content\",\"page_type\":\"article\"}],\"next_offset\":null,\"truncated\":false,\"access\":{\"tier\":\"backlinks_research\",\"plan_code\":\"starter\",\"redacted\":[]},\"links\":{\"product_page\":\"https://sigpik.com/tools/example-ai\",\"developers\":\"https://sigpik.com/developers\"},\"hint\":\"Summary covers the current page only. Use next_offset for more rows. Domain Rating filters are not available in v1.\"}"
}
],
"structuredContent": {
"contract_version": "backlink-research-v1",
"generated_at": "2026-10-31T00:00:00.000Z",
"signal_key": "sig_v1_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"product": {
"tool_id": 1042,
"domain": "example.ai",
"slug": "example-ai",
"name": "Example AI"
},
"window": {
"period_start": "2026-08-01T00:00:00.000Z",
"period_end": "2026-09-01T00:00:00.000Z"
},
"quota": {
"remaining": 8,
"credits": 0,
"limit": 10,
"resets_at": "2026-11-01T00:00:00.000Z",
"charge_exempt": false
},
"jobs": [
{
"key": "bd_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"status": "succeeded",
"page": 0,
"count": 42,
"matchedCount": 42,
"hasMore": false,
"partial": false,
"capturedAt": "2026-10-31T00:00:10.000Z",
"access": "charged"
}
],
"selected_job": "bd_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"status": "succeeded",
"poll_after_seconds": null,
"poll_hint": null,
"summary": {
"total_rows_in_page": 2,
"active_count": 2,
"lost_count": 0,
"dofollow_count": 1,
"nofollow_count": 1,
"unknown_follow_count": 0,
"channel_counts": [
{
"channel": "content",
"count": 2
}
],
"top_source_domains": [
{
"domain": "news.example",
"count": 1,
"sample_url": "https://news.example/post"
}
],
"sample": [
{
"source_url": "https://news.example/post",
"source_domain": "news.example",
"anchor": "Example AI",
"dofollow": true,
"links_count": 3,
"first_seen": "2026-08-12T00:00:00.000Z",
"channel": "content"
}
]
},
"filters": {
"offset": 0,
"page_size": 20,
"min_dofollow": null
},
"items": [
{
"sourceUrl": "https://news.example/post",
"targetUrl": "https://example.ai/",
"sourceDomain": "news.example",
"anchor": "Example AI",
"dofollow": true,
"linksCount": 3,
"firstSeen": "2026-08-12T00:00:00.000Z",
"lastSeen": null,
"observedAt": "2026-09-01T00:00:00.000Z",
"status": "active",
"channel": "content",
"page_type": "article"
}
],
"next_offset": null,
"truncated": false,
"access": {
"tier": "backlinks_research",
"plan_code": "starter",
"redacted": []
},
"links": {
"product_page": "https://sigpik.com/tools/example-ai",
"developers": "https://sigpik.com/developers"
},
"hint": "Summary covers the current page only. Use next_offset for more rows. Domain Rating filters are not available in v1."
}
}
}Intelligence tools
get_backlink_research
Read backlink research progress and a summary-first page of rows. Respect poll_after_seconds. Does not use monthly MCP calls.
mcp:tools + research:read
| Field / type | Description & constraints |
|---|---|
domain | Product hostname or URL; normalized before lookup. minLength: 1 · maxLength: 253 |
slug | Canonical product or category slug. minLength: 1 · maxLength: 160 |
signal_key | See the example and full schema. pattern: ^sig_v1_[a-f0-9]{64}$ |
job_key | See the example and full schema. pattern: ^bd_[a-f0-9]{64}$ |
offset | See the example and full schema. default: 0 · min: 0 · max: 999 |
page_size | See the example and full schema. default: 20 · min: 1 · max: 25 |
min_dofollow | See the example and full schema. |
locale | Response language: en or zh-CN. default: "en" · maxLength: 20 |
Returns text content and structuredContent. Tool errors set isError and include error.code and error.message.
tools/call · JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_backlink_research",
"arguments": {
"domain": "example.ai",
"page_size": 20
}
}
}Example response · excerpt
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "{\"contract_version\":\"backlink-research-v1\",\"generated_at\":\"2026-10-31T00:00:00.000Z\",\"signal_key\":\"sig_v1_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\",\"product\":{\"tool_id\":1042,\"domain\":\"example.ai\",\"slug\":\"example-ai\",\"name\":\"Example AI\"},\"window\":{\"period_start\":\"2026-08-01T00:00:00.000Z\",\"period_end\":\"2026-09-01T00:00:00.000Z\"},\"quota\":{\"remaining\":8,\"credits\":0,\"limit\":10,\"resets_at\":\"2026-11-01T00:00:00.000Z\",\"charge_exempt\":false},\"jobs\":[{\"key\":\"bd_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\",\"status\":\"succeeded\",\"page\":0,\"count\":42,\"matchedCount\":42,\"hasMore\":false,\"partial\":false,\"capturedAt\":\"2026-10-31T00:00:10.000Z\",\"access\":\"charged\"}],\"selected_job\":\"bd_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\",\"status\":\"succeeded\",\"poll_after_seconds\":null,\"poll_hint\":null,\"summary\":{\"total_rows_in_page\":2,\"active_count\":2,\"lost_count\":0,\"dofollow_count\":1,\"nofollow_count\":1,\"unknown_follow_count\":0,\"channel_counts\":[{\"channel\":\"content\",\"count\":2}],\"top_source_domains\":[{\"domain\":\"news.example\",\"count\":1,\"sample_url\":\"https://news.example/post\"}],\"sample\":[{\"source_url\":\"https://news.example/post\",\"source_domain\":\"news.example\",\"anchor\":\"Example AI\",\"dofollow\":true,\"links_count\":3,\"first_seen\":\"2026-08-12T00:00:00.000Z\",\"channel\":\"content\"}]},\"filters\":{\"offset\":0,\"page_size\":20,\"min_dofollow\":null},\"items\":[{\"sourceUrl\":\"https://news.example/post\",\"targetUrl\":\"https://example.ai/\",\"sourceDomain\":\"news.example\",\"anchor\":\"Example AI\",\"dofollow\":true,\"linksCount\":3,\"firstSeen\":\"2026-08-12T00:00:00.000Z\",\"lastSeen\":null,\"observedAt\":\"2026-09-01T00:00:00.000Z\",\"status\":\"active\",\"channel\":\"content\",\"page_type\":\"article\"}],\"next_offset\":null,\"truncated\":false,\"access\":{\"tier\":\"backlinks_research\",\"plan_code\":\"starter\",\"redacted\":[]},\"links\":{\"product_page\":\"https://sigpik.com/tools/example-ai\",\"developers\":\"https://sigpik.com/developers\"},\"hint\":\"Summary covers the current page only. Use next_offset for more rows. Domain Rating filters are not available in v1.\"}"
}
],
"structuredContent": {
"contract_version": "backlink-research-v1",
"generated_at": "2026-10-31T00:00:00.000Z",
"signal_key": "sig_v1_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"product": {
"tool_id": 1042,
"domain": "example.ai",
"slug": "example-ai",
"name": "Example AI"
},
"window": {
"period_start": "2026-08-01T00:00:00.000Z",
"period_end": "2026-09-01T00:00:00.000Z"
},
"quota": {
"remaining": 8,
"credits": 0,
"limit": 10,
"resets_at": "2026-11-01T00:00:00.000Z",
"charge_exempt": false
},
"jobs": [
{
"key": "bd_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"status": "succeeded",
"page": 0,
"count": 42,
"matchedCount": 42,
"hasMore": false,
"partial": false,
"capturedAt": "2026-10-31T00:00:10.000Z",
"access": "charged"
}
],
"selected_job": "bd_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"status": "succeeded",
"poll_after_seconds": null,
"poll_hint": null,
"summary": {
"total_rows_in_page": 2,
"active_count": 2,
"lost_count": 0,
"dofollow_count": 1,
"nofollow_count": 1,
"unknown_follow_count": 0,
"channel_counts": [
{
"channel": "content",
"count": 2
}
],
"top_source_domains": [
{
"domain": "news.example",
"count": 1,
"sample_url": "https://news.example/post"
}
],
"sample": [
{
"source_url": "https://news.example/post",
"source_domain": "news.example",
"anchor": "Example AI",
"dofollow": true,
"links_count": 3,
"first_seen": "2026-08-12T00:00:00.000Z",
"channel": "content"
}
]
},
"filters": {
"offset": 0,
"page_size": 20,
"min_dofollow": null
},
"items": [
{
"sourceUrl": "https://news.example/post",
"targetUrl": "https://example.ai/",
"sourceDomain": "news.example",
"anchor": "Example AI",
"dofollow": true,
"linksCount": 3,
"firstSeen": "2026-08-12T00:00:00.000Z",
"lastSeen": null,
"observedAt": "2026-09-01T00:00:00.000Z",
"status": "active",
"channel": "content",
"page_type": "article"
}
],
"next_offset": null,
"truncated": false,
"access": {
"tier": "backlinks_research",
"plan_code": "starter",
"redacted": []
},
"links": {
"product_page": "https://sigpik.com/tools/example-ai",
"developers": "https://sigpik.com/developers"
},
"hint": "Summary covers the current page only. Use next_offset for more rows. Domain Rating filters are not available in v1."
}
}
}TypeScript / Python
Client libraries
Use Node.js fetch or install httpx for Python. Run authenticated requests on your server and read SIGPIK_API_KEY from the environment.
Copy the TypeScript or Python example for the endpoint you need. The OpenAPI document can also generate a typed client.
Get developer access