Developer API

Build With The Store API

Use clean JSON endpoints to read public products, categories, FAQs, and store metadata for apps, widgets, assistants, and integrations.

Base URL
https://bulkworksuite.com/api/v1
Authentication
Public read-only
Format
JSON — GET only

Quick Start

Call endpoints with GET and read the JSON response. Published catalog data is public; private customer, order, and download data is not exposed here.

fetch('https://bulkworksuite.com/api/v1/products?per_page=6&category=scripts')
  .then((r) => r.json())
  .then((json) => {
    if (!json.success) throw new Error(json.error.message);
    console.log(json.data, json.pagination);
  });
curl -s \
  "https://bulkworksuite.com/api/v1/products?per_page=6&category=scripts" \
  | python3 -m json.tool
import requests

r = requests.get("https://bulkworksuite.com/api/v1/products?per_page=6&category=scripts")
data = r.json()
if data["success"]:
    print(data["data"])

Endpoints

GET /api/v1

API Status

Returns store identity, enabled endpoints, and API documentation links.

GET /api/v1/store

Store Metadata

Returns public store identity, branding, social links, and widget availability.

GET /api/v1/products

Products

Lists published, coming soon, and preorder products with pagination and filters.

page per_page search category type status sort min_price max_price featured coming_soon preorder
GET /api/v1/product

Single Product

Returns one public product by slug or id with gallery, FAQs, latest release metadata, and public URLs.

slug id
GET /api/v1/categories

Categories

Lists public store categories with product counts and clean category URLs.

GET /api/v1/faqs

Store FAQs

Returns active homepage FAQs for external builders and assistants.

product_id product_slug type limit
GET /api/v1/reviews

Reviews

Returns approved public reviews only.

product_id product_slug rating min_rating page per_page limit sort
GET /api/v1/releases

Releases

Returns public release and changelog metadata without download paths.

product_id product_slug limit page per_page
GET /api/v1/blog

Blog Posts

Lists published blog posts with pagination and search. Pass ?slug= for a single post with full HTML content.

page per_page q slug
GET /api/v1/search

Search

Searches public products, categories, and public blog content.

q type page per_page
GET /api/v1/widgets

Widgets

Returns available embeddable widgets and safe script examples.

GET /api/v1/openapi.json

OpenAPI

Machine-readable OpenAPI description for the public API.

Product List Example

GET /api/v1/products?per_page=6&category=scripts

Use category, search, type, status, sort, page, and per_page to build external catalog screens.

Product Detail Example

GET /api/v1/product?slug=bulkwork-suite-self-hosted-digital-business-platform

Product detail includes public URLs, gallery images, description text, active FAQs, rating summary, and latest release metadata without exposing private download paths.

Reviews Example

GET /api/v1/reviews?limit=6

Approved public reviews include display names and verified-purchase flags without exposing customer emails or order data.

Blog Posts Example

GET /api/v1/blog
GET /api/v1/blog?slug=your-post-slug

Lists published blog posts. Pass ?slug= for a single post with full HTML content.

Embeddable Widgets

<script src="https://bulkworksuite.com/widgets/reviews.js"
        data-product-slug="bulkwork-suite-self-hosted-digital-business-platform"
        data-limit="6"
        data-theme="light"
        data-container="bulkworksuite-reviews-widget"></script>

Use the widget builder in admin to generate product cards, grids, rating badges, FAQs, and review widgets.

Rate Limits &amp; Caching

Requests are rate-limited per IP. When the limit is exceeded the API returns a 429 response with a consistent JSON error.

Responses include Cache-Control headers. Cache public product and widget responses in your app to reduce traffic and stay well within limits.

HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 120
X-RateLimit-Window: 60

{
  "success": false,
  "error": {
    "code": "rate_limited",
    "message": "Too many requests."
  }
}
We use strictly necessary cookies to keep the store working (session & cart). No tracking or advertising cookies. Learn more about our Cookie Policy
Manage Preferences
PWA Banner Icon
BulkWork App
Access your orders and support tickets fast with the mobile app