EcomScout Signals API

Your competitor watches — sales, ads, insights (user-scoped)

Operations 17

GET /v1/signals List your tracked stores + plan caps #
POST /v1/signals Create a signal (auto-track bestsellers). Example domain: gruntstyle.com #
GET /v1/signals/insights Account insight feed across all watches #
GET /v1/signals/{id} One signal (watch id or domain) incl. #
PATCH /v1/signals/{id} Edit status, products, name #
DELETE /v1/signals/{id} Delete your watch (shared observations may remain) #
POST /v1/signals/{id}/stop Pause a signal (alias for status=paused) #
GET /v1/signals/{id}/probe Inventory probe status (queued|probing|computing|done|failed). #
POST /v1/signals/{id}/probe Queue an inventory probe (5 min cooldown) #
GET /v1/signals/{id}/stats Tracked totals + store profile. Grunt Style ≈ $10.8k / 19d #
GET /v1/signals/{id}/sales Daily units/revenue + variant inventory deltas #
GET /v1/signals/{id}/daily One-day store payload: daily_summary → products → variants (orders = lower… #
GET /v1/signals/{id}/inventory Inventory timeline + restocks #
GET /v1/signals/{id}/ads/overview Ads vs revenue, productImpact, events. MagBak iPhone 15 +82.7% lift #
GET /v1/signals/{id}/ads Paginated Meta/TikTok/Google creatives #
GET /v1/signals/{id}/apps Installed apps on the watched store #
GET /v1/signals/{id}/insights Insights for one signal #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ecomscout-com:ecomscout-com-signals-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ecomscout-com-signals-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: EcomScout Public Signals API
  version: 0.7.0
  description: Unified ecommerce intelligence API for coding agents, app builders, and VC/PE analysts. Stores, products, apps, analytics, changes, signals, scrapes — one JSON object per resource. Read /v1/llms.txt then /v1/examples before calling data endpoints. Only 2xx responses burn daily quota and plan buckets; 4xx do not. Store contacts (company, emails, phones) on GET /v1/stores/{domain} and GET /v1/stores/{domain}/contacts.
servers:
- url: https://api.ecomscout.com
security:
- apiKey: []
- bearer: []
tags:
- name: Signals
  description: Your competitor watches — sales, ads, insights (user-scoped)
paths:
  /v1/signals:
    get:
      tags:
      - Signals
      summary: List your tracked stores + plan caps
      operationId: listSignals
    post:
      tags:
      - Signals
      summary: 'Create a signal (auto-track bestsellers). Example domain: gruntstyle.com'
      operationId: createSignal
  /v1/signals/insights:
    get:
      tags:
      - Signals
      summary: Account insight feed across all watches
      operationId: listSignalInsights
  /v1/signals/{id}:
    get:
      tags:
      - Signals
      summary: One signal (watch id or domain) incl.
      operationId: getSignal
    patch:
      tags:
      - Signals
      summary: Edit status, products, name
      operationId: patchSignal
    delete:
      tags:
      - Signals
      summary: Delete your watch (shared observations may remain)
      operationId: deleteSignal
  /v1/signals/{id}/stop:
    post:
      tags:
      - Signals
      summary: Pause a signal (alias for status=paused)
      operationId: stopSignal
  /v1/signals/{id}/probe:
    get:
      tags:
      - Signals
      summary: Inventory probe status (queued|probing|computing|done|failed).
      operationId: signalProbeStatus
    post:
      tags:
      - Signals
      summary: Queue an inventory probe (5 min cooldown)
      operationId: probeSignal
  /v1/signals/{id}/stats:
    get:
      tags:
      - Signals
      summary: Tracked totals + store profile. Grunt Style ≈ $10.8k / 19d
      operationId: signalStats
  /v1/signals/{id}/sales:
    get:
      tags:
      - Signals
      summary: Daily units/revenue + variant inventory deltas
      operationId: signalSales
  /v1/signals/{id}/daily:
    get:
      tags:
      - Signals
      summary: 'One-day store payload: daily_summary → products → variants (orders = lower…'
      operationId: signalDaily
      parameters:
      - name: date
        in: query
        required: false
        schema:
          type: string
          format: date
        description: UTC day, default yesterday
  /v1/signals/{id}/inventory:
    get:
      tags:
      - Signals
      summary: Inventory timeline + restocks
      operationId: signalInventory
  /v1/signals/{id}/ads/overview:
    get:
      tags:
      - Signals
      summary: Ads vs revenue, productImpact, events. MagBak iPhone 15 +82.7% lift
      operationId: signalAdsOverview
  /v1/signals/{id}/ads:
    get:
      tags:
      - Signals
      summary: Paginated Meta/TikTok/Google creatives
      operationId: signalAds
  /v1/signals/{id}/apps:
    get:
      tags:
      - Signals
      summary: Installed apps on the watched store
      operationId: signalApps
  /v1/signals/{id}/insights:
    get:
      tags:
      - Signals
      summary: Insights for one signal
      operationId: signalInsights
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-Api-Key
    bearer:
      type: http
      scheme: bearer