AfterShip Fulfillments API
The Fulfillments API from AfterShip — 3 operation(s) for fulfillments.
The Fulfillments API from AfterShip — 3 operation(s) for fulfillments.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/aftership-fulfillments-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Overview Fulfillments API
version: 2026-07
summary: API Overview
contact:
name: AfterShip Support
url: https://www.aftership.com/contact-us
email: support@aftership.com
termsOfService: https://www.aftership.com/legal/terms-of-service
description: '> OAS Schema can be downloaded [here](https://stoplight.io/api/v1/projects/automizely/docs-api-automizely-com-commerce/nodes/reference/api.json?branch=testing%2F2026-07&deref=optimizedBundle)'
servers:
- url: https://api.aftership.com/commerce/2026-07
description: API Endpoint
security:
- as-api-key: []
tags:
- name: Fulfillments
paths:
/fulfillments:
parameters: []
post:
summary: Create a fulfillment
operationId: create-fulfillment
responses:
'201':
description: ''
content:
application/json:
schema:
type: object
properties:
meta:
$ref: '#/components/schemas/Meta.v1'
x-stoplight:
id: ujkfz8gihsdst
data:
$ref: '#/components/schemas/Fulfillment.v1'
x-stoplight:
id: qnklgttqrn1fg
examples:
Example 1:
value:
meta:
code: 20000
type: OK
message: The request was successfully processed by AfterShip.
data:
id: '423562565'
order_id: '5187092316403'
delivery_method: pickup
status: processing
line_items:
- id: '13097711141107'
product_id: '8021450916083'
product_variant_id: '43768285298931'
product_title: Power Mobile Phone
product_variant_title: Power Mobile Phone (While)
sku: SKU001
quantity: 1
unit_price:
currency: USD
amount: '10'
unit_weight:
unit: kg
value: 10
image_urls:
- https://example.com/product/image.png
source_created_at: '2021-04-15T20:02:09Z'
source_updated_at: '2021-04-16T20:02:09Z'
created_at: '2021-04-15T20:02:09Z'
updated_at: '2021-04-16T20:02:09Z'
ship_from_location:
location_id: 489b4bdec18d45d387752d63fb51ee1d
address:
type: business
street_1: 1234 Elm Street
street_2: Apt 5
street_3: ''
city: New York
state: NY
postal_code: '10001'
country_region: USA
company: My Company
first_name: John
last_name: Doe
email: john.doe@example.com
phone: '+11234567890'
pickup_location:
location_id: e9ec84ff351e45e089a7b75ae497e1ae
address:
type: business
street_1: 1234 Elm Street
street_2: Apt 5
street_3: ''
city: New York
state: NY
postal_code: '10001'
country_region: USA
company: My Company
first_name: John
last_name: Doe
email: john.doe@example.com
phone: '+11234567890'
coordinate:
latitude: 43
longitude: -75
opening_hours:
sunday:
open: true
from: '10:30'
to: '20:30'
monday:
open: true
from: '10:30'
to: '20:30'
tuesday:
open: true
from: '10:30'
to: '20:30'
wednesday:
open: true
from: '10:30'
to: '20:30'
thursday:
open: true
from: '10:30'
to: '20:30'
friday:
open: true
from: '10:30'
to: '20:30'
saturday:
open: true
from: '10:30'
to: '20:30'
trackings:
- tracking_number: RA123456789US
slug: usps
service_type: standard shipping
ship_date: '2023-05-04'
custom_fields: {}
next_couriers:
- tracking_number: RA123456789US
slug: usps
pickup_info:
instructions: Shop open from Mon to Fri
estimated_ready_for_pickup_at:
min: '2021-04-15T20:02:09Z'
max: '2021-04-15T20:02:09Z'
pickup_deadline_at: '2021-04-15T20:02:09Z'
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: false
required:
- order_id
- delivery_method
- status
- line_items
properties:
id:
type: string
x-stoplight:
id: 2mukldoy9aah7
description: A custom identifier for the fulfillment. If not provided, the system will generate a UUID. Must be unique within the store and immutable. You can use this ID to manage the resource in subsequent API calls.
maxLength: 128
example: my-custom-id-123
pattern: ^[a-zA-Z0-9_-]+$
order_id:
type: string
description: The unique identifier of the order. This value must match the id of the order as returned by the GET /orders or GET /orders/{id} endpoints in the current API version.
example: 960d25e570834e84b2a0fffd08fab7f9
delivery_method:
type: string
enum:
- pickup
- shipping
x-stoplight:
id: afqvk957zyot8
description: 'Delivery method of the order. For BOPIS related feature, please specify `pickup`.
For more information about pickup order, please check the detailed [BOPIS introduction page](../docs/common_scenarios/tracking/bopis.md).
'
example: shipping
status:
type: string
description: "The status of the fulfillment. Depending of on the `delivery_method`, the allowed values are different.\n\nAllowed values: \n\ndelivery_method is shipping:\n`pending`, `processing`, `shipped`, `canceled`, and the custom defined statuses.\n\ndelivery_method is pickup:\n`pending`, `processing`, `ready_for_pickup`, `picked_up`, `canceled`, and the custom defined statuses."
example: pending
line_items:
type: array
description: The items which included in this fulifllment.
items:
type: object
required:
- id
- quantity
properties:
id:
type: string
x-stoplight:
id: b8ylued052ce5
description: 'A unique identifier for the line item in your system. The value should be exist in one of the items in the corresponding order.
Note that it should be the same as the `order.items.*.id` of the `Order` resource.
'
example: '365756526'
quantity:
type: integer
description: The number of items in this fulfillment.
example: 1
source_created_at:
type: string
format: date-time
description: The date and time, formatted in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), indicating when the fulfillment was created in your e-commerce system.
example: '2021-04-15T20:02:09Z'
source_updated_at:
type: string
format: date-time
description: The date and time, formatted in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), indicating when the fulfillment was updated in your e-commerce system.
example: '2021-04-15T20:02:09Z'
ship_from_location:
type: object
description: The location information where the fulfillment shipped from. It is recommended to include this field if the fulfillment's delivery method is `shipping`. Note that you must provide either `location_id` or `address`, but not both.
additionalProperties: false
properties:
location_id:
type: string
description: The unique identifier for the location, as provided by AfterShip. You can manage and configure these locations [here](https://organization.automizely.com/warehouses).
example: 489b4bdec18d45d387752d63fb51ee1d
address:
$ref: '#/components/schemas/Address.v1'
description: The address object of this location.
pickup_location:
type: object
description: The location information where the fulfillment is designated to be pickup from. Mandatory when the delivery method of the fulfillment is `pickup`.
required:
- location_id
properties:
location_id:
type: string
x-stoplight:
id: oeu555x37j99n
description: The ID of the Location pre-created in AfterShip admin
example: a52eeb761d204f3cbae06fa93b452976
trackings:
type: array
description: 'Represents shipment tracking information. This object supports two mutually exclusive usage patterns:
Reference Mode: Pass the id of a resource pre-created via the Tracking API. This enables full tracking capabilities.
Inline Mode: Pass the tracking_number (and optional slug) directly. This is strictly for record-keeping purposes and does not create an active tracking task or support status updates.'
items:
$ref: '#/components/schemas/Tracking.v1'
pickup_info:
$ref: '#/components/schemas/Pickup.v1'
x-stoplight:
id: 5aa9r2fwkttmx
description: The pickup information of the fulfillment. It is recommended to include this field if the fulfillment's delivery method is `pickup`.
examples:
Example 1:
value:
id: '25462567654'
delivery_method: pickup
status: pending
line_items:
- id: '365756526'
quantity: 1
source_created_at: '2021-04-15T20:02:09Z'
source_updated_at: '2021-04-15T20:02:09Z'
ship_from_location:
location_id: a2a00a8bfefb423a98f456c95dfbfde5
pickup_location:
location_id: a52eeb761d204f3cbae06fa93b452976
trackings:
- id: tracking1
- id: tracking2
pickup_info:
instructions: Shop open from Mon to Fri
estimated_ready_for_pickup_at:
min: '2021-04-15T20:02:09Z'
max: '2021-04-15T20:02:09Z'
pickup_deadline_at: '2021-04-15T20:02:09Z'
parameters:
- $ref: '#/components/parameters/as-store-id'
tags:
- Fulfillments
description: 'Create a fulfillment.
<div style="visibility:hidden; height: 0">[url](../docs/common_scenarios/tracking/bopis.md)</div>'
get:
summary: Get fulfillments
operationId: get-fulfillments
responses:
'200':
description: ''
content:
application/json:
schema:
type: object
properties:
meta:
$ref: '#/components/schemas/Meta.v1'
x-stoplight:
id: 2oof1vzbg6pbc
data:
type: object
x-stoplight:
id: afcxh5cs1luoe
properties:
fulfillments:
type: array
x-stoplight:
id: gnkg1y38ly9wx
items:
$ref: '#/components/schemas/Fulfillment.v1'
x-stoplight:
id: 61k82pdpp1a41
pagination:
$ref: '#/components/schemas/Pagination.v2'
x-stoplight:
id: nw7cd7995yweq
examples:
Example 1:
value:
meta:
code: 20000
type: OK
message: The request was successfully processed by AfterShip.
data:
fulfillments:
- id: '423562565'
order_id: '5187092316403'
delivery_method: pickup
status: processing
line_items:
- id: '13097711141107'
product_id: '8021450916083'
product_variant_id: '43768285298931'
product_title: Power Mobile Phone
product_variant_title: Power Mobile Phone (While)
sku: SKU001
quantity: 1
unit_price:
currency: USD
amount: '10'
unit_weight:
unit: kg
value: 10
image_urls:
- https://example.com/product/image.png
source_created_at: '2021-04-15T20:02:09Z'
source_updated_at: '2021-04-16T20:02:09Z'
created_at: '2021-04-15T20:02:09Z'
updated_at: '2021-04-16T20:02:09Z'
ship_from_location:
location_id: 489b4bdec18d45d387752d63fb51ee1d
address:
type: business
street_1: 1234 Elm Street
street_2: Apt 5
street_3: ''
city: New York
state: NY
postal_code: '10001'
country_region: USA
company: My Company
first_name: John
last_name: Doe
email: john.doe@example.com
phone: '+11234567890'
pickup_location:
location_id: e9ec84ff351e45e089a7b75ae497e1ae
address:
type: business
street_1: 1234 Elm Street
street_2: Apt 5
street_3: ''
city: New York
state: NY
postal_code: '10001'
country_region: USA
company: My Company
first_name: John
last_name: Doe
email: john.doe@example.com
phone: '+11234567890'
coordinate:
latitude: 43
longitude: -75
opening_hours:
sunday:
open: true
from: '10:30'
to: '20:30'
monday:
open: true
from: '10:30'
to: '20:30'
tuesday:
open: true
from: '10:30'
to: '20:30'
wednesday:
open: true
from: '10:30'
to: '20:30'
thursday:
open: true
from: '10:30'
to: '20:30'
friday:
open: true
from: '10:30'
to: '20:30'
saturday:
open: true
from: '10:30'
to: '20:30'
trackings:
- tracking_number: RA123456789US
slug: usps
service_type: standard shipping
ship_date: '2023-05-04'
custom_fields: {}
next_couriers:
- tracking_number: RA123456789US
slug: usps
pickup_info:
instructions: Shop open from Mon to Fri
estimated_ready_for_pickup_at:
min: '2021-04-15T20:02:09Z'
max: '2021-04-15T20:02:09Z'
pickup_deadline_at: '2021-04-15T20:02:09Z'
pagination:
page: 0
limit: 0
has_next_page: true
description: 'Get fulfillment results with multiple fulfillments.
> In the query parameters, you must include only one of the following: `order_id` or `ids[]`. All other parameters should be omitted. <br /><br />Only a single filter parameter can be included in each request.
'
parameters:
- schema:
type: string
in: query
name: order_id
description: Order ID
- schema:
type: string
minLength: 1
maxLength: 20
in: query
name: ids[]
description: Fulfillment IDs. Max length is 20
- schema:
type: integer
default: 10
minimum: 1
maximum: 50
in: query
name: limit
- schema:
type: integer
default: 1
minimum: 1
maximum: 200
in: query
name: page
- $ref: '#/components/parameters/as-store-id'
tags:
- Fulfillments
/fulfillments/{id}:
parameters:
- schema:
type: string
name: id
in: path
required: true
description: The ID of the fulfillment.
get:
summary: Get fulfillment by ID
operationId: get-fulfillment-by-id
responses:
'200':
description: ''
content:
application/json:
schema:
type: object
properties:
meta:
$ref: '#/components/schemas/Meta.v1'
x-stoplight:
id: tyd6pnlqdafgi
data:
$ref: '#/components/schemas/Fulfillment.v1'
x-stoplight:
id: k1rdsmaa4a69n
examples:
Example 1:
value:
meta:
code: 20000
type: OK
message: The request was successfully processed by AfterShip.
data:
id: '423562565'
order_id: '5187092316403'
delivery_method: pickup
status: processing
line_items:
- id: '13097711141107'
product_id: '8021450916083'
product_variant_id: '43768285298931'
product_title: Power Mobile Phone
product_variant_title: Power Mobile Phone (While)
sku: SKU001
quantity: 1
unit_price:
currency: USD
amount: '10'
unit_weight:
unit: kg
value: 10
image_urls:
- https://example.com/product/image.png
source_created_at: '2021-04-15T20:02:09Z'
source_updated_at: '2021-04-16T20:02:09Z'
created_at: '2021-04-15T20:02:09Z'
updated_at: '2021-04-16T20:02:09Z'
ship_from_location:
location_id: 489b4bdec18d45d387752d63fb51ee1d
address:
type: business
street_1: 1234 Elm Street
street_2: Apt 5
street_3: ''
city: New York
state: NY
postal_code: '10001'
country_region: USA
company: My Company
first_name: John
last_name: Doe
email: john.doe@example.com
phone: '+11234567890'
pickup_location:
location_id: e9ec84ff351e45e089a7b75ae497e1ae
address:
type: business
street_1: 1234 Elm Street
street_2: Apt 5
street_3: ''
city: New York
state: NY
postal_code: '10001'
country_region: USA
company: My Company
first_name: John
last_name: Doe
email: john.doe@example.com
phone: '+11234567890'
coordinate:
latitude: 43
longitude: -75
opening_hours:
sunday:
open: true
from: '10:30'
to: '20:30'
monday:
open: true
from: '10:30'
to: '20:30'
tuesday:
open: true
from: '10:30'
to: '20:30'
wednesday:
open: true
from: '10:30'
to: '20:30'
thursday:
open: true
from: '10:30'
to: '20:30'
friday:
open: true
from: '10:30'
to: '20:30'
saturday:
open: true
from: '10:30'
to: '20:30'
trackings:
- tracking_number: RA123456789US
slug: usps
service_type: standard shipping
ship_date: '2023-05-04'
custom_fields: {}
next_couriers:
- tracking_number: RA123456789US
slug: usps
pickup_info:
instructions: Shop open from Mon to Fri
estimated_ready_for_pickup_at:
min: '2021-04-15T20:02:09Z'
max: '2021-04-15T20:02:09Z'
pickup_deadline_at: '2021-04-15T20:02:09Z'
parameters:
- $ref: '#/components/parameters/as-store-id'
tags:
- Fulfillments
description: Get a fulfillment by ID.
patch:
summary: Update fulfillment by ID
operationId: update-fulfillment-by-id
responses:
'200':
description: ''
content:
application/json:
schema:
type: object
properties:
meta:
$ref: '#/components/schemas/Meta.v1'
x-stoplight:
id: 4qrgu8l1wtgk0
data:
$ref: '#/components/schemas/Fulfillment.v1'
x-stoplight:
id: xkfjdnmq8lb1g
examples:
Example 1:
value:
meta:
code: 20000
type: OK
message: The request was successfully processed by AfterShip.
data:
id: '423562565'
order_id: '5187092316403'
delivery_method: pickup
status: processing
line_items:
- id: '13097711141107'
product_id: '8021450916083'
product_variant_id: '43768285298931'
product_title: Power Mobile Phone
product_variant_title: Power Mobile Phone (While)
sku: SKU001
quantity: 1
unit_price:
currency: USD
amount: '10'
unit_weight:
unit: kg
value: 10
image_urls:
- https://example.com/product/image.png
source_created_at: '2021-04-15T20:02:09Z'
source_updated_at: '2021-04-16T20:02:09Z'
created_at: '2021-04-15T20:02:09Z'
updated_at: '2021-04-16T20:02:09Z'
ship_from_location:
location_id: 489b4bdec18d45d387752d63fb51ee1d
address:
type: business
street_1: 1234 Elm Street
street_2: Apt 5
street_3: ''
city: New York
state: NY
postal_code: '10001'
country_region: USA
company: My Company
first_name: John
last_name: Doe
email: john.doe@example.com
phone: '+11234567890'
pickup_location:
location_id: e9ec84ff351e45e089a7b75ae497e1ae
address:
type: business
street_1: 1234 Elm Street
street_2: Apt 5
street_3: ''
city: New York
state: NY
postal_code: '10001'
country_region: USA
company: My Company
first_name: John
last_name: Doe
email: john.doe@example.com
phone: '+11234567890'
coordinate:
latitude: 43
longitude: -75
opening_hours:
sunday:
open: true
from: '10:30'
to: '20:30'
monday:
open: true
from: '10:30'
to: '20:30'
tuesday:
open: true
from: '10:30'
to: '20:30'
wednesday:
open: true
from: '10:30'
to: '20:30'
thursday:
open: true
from: '10:30'
to: '20:30'
friday:
open: true
from: '10:30'
to: '20:30'
saturday:
open: true
from: '10:30'
to: '20:30'
trackings:
- tracking_number: RA123456789US
slug: usps
service_type: standard shipping
ship_date: '2023-05-04'
custom_fields: {}
next_couriers:
- tracking_number: RA123456789US
slug: usps
pickup_info:
instructions: Shop open from Mon to Fri
estimated_ready_for_pickup_at:
min: '2021-04-15T20:02:09Z'
max: '2021-04-15T20:02:09Z'
pickup_deadline_at: '2021-04-15T20:02:09Z'
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: false
properties:
source_updated_at:
type: string
x-stoplight:
id: e2qmaz5g0y1f9
example: '2021-04-15T20:02:09Z'
description: The date and time, formatted in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), indicating when the fulfillment was updated in your e-commerce system.
pickup_info:
$ref: '#/components/schemas/Pickup.v1'
# --- truncated at 32 KB (73 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/aftership/refs/heads/main/openapi/aftership-fulfillments-api-openapi.yml