Canix Incoming Transfers API
The Incoming Transfers API from Canix — 2 operation(s) for incoming transfers.
The Incoming Transfers API from Canix — 2 operation(s) for incoming transfers.
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/canix:canix-incoming-transfers-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: Canix Incoming Transfers API
x-logo:
url: https://assets.website-files.com/5ee52a0f4be6ffc2aaeb52cd/5ee52a0f4be6ff20e7eb534f_canix-logo.svg
backgroundColor: '#FFFFFF'
altText: Canix logo
description: '# Introduction
This API documentation describes the endpoints used by third-party developers to get Canix data for their account.
# Authentication
Canix API uses API Keys for authentication. You can generate an API key on our API page, and on your API requests use the `X-API-KEY` header with the API key value you generated.
We strongly recommend using a secrets manager. Plain text files like dotenv lead to accidental costly leaks. Use Doppler or similar options for a developer friendly experience. AWS and Google Cloud have native solutions as well.'
contact:
name: Canix Support
url: https://help.canix.com/
email: help@canix.com
version: 1.3.11
servers:
- url: https://api.canix.com/api/v1
variables: {}
security:
- ApiKeyAuth: []
tags:
- name: Incoming Transfers
paths:
/incoming_transfers:
get:
tags:
- Incoming Transfers
summary: GetIncomingTransfers
description: Return incoming transfers (inbound manifests) for the facilities the API key can access. Standalone transfers still being drafted in Canix are excluded; compliance-synced transfers are returned whether or not they have been received yet (filter with `where=received_date IS NOT NULL` for received only). Defaults to 500 records when `limit` is omitted.
operationId: GetIncomingTransfers
parameters:
- name: facility_id
in: query
description: Facility ID (optional). Defaults to every facility the API key can access.
example: 123
required: false
schema:
type: integer
- $ref: '#/components/parameters/limitParam'
- $ref: '#/components/parameters/offsetParam'
- $ref: '#/components/parameters/orderByParam'
- $ref: '#/components/parameters/whereParam'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/IncomingTransfer'
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401NotAuthenticated'
'403':
$ref: '#/components/responses/403AccessDenied'
'404':
$ref: '#/components/responses/404NotFound'
'500':
$ref: '#/components/responses/500ServerError'
/incoming_transfers/{incoming_transfer_id}:
get:
tags:
- Incoming Transfers
summary: GetIncomingTransfer
description: Get Incoming Transfer by ID
operationId: GetIncomingTransferById
parameters:
- name: incoming_transfer_id
in: path
description: Incoming Transfer ID
required: true
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/IncomingTransfer'
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401NotAuthenticated'
'403':
$ref: '#/components/responses/403AccessDenied'
'404':
$ref: '#/components/responses/404NotFound'
'500':
$ref: '#/components/responses/500ServerError'
components:
schemas:
IncomingTransfer:
title: Incoming Transfer
required:
- id
- name
properties:
id:
type: integer
example: 123
name:
type: string
description: Transfer name. For Metrc transfers this is the manifest number.
example: 0002345678
facility_id:
type: integer
example: 4338
status:
type:
- string
- 'null'
enum:
- awaiting
- accepted
- partially_accepted
- rejected
- partially_rejected
description: Transfer-level status. Not set for Metrc transfers; use each line item's `status` instead.
source_facility:
type:
- string
- 'null'
description: License number of the shipping facility.
example: C11-0000123-LIC
received_date:
type:
- string
- 'null'
description: When the transfer was received. Null while it is still awaiting receipt.
example: 2026-09-14 18:22:00+00:00
estimated_transfer_date:
type:
- string
- 'null'
example: 2026-09-14 18:22:00+00:00
total_price:
type: number
description: Sum of the line-item prices, in dollars. Line items without a price count as 0.
example: 4200.0
contents:
type: array
items:
$ref: '#/components/schemas/IncomingPackageTransfer'
created_at:
type: string
example: 2026-09-14 18:22:00+00:00
updated_at:
type: string
example: 2026-09-14 18:22:00+00:00
IncomingPackageTransfer:
title: Incoming Package Transfer
properties:
package:
type: object
description: Short package view. Fetch `/packages/{package_id}` or `/items/{item_id}` for full detail.
properties:
id:
type: integer
tag:
type: string
is_active:
type: boolean
is_testing_package:
type: boolean
is_trade_sample:
type: boolean
status:
type: string
item:
type: object
properties:
id:
type: integer
name:
type: string
sku:
type:
- string
- 'null'
status:
type:
- string
- 'null'
description: Line-item status as reported by the compliance system (e.g. Accepted, Rejected, Shipped).
example: Accepted
price:
type:
- number
- 'null'
description: Line-item price for the package, in dollars.
example: 1500.0
weight:
type:
- number
- 'null'
example: 10.0
weight_unit:
type:
- string
- 'null'
example: Pounds
updated_at:
type: string
example: 2026-09-14 18:22:00+00:00
parameters:
whereParam:
name: where
in: query
description: 'Filter results using SQL-like WHERE clause syntax (optional).
**Supported operators**: =, >, <, >=, <=, BETWEEN, IN, LIKE, AND, OR
**Supported patterns**:
- Equality: `status=''Active''`
- Comparison: `updated_at >= ''2024-01-01''`
- Range: `id BETWEEN 1 AND 10000`
- List: `status IN (''Active'', ''Pending'')`
- Pattern: `sku LIKE ''ABC%''`
- Compound: `facility_id=123 AND is_active=true`
'
schema:
type: string
example: status='Active' AND updated_at >= '2024-01-01'
orderByParam:
name: order_by
in: query
description: Order-by clause, in SQL format (optional)
schema:
type: string
example: id desc
limitParam:
name: limit
in: query
description: Max number of records to return (optional). Cannot exceed 2000
required: false
style: form
schema:
type: integer
default: 2000
example: 100
offsetParam:
name: offset
in: query
description: Offset for the returned records (optional)
schema:
type: integer
default: 0
example: 20
responses:
500ServerError:
description: Server error
403AccessDenied:
description: Access denied
400BadRequest:
description: Bad request
401NotAuthenticated:
description: Not authenticated
404NotFound:
description: The specified resource was not found
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-KEY
x-provenance:
method: harvested
publisher: Canix
source: https://api.canix.com/api.yaml?ver=1.3.12
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)