Developer

Build on Vendably. API-first, webhook-driven, SDK-supported.

Every Vendably capability is available over a stable API. Webhooks push every state change. Official SDKs for Python, Node, PHP. Build internal tools, integrations, or whole apps on top of the platform.

REST + gRPC API surface
Every event Webhook coverage
Python, Node, PHP official SDKs
// overview

Everything you see in the app, exposed as an API.

Three integration surfaces cover every use case: a stable REST and gRPC API for querying and writing data, webhooks for real-time event delivery, and idiomatic SDKs so you never write boilerplate auth code again.

API

REST for general use, gRPC for high-throughput sub-APIs. OAuth 2.0, per-merchant scopes.

Webhooks

Subscribe to every state change. Signed payloads. Retry with exponential backoff.

SDKs

First-class Python, Node, PHP. Generated TypeScript types. Sample apps and CLI.

API

One contract across every capability.

Vendably exposes a REST API at /api/v1/ covering the complete data model: merchants, products, sources, destinations, rules, connections, and audit. Every response is scoped to the authenticated merchant so no cross-tenant data is reachable regardless of token scope.

High-throughput sub-APIs use gRPC. Authentication is OAuth 2.0 with per-merchant scope grants. Rate limits apply per tenant per throttle class. Endpoints are versioned per sub-API so breaking changes never arrive without notice.

  • OAuth 2.0 with per-merchant scope grants
  • Per-merchant scopes: never cross-tenant access
  • Rate limits: burst, sustained, writes, sensitive classes
  • Versioned endpoints: per-sub-API, stable contracts
Read the API reference
vendably / api
cURL Python Node
# Create a product via the REST API
curl -X 'POST' \
https://api.vendably.com/api/v1/products/ \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"sku": "ABC-123",
"title": "Wireless headphones",
"price": "49.99",
"currency": "GBP"
}'
201 Created Content-Type: application/json
{
"id": "prod_9a2f7c",
"sku": "ABC-123",
"title": "Wireless headphones",
"status": "active"
}
Webhooks

Every state change, delivered to you.

Subscribe to any combination of event topics: orders, products, reviews, campaign-spend updates, and system alerts. Each delivery carries an HMAC-signed payload so you can verify the origin before processing.

Failed deliveries retry with exponential backoff. After the retry window closes, undelivered events move to the dead-letter queue where you can inspect the payload, see the response code, and replay manually.

  • HMAC-signed payloads: verify origin on every request
  • Topic subscriptions: orders, products, reviews, spend, alerts
  • Exponential retry: up to 72 hours before dead-letter
  • Dead-letter inspection and manual replay
webhook events
orders.created
orders.created
2026-05-11T09:14:02Z
200 OK
products.updated
products.updated
2026-05-11T09:13:48Z
200 OK
reviews.submitted
reviews.submitted
2026-05-11T09:12:31Z
200 OK
Delivered to https://your-app.example.com/webhooks · 200 OK · 84ms
// orders.created payload (truncated)
{
"topic": "orders.created",
"merchant_id": "mch_ab12cd",
"hmac_sha256": "e3b0c44..."
}
SDKs

Idiomatic libraries, in your stack.

Official SDKs for Python, Node, and PHP wrap the REST API with typed request and response models, handle OAuth token refresh automatically, and ship with language-idiomatic patterns so integration code reads naturally.

TypeScript types are generated from the OpenAPI schema on every release. A CLI tool covers scripting and CI workflows. Sample applications in the public repo cover common integration patterns from scratch.

  • Python: vendably, typed, async-ready, auto token refresh
  • Node: @vendably/sdk, ESM and CJS builds, TypeScript included
  • PHP: vendably/sdk, PSR-7 compatible, Composer installable
  • CLI: vendably, scripting, CI, sandbox reset commands
See SDK examples
SDK example
Python Node PHP
from vendably import Client
client = Client ( api_key = "vnd_live_..." )
# List products with pagination
products = client.products . list ( limit = 50 )
# Create a product
product = client.products . create (
sku="ABC-123",
title="Wireless headphones",
price="49.99",
currency="GBP",
)
# product.id == "prod_9a2f7c"

Stacking it up

What this would cost separately.

Most merchants run a separate tool for integration and API access. Here is what a typical mid-market merchant pays before Vendably, and what changes when Developer access is part of one platform.

Specialist tools

iPaaS platforms or developer time to build integration glue

£1,500–£20,000/month

iPaaS contracts; £500–£1,500/month for ongoing developer maintenance

Standard plans, mid-market. Source: erppeers.com. see pricing ↗

  • Separate login and dashboard
  • Separate data, mapped by hand
  • Per-seat or per-product upgrade fees
  • Maintenance every time either end of the integration changes its API
One Vendably platform

Developer access, included.

Includedin every plan

One subscription. Pricing scales with SKU range, not per-tool seats.

  • One login, every capability
  • Shared data model, no mapping
  • Loops back into the other capabilities automatically
  • Connect once to a stable API you already pay for

See full Vendably pricing

// included in every plan

Build something only you can build.

API access is included in every Vendably plan. Get your first key from settings and you are live.

No per-capability charges All six capabilities on every plan Cancel any time