Fulfil

Fulfil is a cloud ERP and operations platform for e-commerce, DTC, and wholesale merchants - unifying order management, inventory, warehouse operations (WMS), manufacturing and production (MRP), purchasing, and accounting in one system, purpose-built for Shopify Plus and high-volume DTC brands. The Fulfil REST API (v2) exposes every ERP model through a single uniform model interface at https://{merchant_id}.fulfil.io/api/v2, advertising 6,000+ endpoints with full create/read/update/delete access, action calls, reports, and wizards across all models. Authentication is via OAuth 2.0 for public apps or personal access tokens (X-API-KEY / HTTP Basic) for private integrations, and outbound webhooks (with a Google Pub/Sub option) deliver real-time ERP events such as order and shipment changes.

9 APIs 0 Features
ERPE-commerceOrder ManagementInventoryWarehouse ManagementManufacturingOperations

APIs

Fulfil Sales Orders API

Create, search, read, update, and cancel sales orders through the sale.sale model - the customer, order lines, amounts, shipment and invoice state of every order captured from S...

Fulfil Products & Variants API

Manage the product catalog through the product.template (product groupings) and product.product (individual sellable variants / SKUs) models - codes, barcodes, pricing, attribut...

Fulfil Inventory & Stock API

Read and record inventory through the stock.move (inventory movements) and stock.location (warehouses, zones, bins) models - on-hand quantities, transfers, adjustments, and stoc...

Fulfil Customers API

Manage customers, suppliers, and contacts through the party.party model - names, addresses, contact mechanisms (email, phone), and the relationships that link parties to sales a...

Fulfil Shipments API

Track and manage outbound and inbound shipments through the stock.shipment.out and stock.shipment.in models - fulfillment state, carrier and tracking data, and the moves that pi...

Fulfil Purchases API

Create and manage purchase orders through the purchase.purchase model - supplier, order lines, receipt and invoice state - to replenish inventory and supply manufacturing.

Fulfil Manufacturing API

Manage manufacturing through the production model - production orders, their inputs and outputs, bills of material, and the state transitions that turn raw materials into finish...

Fulfil Webhooks API

Register and manage webhook subscriptions so external systems receive real-time notifications when ERP events occur - orders created, inventory changes, shipments dispatched. De...

Fulfil Model Interface API

The uniform model interface that underlies every Fulfil resource - generic CRUD (GET/POST /model/{model.name}, GET/PUT/DELETE /model/{model.name}/{id}), search_read, count, arbi...

Collections

Pricing Plans

Fulfil Io Plans Pricing

4 plans

PLANS

Rate Limits

Fulfil Io Rate Limits

3 limits

RATE LIMITS

FinOps

Resources

🔗
TrustCenter
TrustCenter
🔗
VulnerabilityDisclosure
VulnerabilityDisclosure
🔗
DomainSecurity
DomainSecurity
🔑
Authentication
Authentication
🔑
OAuthScopes
OAuthScopes
👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Fulfil REST API (v2)
  version: '2.0'
request:
  auth:
    type: apikey
    apikey:
      key: X-API-KEY
      value: '{{apiKey}}'
      in: header
items:
- info:
    name: Authentication
    type: folder
  items:
  - info:
      name: Test credentials.
      type: http
    http:
      method: GET
      url: https://{{merchantId}}.fulfil.io/api/v2/test
    docs: Verifies that the supplied API key or token is valid.
- info:
    name: Sales Orders
    type: folder
  items:
  - info:
      name: Search sales orders.
      type: http
    http:
      method: GET
      url: https://{{merchantId}}.fulfil.io/api/v2/model/sale.sale?per_page=100
    docs: Searches sales orders (sale.sale).
  - info:
      name: Create sales orders.
      type: http
    http:
      method: POST
      url: https://{{merchantId}}.fulfil.io/api/v2/model/sale.sale
      body:
        type: json
        data: '[{ "party": 1, "lines": [] }]'
    docs: Creates one or more sales orders (sale.sale).
  - info:
      name: Search and read sales orders.
      type: http
    http:
      method: PUT
      url: https://{{merchantId}}.fulfil.io/api/v2/model/sale.sale/search_read
      body:
        type: json
        data: "{\n  \"filter\": [[\"state\", \"=\", \"confirmed\"]],\n  \"fields\": [\"reference\", \"party\", \"total_amount\"\
          , \"state\"],\n  \"limit\": 100\n}"
    docs: Search and read sales orders in a single call.
- info:
    name: Products & Variants
    type: folder
  items:
  - info:
      name: Search product templates.
      type: http
    http:
      method: GET
      url: https://{{merchantId}}.fulfil.io/api/v2/model/product.template?per_page=100
    docs: Searches product templates (product.template).
  - info:
      name: Search product variants.
      type: http
    http:
      method: GET
      url: https://{{merchantId}}.fulfil.io/api/v2/model/product.product?per_page=100
    docs: Searches product variants / SKUs (product.product).
  - info:
      name: Search and read product variants.
      type: http
    http:
      method: PUT
      url: https://{{merchantId}}.fulfil.io/api/v2/model/product.product/search_read
      body:
        type: json
        data: "{\n  \"filter\": [[\"code\", \"ilike\", \"SKU%\"]],\n  \"fields\": [\"code\", \"barcode\", \"list_price\"],\n\
          \  \"limit\": 100\n}"
    docs: Search and read product variants (product.product).
- info:
    name: Inventory & Stock
    type: folder
  items:
  - info:
      name: Search stock moves.
      type: http
    http:
      method: GET
      url: https://{{merchantId}}.fulfil.io/api/v2/model/stock.move?per_page=100
    docs: Searches inventory movements (stock.move).
  - info:
      name: Search stock locations.
      type: http
    http:
      method: GET
      url: https://{{merchantId}}.fulfil.io/api/v2/model/stock.location
    docs: Searches warehouses, zones, and bins (stock.location).
- info:
    name: Customers
    type: folder
  items:
  - info:
      name: Search parties.
      type: http
    http:
      method: GET
      url: https://{{merchantId}}.fulfil.io/api/v2/model/party.party?per_page=100
    docs: Searches parties (party.party) - customers, suppliers, contacts.
  - info:
      name: Create parties.
      type: http
    http:
      method: POST
      url: https://{{merchantId}}.fulfil.io/api/v2/model/party.party
      body:
        type: json
        data: '[{ "name": "Acme Corp" }]'
    docs: Creates one or more parties (party.party).
- info:
    name: Shipments
    type: folder
  items:
  - info:
      name: Search outbound shipments.
      type: http
    http:
      method: GET
      url: https://{{merchantId}}.fulfil.io/api/v2/model/stock.shipment.out?per_page=100
    docs: Searches customer (outbound) shipments (stock.shipment.out).
  - info:
      name: Search inbound shipments.
      type: http
    http:
      method: GET
      url: https://{{merchantId}}.fulfil.io/api/v2/model/stock.shipment.in?per_page=100
    docs: Searches supplier (inbound) shipments / receipts (stock.shipment.in).
- info:
    name: Purchases
    type: folder
  items:
  - info:
      name: Search purchase orders.
      type: http
    http:
      method: GET
      url: https://{{merchantId}}.fulfil.io/api/v2/model/purchase.purchase?per_page=100
    docs: Searches purchase orders (purchase.purchase).
  - info:
      name: Create purchase orders.
      type: http
    http:
      method: POST
      url: https://{{merchantId}}.fulfil.io/api/v2/model/purchase.purchase
      body:
        type: json
        data: '[{ "party": 1, "lines": [] }]'
    docs: Creates one or more purchase orders (purchase.purchase).
- info:
    name: Manufacturing
    type: folder
  items:
  - info:
      name: Search production orders.
      type: http
    http:
      method: GET
      url: https://{{merchantId}}.fulfil.io/api/v2/model/production?per_page=100
    docs: Searches manufacturing / production orders (production).
- info:
    name: Webhooks
    type: folder
  items:
  - info:
      name: List webhook subscriptions.
      type: http
    http:
      method: GET
      url: https://{{merchantId}}.fulfil.io/api/v2/model/webhook.webhook
    docs: Lists registered webhook subscriptions.
  - info:
      name: Create a webhook subscription.
      type: http
    http:
      method: POST
      url: https://{{merchantId}}.fulfil.io/api/v2/model/webhook.webhook
      body:
        type: json
        data: '[{ "model": "sale.sale", "url": "https://example.com/webhooks/fulfil" }]'
    docs: Registers a new webhook subscription. Deliveries are HTTP POSTs signed with HMAC-SHA256.
- info:
    name: Model Interface
    type: folder
  items:
  - info:
      name: Search records of a model.
      type: http
    http:
      method: GET
      url: https://{{merchantId}}.fulfil.io/api/v2/model/:model_name?per_page=100
      params:
      - name: model_name
        value: sale.sale
        type: path
        description: The Fulfil model name.
    docs: Searches records of any model.
  - info:
      name: Read a record.
      type: http
    http:
      method: GET
      url: https://{{merchantId}}.fulfil.io/api/v2/model/:model_name/:id
      params:
      - name: model_name
        value: sale.sale
        type: path
        description: The Fulfil model name.
      - name: id
        value: '1'
        type: path
        description: The record id.
    docs: Retrieves a single record by id.
  - info:
      name: Update a record.
      type: http
    http:
      method: PUT
      url: https://{{merchantId}}.fulfil.io/api/v2/model/:model_name/:id
      params:
      - name: model_name
        value: sale.sale
        type: path
        description: The Fulfil model name.
      - name: id
        value: '1'
        type: path
        description: The record id.
      body:
        type: json
        data: '{ "comment": "Updated via API" }'
    docs: Updates a single record by id.
  - info:
      name: Delete a record.
      type: http
    http:
      method: DELETE
      url: https://{{merchantId}}.fulfil.io/api/v2/model/:model_name/:id
      params:
      - name: model_name
        value: sale.sale
        type: path
        description: The Fulfil model name.
      - name: id
        value: '1'
        type: path
        description: The record id.
    docs: Deletes a single record by id.
  - info:
      name: Search and read (any model).
      type: http
    http:
      method: PUT
      url: https://{{merchantId}}.fulfil.io/api/v2/model/:model_name/search_read
      params:
      - name: model_name
        value: sale.sale
        type: path
        description: The Fulfil model name.
      body:
        type: json
        data: "{\n  \"filter\": [],\n  \"fields\": [\"id\"],\n  \"limit\": 100\n}"
    docs: Search and read records of any model in one call.
  - info:
      name: Count records.
      type: http
    http:
      method: PUT
      url: https://{{merchantId}}.fulfil.io/api/v2/model/:model_name/count
      params:
      - name: model_name
        value: sale.sale
        type: path
        description: The Fulfil model name.
      body:
        type: json
        data: '{ "filter": [] }'
    docs: Returns the number of records matching a domain filter.
bundled: true