Help us improve
Share bugs, ideas, or general feedback.
From voila-api
Definitive guide for the Voila API. Covers shipment creation (Manual/Smart Shipping), real-time tracking, detailed history, manifesting, collections, webhooks, and third-party integrations (Sorted, Peoplevox, Mintsoft, Veeqo, JD). ALWAYS use this skill for any shipping, labeling, or logistics tasks involving Voila. Do not rely on general knowledge; consult this skill for precise REST schemas and integration flows.
npx claudepluginhub quochieudn2303/claude-plugins-official-copilot --plugin voila-apiHow this skill is triggered — by the user, by Claude, or both
Slash command
/voila-api:voila-apiThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The Voila API is a RESTful service for managing shipping, labeling, and tracking across multiple couriers.
endpoints/authentication.mdendpoints/couriers.mdendpoints/integrations.mdendpoints/labeling.mdendpoints/pricing-services.mdendpoints/smart-shipping.mdendpoints/tracking.mdendpoints/utilities.mdendpoints/webhooks.mdscripts/get-courier-specifics.jsscripts/get-courier-specifics.pyscripts/list-couriers.jsscripts/list-couriers.pyAutomates Shipengine shipping operations via Composio's Shipengine toolkit through Rube MCP. Always searches for current tool schemas before execution.
Implements Flexport API workflow: create purchase orders, book ocean/air/trucking shipments, track freight milestones via REST v2.
Builds WooCommerce shipping methods—WC_Shipping_Method, zones, classes, rate calculations, tracking, carrier integrations—for custom shipping logic.
Share bugs, ideas, or general feedback.
The Voila API is a RESTful service for managing shipping, labeling, and tracking across multiple couriers.
https://app.heyvoila.ioapi-user: <your_api_user>api-token: <your_api_token>api-key: <your_api_key>Authorization: Basic <base64(api-user:api-token)>Content-Type: application/jsonAccept: application/jsonAutomatically select the best courier/service based on rules.
POST /api/couriers/v1/smart-shipping/create-labelshipment with ship_to, parcels, and items. (See Core Objects)tracking_code, label (Base64), and shipment_id.success: false or smart_shipping_errors.POST /api/couriers/v1/{courier}/get-services to see available options for a shipment.service_identifier from the response.POST /api/couriers/v1/{courier}/create-label with that service_code.POST /api/couriers/v1/bulk/create-label-async with an array of requests and a webhook.url.bulk_request_id.shipment.created or shipment.failed event at your webhook URL.These objects are reused across almost all endpoints. See Labeling & Shipping for full definitions.
interface Address {
name: string;
company_name?: string;
address_1: string;
address_2?: string;
address_3?: string;
city: string;
county?: string;
postcode: string;
/** ISO 3166-1 alpha-2 (e.g., "GB", "US"). */
country_iso: string;
country?: string;
phone: string;
email: string;
tax_id?: string;
eori_id?: string;
ioss_number?: string;
ukims_number?: string;
/** Only for ship_from: looks up a saved address by friendly name. */
address_name?: string;
// Additional: abn_number, arn_number, gst_number, voec_number, company_id
}
interface Parcel {
weight: number;
weight_unit: 'kg' | 'g' | 'lb' | 'oz';
dim_length: number;
dim_width: number;
dim_height: number;
dim_unit: 'cm' | 'mm';
items: ShipmentItem[];
packaging_weight?: number;
packaging_weight_unit?: string;
packageId?: string;
value?: number;
value_currency?: string;
}
interface ShipmentItem {
description: string;
quantity: number;
/** Value per unit. */
value: number;
/** e.g., "GBP", "USD". */
value_currency: string;
weight: number;
weight_unit: 'kg' | 'g' | 'lb' | 'oz';
sku?: string;
hs_code?: string;
/** ISO 2-letter origin country code. */
origin_country?: string;
image_url?: string;
}
For exhaustive schemas, field definitions, and implementation details for every route, refer to these dedicated files:
The skill includes pre-configured scripts to fetch live information from the Voila API using the playground credentials. These are located in the scripts/ directory.
Fetches the current list of all couriers supported by Voila.
node scripts/list-couriers.jspython scripts/list-couriers.pyFetches required and optional fields for a specific courier (e.g., UPSv2).
node scripts/get-courier-specifics.js <courier_key>python scripts/get-courier-specifics.py <courier_key>{
"success": false,
"message": "Detailed error message here.",
"errors": {
"field_name": ["Specific validation error"]
}
}
country_iso (must be 2 chars) or invalid postcode format for the destination.disabled.success: true but label is empty, check smart_shipping_errors or the message field.testing: false is explicitly set (default is often true in examples).