WeStock is a shopper-marketing platform that helps consumer packaged goods (CPG) brands drive product trial, build first-party retail audiences, and manage trade and shopper marketing strategy from a single dashboard. It combines digital rebates and promotional campaigns, paid social advertising (primarily Meta), in-store sampling and demos, retail media management across Amazon, Walmart, and Instacart, email/SMS automation, and influencer marketing, alongside a consumer discovery web app used by 600,000+ shoppers to browse new products. Campaign data — trials, conversions, and repeat behavior — is unified in one place. A Techstars-backed company; its entire public surface is a Webflow marketing site, a Help Scout knowledge base of product how-tos, and login-gated dashboard and consumer apps. WeStock runs a real first-party backend at api.westock.io — hardened Node/Express that answers HTTP 401 on every path including the root — but ships no developer program: no API reference, no OpenAPI or GraphQL schema, no SDK on any registry, no webhooks, and no API pricing. Its documented integrations run the other way: WeStock consumes Klaviyo and Attentive using keys the customer pastes into the WeStock dashboard.
WeStock is profiled on the APIs.io network. Tagged areas include Company, Shopper Marketing, Consumer Packaged Goods, Retail Media, and Marketing.
WeStock’s developer surface includes pricing, engineering blog, support, signup flow, and 7 more developer resources.
Regulatory Posture applies to this provider. Its tags matched the
Horizontal (data, software, accessibility, platform) regime, so
Regulatory Posture carries 15 points of the composite.
If this regime is wrong for your business, say so on your
provider repo — the
applicability map is public and we will correct it.
Create-or-Update Ergonomics could not be measured. We hold no machine-readable contract for
this provider to read, so there is nothing to measure a write surface against. Excluded rather than scored zero:
never-measured and measured-empty are different facts. Publishing an OpenAPI is what makes this facet — and
several others — scorable at all.
The six quality facets above are damped to 85 points between them,
because the conditional facet above carries the other
15. That is why each facet's contribution is shown against a damped
maximum: raising a quality facet moves the composite by 85% of its nominal
weight, not 100%. The full arithmetic is at apis.io/rating/.
Show this score on your site.
It updates itself when the score changes. Paste this where you link to your API docs:
<a href="https://apis.io/providers/westock/"><img src="https://apis.io/badge/westock/card.svg" alt="WeStock on APIs.io — Kin Score by API Evangelist"></a>
Other styles, a README pill and a shields.io endpoint are on the badge page.
Raise your score.
Agent readiness — checks not met, largest first (exact, from this profile):
Machine-Readable Auth+10 pts — a served openid-configuration/oauth-authorization-server carrying `issuer` (served), else the securitySchemes class in the provider OpenAPIs — bound (mutualTLS, DPoP, Signature) > negotiable (oauth2 authorizationCode/clientCredentials, openIdConnect) > bearer (http bearer, apiKey)
Idempotency+9 pts — OpenAPI mutating operations declare an idempotency key — a header, a request-body property, or a named de-duplication token whose own description says so (verified); else common[].type matches /idempoten/i (documented)
Stable Error Semantics+8 pts — OpenAPI $refs a shared error schema across 4xx/5xx responses (verified), else common[].type includes ErrorCatalog / ErrorCodes / DeclineCodes
13 more unmet checks in the Agent Readiness table above.
Kin Score — facets with the most composite points still available (weight × headroom):
aid: westock
deliveryModel:
model: saas
open_source: false
commercial: true
callable_host: false
label: Hosted service · you call their endpoint
confidence: medium
source:
- pricing
generated: '2026-08-28'
method: derived
accessModel:
pricing: paid
onboarding: approval
trial: false
try_now: false
public: false
label: Paid · Requires approval
confidence: low
probe_state: none
source:
- plans
- security
generated: '2026-11-06'
method: derived
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/icons/westock.png
name: WeStock
description: 'WeStock is a shopper-marketing platform that helps consumer packaged goods (CPG) brands drive product trial,
build first-party retail audiences, and manage trade and shopper marketing strategy from a single dashboard. It combines
digital rebates and promotional campaigns, paid social advertising (primarily Meta), in-store sampling and demos, retail
media management across Amazon, Walmart, and Instacart, email/SMS automation, and influencer marketing, alongside a consumer
discovery web app used by 600,000+ shoppers to browse new products. Campaign data — trials, conversions, and repeat behavior
— is unified in one place. A Techstars-backed company; its entire public surface is a Webflow marketing site, a Help Scout
knowledge base of product how-tos, and login-gated dashboard and consumer apps. WeStock runs a real first-party backend
at api.westock.io — hardened Node/Express that answers HTTP 401 on every path including the root — but ships no developer
program: no API reference, no OpenAPI or GraphQL schema, no SDK on any registry, no webhooks, and no API pricing. Its documented
integrations run the other way: WeStock consumes Klaviyo and Attentive using keys the customer pastes into the WeStock dashboard.'
url: https://raw.githubusercontent.com/api-evangelist/westock/refs/heads/main/apis.yml
x-type: company
x-source: vc-portfolio
x-backed-by:
- techstars
x-tier: stub
x-tier-reason: portfolio-lead
specificationVersion: '0.23'
created: '2026-07-17'
modified: '2026-08-12'
tags:
- Company
- Shopper Marketing
- Consumer Packaged Goods
- Retail Media
- Marketing
- Rebates
- Audience Building
- Trade Promotion
- First-Party Data
- Retail
- Advertising
apis: []
maintainers:
- FN: Kin Lane
email: kin@apievangelist.com
- FN: APIs.json
email: info@apis.io
common:
- type: Website
url: https://www.westock.io/
- type: Pricing
url: https://www.westock.io/pricing
- type: Plans
url: plans/westock-plans-pricing.yml
- type: Blog
url: https://www.westock.io/resources
- type: HelpCenter
url: https://westock.helpscoutdocs.com/
- type: Support
url: https://westock.helpscoutdocs.com/
- type: TermsOfService
url: https://www.westock.io/terms-of-service
- type: PrivacyPolicy
url: https://www.westock.io/privacy-policy
- type: SignUp
url: https://dashboard.westock.io/login
- type: LLMsTxt
url: llms/westock-llms.txt
- type: DomainSecurity
url: security/westock-domain-security.yml
x-enrichment:
date: '2026-08-12'
status: minimal
artifacts_added: 3
pass: local-v1
x-coverage:
state: none
reason: no-developer-program
detail: WeStock runs a real first-party backend at api.westock.io that answers HTTP 401 "Unauthorized" on every path including
the root, but ships nothing for developers — the marketing site has no /developers, /docs or /api page anywhere in its
92-URL sitemap, and the Help Scout knowledge base's only "API key" article is about pasting a customer's own Klaviyo key
into the WeStock dashboard.
evidence:
- url: https://api.westock.io/openapi.json
status: 401
- url: https://api.westock.io/
status: 401
- url: https://api.labs.westock.io/
status: 503
- url: https://www.westock.io/sitemap.xml
status: 200
- url: https://westock.io/.well-known/agent-card.json
status: 404
- url: https://westock.io/llms.txt
status: 404
- url: https://webapi.westock.io/
status: 502
checked: '2026-08-12'
x-contract-discovery:
checked: '2026-08-12'
result: no-published-contract
method: probed
note: Subdomains enumerated from Certificate Transparency (api.certspotter.com/v1/issuances?domain=westock.io&include_subdomains=true),
then every production host probed for /openapi.json, /openapi.yaml, /swagger.json, /v1/openapi.json, /api/openapi.json,
/api-docs, /docs, /redoc, /rapidoc, /graphql and the /.well-known/ tree. No OpenAPI, Swagger, GraphQL SDL, AsyncAPI, MCP
server, agent card or Postman collection exists. Every HTTP 200 observed on a spec path was an SPA HTML shell (labs.,
engage., dashboard., dashboard2.) and was rejected, not saved.
hosts:
- host: api.westock.io
status: 401
note: hardened Node/Express (helmet); 401 on every path including /
- host: api.labs.westock.io
status: 503
note: '"Westock Labs API" per search; awselb/2.0 returns 503 — no healthy targets'
- host: dashapi.westock.io
status: 502
- host: dashapi2.westock.io
status: 502
- host: webapi.westock.io
status: 502
- host: labs.westock.io
status: 200
note: SPA catch-all — HTML shell on every spec and .well-known path; rejected
- host: engage.westock.io
status: 200
note: SPA catch-all; rejected
- host: dashboard.westock.io
status: 200
note: SPA catch-all; rejected
- host: dashboard2.westock.io
status: 200
note: SPA catch-all; rejected
- host: app.westock.io
status: 404
- host: consumer.westock.io
status: 404
- host: processing.westock.io
status: 404
- host: login.westock.io
status: 404
note: JSON 404 envelope — authoritative; no OIDC discovery document served
registries_checked:
- registry: npm
result: no first-party package
- registry: pypi
result: 404
- registry: postman
result: 0 results for "westock" across all Postman entity types
github:
- account: https://github.com/WeStock
type: Organization
created: '2015-07-25'
public_repos: 1
verdict: NOT WIRED — created four years before the platform; its single public repo is a 2015 fork shell of an unrelated
project (dontlivetwice/westock). Ownership unproven.
- account: https://github.com/WeStockApp
type: Organization
created: '2022-11-30'
public_repos: 0
verdict: NOT WIRED — zero public repos and no identifying metadata; ownership unproven.
WeStock API — frequently asked questions
How much does the WeStock API cost?
APIs.io lists 3 pricing plans for WeStock, with each plan's price, limits and inclusions under Pricing on this page.
Is the WeStock API ready for AI agents?
WeStock has a Kin Score of 18.7 out of 100 (emerging) and an Agent Readiness score of 0.0 (human-only), scored by API Evangelist on 2026-11-06.
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.