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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/royal-mail-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
openapi: 3.2.0
info:
title: ChannelShipper & Royal Mail Public Labels Returns API
description: Import your orders, retrieve your orders and generate labels.
version: 1.0.0
servers:
- url: /api/v1
tags:
- name: Returns
description: Reserved for OBA customers only.
paths:
/returns/services:
get:
tags:
- Returns
summary: List available return services
description: Returns a list of return services that can be used when creating return shipments.
security:
- Bearer: []
responses:
'200':
description: Lists all available return services for generating return labels
content:
application/json:
schema:
$ref: '#/components/schemas/GetServicesResponse'
'401':
description: Unauthorized
'500':
description: Internal Server Error
/returns:
post:
tags:
- Returns
summary: Create a return shipment
description: Creates a return label and returns shipment details including tracking number, QR code, and label.
security:
- Bearer: []
responses:
'200':
description: Successfully created return shipment
content:
application/json:
schema:
$ref: '#/components/schemas/CreateReturnResponse'
'400':
description: Bad Request
'401':
description: Unauthorized
'500':
description: Internal Server Error
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateReturnRequest'
description: Return creation request
required: true
components:
schemas:
GetServicesResponse:
type: object
properties:
services:
type: array
items:
$ref: '#/components/schemas/ServiceItem'
CreateReturnResponse:
type: object
properties:
shipment:
type: object
properties:
trackingNumber:
type: string
uniqueItemId:
type: string
qrCode:
type: string
label:
type: string
Shipment:
type: object
properties:
shippingAddress:
$ref: '#/components/schemas/Address'
returnAddress:
$ref: '#/components/schemas/Address'
customerReference:
$ref: '#/components/schemas/CustomerReference'
ServiceCode:
type: object
properties:
serviceCode:
type: string
serviceRegisterCode:
type: string
ServiceItem:
type: object
properties:
carrierGuid:
type: string
format: uuid
carrierServiceGuid:
type: string
format: uuid
serviceName:
type: string
serviceCode:
type: string
Address:
type: object
properties:
title:
type: string
firstName:
type: string
lastName:
type: string
companyName:
type: string
addressLine1:
type: string
addressLine2:
type: string
addressLine3:
type: string
city:
type: string
county:
type: string
postcode:
type: string
country:
type: string
countryIsoCode:
type: string
CreateReturnRequest:
type: object
properties:
service:
$ref: '#/components/schemas/ServiceCode'
shipment:
$ref: '#/components/schemas/Shipment'
CustomerReference:
type: object
properties:
reference:
type: string
securitySchemes:
Bearer:
type: apiKey
description: Authorization header using the Bearer scheme. Enter 'Bearer [space] and then your token.
name: Authorization
in: header