Skip to content
Home/API reference

API reference

The exact public endpoint names, request fields and response fields.

Endpoints

MethodEndpointResult
GET/apiListOrders100 most recent orders
POST/apiCreateOrderCreates order; charges saved card
GET/apiGetOrder?order_id=...Order, tracking and machine
POST/apiCancelOrderCancel within the cancellation rules
GET/apiListMachinesUp to 200 devices

List orders

Example · curl
curl 'https://app.shiplytech.com/functions/apiListOrders' -H 'X-API-Key: stk_your_key_here'

Response: org_id, count, orders[]. Each order has id, order_number, status, total_amount, recipient_name, recipient_email, ship_to_country and created_date.

Create an order

POST /apiCreateOrder. employee and company are required.

FieldAccepted values / fields
employeeRequired: name, email, street, city, state, postal_code. country defaults to US. Optional: street2, phone.
company (destination)Required: name, street, city, state, postal_code, country. Optional: company, street2.
device_typelaptop (default), bulk_laptop, monitor, imac_24, peripherals. No standalone phone. Outside US only laptop.
add_peripheralstrue or false. Adds a peripherals box to the same order: $25 with a laptop, monitor, iMac or 5-slot box; $30 when ordered alone.
intentreturn (default), warehouse, laptop_disposal. All three intents are available. Peripherals boxes are allowed on return orders only.
pickup_typefuture_day ($15), same_day ($20).
deviceserial, ticket
return_prefscompany_name, cc_emails (array), additional_instructions, ask_charger (boolean), ask_phone (boolean; laptop or 5-slot box only, $9), disable_reminders (boolean)
internalnote1, note2 (not shown to employee), legal_hold_days
Example · curl
curl -X POST https://app.shiplytech.com/functions/apiCreateOrder \
  -H 'X-API-Key: stk_your_key_here' \
  -H 'Content-Type: application/json' \
  -d '{"employee":{"name":"Jane Doe","email":"jane@example.com","street":"123 Example Street","city":"Austin","state":"TX","postal_code":"78701","country":"US"},"company":{"name":"Example Company","street":"456 Example Road","city":"Austin","state":"TX","postal_code":"78701","country":"US"},"device_type":"laptop","intent":"return"}' 

The employee address is carrier-verified. Unverifiable addresses fail with carrier messages. Success fields: order_id, order_number, status (paid), payment_status (paid), total_amount, invoice_id, hosted_invoice_url. A missing or declined card returns an error; the order remains unpaid and no labels are bought. A failed charge also returns order_id and order_number.

Get an order

Example · curl
curl 'https://app.shiplytech.com/functions/apiGetOrder?order_id=example-order-id' -H 'X-API-Key: stk_your_key_here'

order: id, order_number, status, payment_status, total_amount, recipient_name, recipient_email, ship_to_country, device_type, intent, created_date, paid_at.

tracking: outbound and return, each with tracking_number and carrier, or null. machine: id, status, serial_number, asset_tag, or null. A machine exists once the device has been checked in at the ShiplyTech warehouse.

Cancel an order

Example · curl
curl -X POST https://app.shiplytech.com/functions/apiCancelOrder -H 'X-API-Key: stk_your_key_here' -H 'Content-Type: application/json' -d '{"order_id":"example-order-id"}'

Success: {"ok": true}. Cancellation is available within 30 minutes after payment while paid or label-created, before the box ships. Both labels are voided and the charge is fully refunded.

List machines

Example · curl
curl https://app.shiplytech.com/functions/apiListMachines -H 'X-API-Key: stk_your_key_here'

Up to 200 devices. Fields: id, asset_tag, serial_number, status, model, received_date. device_category, make and storage_location are always null today.

Statuses

Order statuses

pending_payment, paid, label_created, outbound_shipped, outbound_delivered, return_shipped, return_delivered, device_received, return_failed, cancelled, completed

Device statuses

in_transit, received, in_storage, redeploy_requested, redeploy_shipped, redeployed, dispose_requested, awaiting_wipe, disposed, blocked_customer_action, forfeited, resale, recycled

Errors

Errors are JSON with an error string.

HTTP statusMeaning
400Invalid or missing fields
401Missing, invalid or revoked key
403API disabled or order belongs to another organization
404Order not found

No rate limits are published. There are no SDKs.