List Fulfillments
curl --request GET \
--url https://production-api.puppetvendors.com/fulfillments \
--header 'x-access-token: <api-key>'import requests
url = "https://production-api.puppetvendors.com/fulfillments"
headers = {"x-access-token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-access-token': '<api-key>'}};
fetch('https://production-api.puppetvendors.com/fulfillments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://production-api.puppetvendors.com/fulfillments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://production-api.puppetvendors.com/fulfillments"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-access-token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://production-api.puppetvendors.com/fulfillments")
.header("x-access-token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://production-api.puppetvendors.com/fulfillments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-access-token"] = '<api-key>'
response = http.request(request)
puts response.read_bodyFulfillments
List Fulfillments
Retrieve vendor-scoped fulfillment items with cursor-based pagination
GET
/
fulfillments
List Fulfillments
curl --request GET \
--url https://production-api.puppetvendors.com/fulfillments \
--header 'x-access-token: <api-key>'import requests
url = "https://production-api.puppetvendors.com/fulfillments"
headers = {"x-access-token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-access-token': '<api-key>'}};
fetch('https://production-api.puppetvendors.com/fulfillments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://production-api.puppetvendors.com/fulfillments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://production-api.puppetvendors.com/fulfillments"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-access-token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://production-api.puppetvendors.com/fulfillments")
.header("x-access-token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://production-api.puppetvendors.com/fulfillments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-access-token"] = '<api-key>'
response = http.request(request)
puts response.read_bodyV2 Alpha — This endpoint is part of the V2 API preview. Breaking changes may occur.
Overview
Retrieve a paginated list of line items with their fulfillment status and tracking information, scoped to the authenticated vendor. Only line items belonging to the vendor are returned. Use this endpoint to monitor pending and completed fulfillments.Vendor Token Required — This endpoint requires a vendor-scoped JWT token. Merchant tokens will receive a 403 error.
Use Cases
- Fulfillment dashboard — Monitor pending and completed fulfillments for the vendor
- Shipping integration — Pull unfulfilled items for 3PL or warehouse systems
- Order management — Track the vendor’s fulfillment queue
Query Parameters
string
Filter by fulfillment status. One of:
fulfilled, unfulfilled.string
Filter by shipment status (max 50 characters).
string
Filter by date (minimum, ISO 8601). Example:
2024-01-01T00:00:00Z.string
Filter by date (maximum, ISO 8601).
string
Search in order name/number or line item name (max 200 characters).
integer
Number of items to return, forward pagination (1-100).
string
Cursor for forward pagination.
integer
Number of items to return, backward pagination (1-100).
string
Cursor for backward pagination.
Response
200
{
"success": true,
"data": {
"items": [
{
"_id": "507f1f77bcf86cd799439015",
"orderId": 5123456789,
"orderNumber": 1042,
"orderName": "#1042",
"lineItemName": "Widget Pro - Large / Blue",
"lineItemSku": "WP-LG-BL",
"quantity": 2,
"fulfillment": {
"status": "fulfilled",
"trackingCompany": "Royal Mail",
"trackingNumber": "RM123456789GB",
"trackingUrl": "https://tracking.royalmail.com/RM123456789GB",
"createdAt": "2024-06-16T09:00:00.000Z"
},
"shippingAddress": {
"name": "Jane Doe",
"address1": "123 High Street",
"city": "London",
"country": "United Kingdom",
"zip": "SW1A 1AA"
},
"date": "2024-06-15T10:30:00.000Z"
}
],
"pageInfo": {
"hasNextPage": true,
"hasPreviousPage": false,
"startCursor": "eyJpZCI6IjUwN2YxZjc3YmNmODZjZDc5OTQzOTAxNSJ9",
"endCursor": "eyJpZCI6IjUwN2YxZjc3YmNmODZjZDc5OTQzOTAyNSJ9",
"totalCount": 85
}
}
}
Example
curl -X GET "https://production-api.puppetvendors.com/fulfillments?fulfillmentStatus=unfulfilled&first=20" \
-H "x-access-token: YOUR_VENDOR_JWT_TOKEN"
More Examples
Filter unfulfilled items in date rangecurl -X GET "https://production-api.puppetvendors.com/fulfillments?first=20&fulfillmentStatus=unfulfilled&dateMin=2026-05-01T00:00:00Z&sortBy=date&sortOrder=asc" \
-H "x-access-token: YOUR_VENDOR_JWT_TOKEN"
curl -X GET "https://production-api.puppetvendors.com/fulfillments?first=10&search=1042" \
-H "x-access-token: YOUR_VENDOR_JWT_TOKEN"
Was this page helpful?