AfterShip Returns API

Create, approve, reject, resolve and receive returns by return ID or RMA number, manage return items, item tags and returns-page deep links.

Business capability
Returns and Reverse Operations Management BC-2460.50

Operations 16

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /returns/{return_id} Get a return by return ID · Get return detail by ID #
Ask an LLM
“How do I look up a return using its internal return ID?”
“What's the current status of the return with this return ID?”
Tell an agent
Get return {return_id}.
Show the details of return ID {return_id}.
GET /returns/rma/{rma_number} Get a return by RMA number · Get return detail by RMA number #
Ask an LLM
“Can I find a return using the RMA number the customer gave me?”
“What's in the return with this RMA number?”
Tell an agent
Get the return with RMA {rma_number}.
Look up RMA {rma_number}.
GET /returns List and filter returns · Get returns #
Ask an LLM
“How do I list returns awaiting approval?”
“Can I find all returns from one customer email?”
Tell an agent
List returns with approval status {approval_status}.
Show returns from customer {customer_email}.
POST /returns Create a refund return for an order · Create Return #
Ask an LLM
“How do I open a return on behalf of a customer?”
“Does creating a return through the API support exchanges, or refunds only?”
Tell an agent
Create a return for order {order} with items {return_items} refunded to {refund_destination}.
Open a return on order {order} for {return_items} using method {return_method} and refund to {refund_destination}.
POST /returns/rma/{rma_number}/approve Approve a return by RMA number · Approve Return By RMA number #
Ask an LLM
“Can I approve a return using its RMA number and generate a label?”
“How do I approve an RMA and email the customer?”
Tell an agent
Approve RMA {rma_number}.
Approve the return with RMA {rma_number} and generate a return label.
POST /returns/{return_id}/approve Approve a return by return ID · Approve Return By Return ID #
Ask an LLM
“How do I approve a return when I have its return ID?”
“Can approving a return by ID also create the shipping label?”
Tell an agent
Approve return ID {return_id}.
Approve return {return_id}, generate a label and notify the customer.
POST /returns/rma/{rma_number}/resolve Resolve a return by RMA number · Resolve Return By RMA number #
Ask an LLM
“Can I resolve a return using the RMA number once it's handled?”
“How do I close an RMA after refunding it?”
Tell an agent
Resolve RMA {rma_number}.
Mark the return with RMA {rma_number} resolved and tell the customer.
POST /returns/{return_id}/resolve Resolve a return by return ID · Resolve Return By Return ID #
Ask an LLM
“How do I move a return to resolved status using its return ID?”
“Can I resolve a return by ID without notifying the shopper?”
Tell an agent
Resolve return ID {return_id}.
Mark return {return_id} as resolved.
POST /returns/rma/{rma_number}/reject Reject a return by RMA number · Reject Return By RMA number #
Ask an LLM
“Can I reject a return request using its RMA number?”
“How do I decline an RMA and give a reason?”
Tell an agent destructive · confirm first
Reject RMA {rma_number} because {reject_reason}.
Decline the return with RMA {rma_number}, reason {reject_reason}.
POST /returns/{return_id}/reject Reject a return by return ID · Reject Return By Return ID #
Ask an LLM
“How do I reject a return when I have its return ID?”
“Can I notify the customer when I reject a return by ID?”
Tell an agent destructive · confirm first
Reject return ID {return_id} because {reject_reason}.
Decline return {return_id} with the reason {reject_reason} and notify the customer.
POST /returns/rma/{rma_number}/receive-items Receive returned items by RMA number · Receive items by RMA number #
Ask an LLM
“How do I mark returned goods as received in the warehouse using the RMA?”
“Can I receive only some items on an RMA?”
Tell an agent
Receive items {items} for RMA {rma_number}.
Log that RMA {rma_number}'s items {items} arrived at the warehouse.
POST /returns/{return_id}/receive-items Receive returned items by return ID · Receive items by Return ID #
Ask an LLM
“How do I record received return items against a return ID?”
“Which item ID do I use when receiving items on a return by ID?”
Tell an agent
Receive items {items} for return ID {return_id}.
Mark items {items} on return {return_id} as received.
POST /returns/rma/{rma_number}/attach-shipments Attach a return shipment by RMA number · Attach shipments by RMA number #
Ask an LLM
“Can I upload my own return tracking to an RMA?”
“How do I attach a shipment to a return using its RMA number?”
Tell an agent
Attach shipment {shipments} to RMA {rma_number}.
Add my own return tracking {shipments} to the return with RMA {rma_number}.
POST /returns/{return_id}/attach-shipments Attach a return shipment by return ID · Attach shipments by Return ID #
Ask an LLM
“How do I attach a return shipment when I have the return ID?”
“Can more than one shipment be attached to a return?”
Tell an agent
Attach shipment {shipments} to return ID {return_id}.
Upload tracking {shipments} to return {return_id}.
POST /returns/{return_id}/remove-items Remove items from a return by return ID · Remove return items by Return ID #
Ask an LLM
“What if a shopper no longer wants to return every item on a return?”
“How do I drop items from a return using the return ID?”
Tell an agent destructive · confirm first
Remove items {items} from return ID {return_id} because {edit_reason}.
Take {items} off return {return_id}, reason {edit_reason}, notify customer {notify_customer}.
POST /returns/rma/{rma_number}/remove-items Remove items from a return by RMA number · Remove return items by RMA number #
Ask an LLM
“Can I remove items from a return using its RMA number?”
“How do I shrink an RMA when the customer changes their mind?”
Tell an agent destructive · confirm first
Remove items {items} from RMA {rma_number} because {edit_reason}.
Take {items} off RMA {rma_number}, reason {edit_reason}, notify customer {notify_customer}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/aftership:aftership-returns-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

aftership-returns-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Overview Returns API
  version: 2026-07
  summary: API Overview
  description: '> OAS Schema can be downloaded here'
  contact:
    name: AfterShip Support
    url: https://www.aftership.com/contact-us
    email: support@aftership.com
  termsOfService: https://www.aftership.com/legal/terms-of-service
servers:
- url: https://api.aftership.com/returns/2026-07
  description: API Endpoint
security:
- as-api-key: []
tags:


# --- truncated at 32 KB (105 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/aftership/refs/heads/main/openapi/aftership-returns-api-openapi.yml