{"files":{"SKILL.md":"---\nname: shipengine-api\ndescription: \"ShipEngine API skill. Use when working with ShipEngine for account, addresses, batches. Covers 96 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# ShipEngine API\nAPI version: 1.1.202603260803\n\n## Auth\nApiKey API-Key in header\n\n## Base URL\nhttps://api.shipengine.com\n\n## Setup\n1. Set your API key in the appropriate header\n2. GET /v1/account/settings -- list account settings\n3. POST /v1/account/settings/images -- create first image\n\n## Endpoints\n96 endpoints across 20 groups. See references/api-spec.lap for full details.\n\n### Account\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/account/settings | List Account Settings |\n| GET | /v1/account/settings/images | List Account Images |\n| POST | /v1/account/settings/images | Create an Account Image |\n| GET | /v1/account/settings/images/{label_image_id} | Get Account Image By ID |\n| PUT | /v1/account/settings/images/{label_image_id} | Update Account Image By ID |\n| DELETE | /v1/account/settings/images/{label_image_id} | Delete Account Image By Id |\n\n### Addresses\n| Method | Path | Description |\n|--------|------|-------------|\n| PUT | /v1/addresses/recognize | Parse an address |\n| POST | /v1/addresses/validate | Validate An Address |\n\n### Batches\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/batches | List Batches |\n| POST | /v1/batches | Create A Batch |\n| GET | /v1/batches/external_batch_id/{external_batch_id} | Get Batch By External ID |\n| DELETE | /v1/batches/{batch_id} | Delete Batch By Id |\n| GET | /v1/batches/{batch_id} | Get Batch By ID |\n| PUT | /v1/batches/{batch_id} | Update Batch By Id |\n| POST | /v1/batches/{batch_id}/add | Add to a Batch |\n| GET | /v1/batches/{batch_id}/errors | Get Batch Errors |\n| POST | /v1/batches/{batch_id}/process/labels | Process Batch ID Labels |\n| POST | /v1/batches/{batch_id}/remove | Remove From Batch |\n\n### Carriers\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/carriers | List Carriers |\n| GET | /v1/carriers/{carrier_id} | Get Carrier By ID |\n| DELETE | /v1/carriers/{carrier_id} | Disconnect Carrier by ID |\n| PUT | /v1/carriers/{carrier_id}/add_funds | Add Funds To Carrier |\n| GET | /v1/carriers/{carrier_id}/options | Get Carrier Options |\n| GET | /v1/carriers/{carrier_id}/packages | List Carrier Package Types |\n| GET | /v1/carriers/{carrier_id}/services | List Carrier Services |\n\n### Connections\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /v1/connections/carriers/{carrier_name} | Connect a carrier account |\n| DELETE | /v1/connections/carriers/{carrier_name}/{carrier_id} | Disconnect a carrier |\n| GET | /v1/connections/carriers/{carrier_name}/{carrier_id}/settings | Get carrier settings |\n| PUT | /v1/connections/carriers/{carrier_name}/{carrier_id}/settings | Update carrier settings |\n| DELETE | /v1/connections/insurance/shipsurance | Disconnect a Shipsurance Account |\n| POST | /v1/connections/insurance/shipsurance | Connect a Shipsurance Account |\n\n### Documents\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /v1/documents/combined_labels | Created Combined Label Document |\n\n### Downloads\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/downloads/{dir}/{subdir}/{filename} | Download File |\n\n### Environment\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/environment/webhooks | List Webhooks |\n| POST | /v1/environment/webhooks | Create a Webhook |\n| GET | /v1/environment/webhooks/{webhook_id} | Get Webhook By ID |\n| PUT | /v1/environment/webhooks/{webhook_id} | Update a Webhook |\n| DELETE | /v1/environment/webhooks/{webhook_id} | Delete Webhook By ID |\n\n### Insurance\n| Method | Path | Description |\n|--------|------|-------------|\n| PATCH | /v1/insurance/shipsurance/add_funds | Add Funds To Insurance |\n| GET | /v1/insurance/shipsurance/balance | Get Insurance Funds Balance |\n\n### Labels\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/labels | List labels |\n| POST | /v1/labels | Purchase Label |\n| GET | /v1/labels/external_shipment_id/{external_shipment_id} | Get Label By External Shipment ID |\n| POST | /v1/labels/rates/{rate_id} | Purchase Label with Rate ID |\n| POST | /v1/labels/rate_shopper_id/{rate_shopper_id} | Purchase Label from Rate Shopper |\n| POST | /v1/labels/shipment/{shipment_id} | Purchase Label with Shipment ID |\n| GET | /v1/labels/{label_id} | Get Label By ID |\n| POST | /v1/labels/{label_id}/return | Create a return label |\n| GET | /v1/labels/{label_id}/track | Get Label Tracking Information |\n| PUT | /v1/labels/{label_id}/void | Void a Label By ID |\n\n### Manifests\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/manifests | List Manifests |\n| POST | /v1/manifests | Create Manifest |\n| GET | /v1/manifests/{manifest_id} | Get Manifest By Id |\n| GET | /v1/manifests/requests/{manifest_request_id} | Get Manifest Request By Id |\n\n### Packages\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/packages | List Custom Package Types |\n| POST | /v1/packages | Create Custom Package Type |\n| GET | /v1/packages/{package_id} | Get Custom Package Type By ID |\n| PUT | /v1/packages/{package_id} | Update Custom Package Type By ID |\n| DELETE | /v1/packages/{package_id} | Delete A Custom Package By ID |\n\n### Pickups\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/pickups | List Scheduled Pickups |\n| POST | /v1/pickups | Schedule a Pickup |\n| GET | /v1/pickups/{pickup_id} | Get Pickup By ID |\n| DELETE | /v1/pickups/{pickup_id} | Delete a Scheduled Pickup |\n\n### Rates\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /v1/rates | Get Shipping Rates |\n| POST | /v1/rates/bulk | Get Bulk Rates |\n| POST | /v1/rates/estimate | Estimate Rates |\n| GET | /v1/rates/{rate_id} | Get Rate By ID |\n\n### Service_points\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /v1/service_points/list | List Service Points |\n| GET | /v1/service_points/{carrier_code}/{country_code}/{service_point_id} | Get Service Point By ID |\n\n### Shipments\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/shipments | List Shipments |\n| POST | /v1/shipments | Create Shipments |\n| GET | /v1/shipments/external_shipment_id/{external_shipment_id} | Get Shipment By External ID |\n| PUT | /v1/shipments/recognize | Parse shipping info |\n| GET | /v1/shipments/{shipment_id} | Get Shipment By ID |\n| PUT | /v1/shipments/{shipment_id} | Update Shipment By ID |\n| PUT | /v1/shipments/{shipment_id}/cancel | Cancel a Shipment |\n| GET | /v1/shipments/{shipment_id}/rates | Get Shipment Rates |\n| PUT | /v1/shipments/tags | Update Shipments Tags |\n| GET | /v1/shipments/{shipment_id}/tags | Get Shipment Tags |\n| POST | /v1/shipments/{shipment_id}/tags/{tag_name} | Add Tag to Shipment |\n| DELETE | /v1/shipments/{shipment_id}/tags/{tag_name} | Remove Tag from Shipment |\n\n### Tags\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/tags | Get Tags |\n| POST | /v1/tags | Create a New Tag |\n| POST | /v1/tags/{tag_name} | Create a New Tag |\n| DELETE | /v1/tags/{tag_name} | Delete Tag |\n| PUT | /v1/tags/{tag_name}/{new_tag_name} | Update Tag Name |\n\n### Tokens\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /v1/tokens/ephemeral | Get Ephemeral Token |\n\n### Tracking\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/tracking | Get Tracking Information |\n| POST | /v1/tracking/start | Start Tracking a Package |\n| POST | /v1/tracking/stop | Stop Tracking a Package |\n\n### Warehouses\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/warehouses | List Warehouses |\n| POST | /v1/warehouses | Create Warehouse |\n| GET | /v1/warehouses/{warehouse_id} | Get Warehouse By Id |\n| PUT | /v1/warehouses/{warehouse_id} | Update Warehouse By Id |\n| DELETE | /v1/warehouses/{warehouse_id} | Delete Warehouse By ID |\n| PUT | /v1/warehouses/{warehouse_id}/settings | Update Warehouse Settings |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"List all settings?\" -> GET /v1/account/settings\n- \"List all images?\" -> GET /v1/account/settings/images\n- \"Create a image?\" -> POST /v1/account/settings/images\n- \"Get image details?\" -> GET /v1/account/settings/images/{label_image_id}\n- \"Update a image?\" -> PUT /v1/account/settings/images/{label_image_id}\n- \"Delete a image?\" -> DELETE /v1/account/settings/images/{label_image_id}\n- \"Create a validate?\" -> POST /v1/addresses/validate\n- \"List all batches?\" -> GET /v1/batches\n- \"Create a batche?\" -> POST /v1/batches\n- \"Get external_batch_id details?\" -> GET /v1/batches/external_batch_id/{external_batch_id}\n- \"Delete a batche?\" -> DELETE /v1/batches/{batch_id}\n- \"Get batche details?\" -> GET /v1/batches/{batch_id}\n- \"Update a batche?\" -> PUT /v1/batches/{batch_id}\n- \"Create a add?\" -> POST /v1/batches/{batch_id}/add\n- \"List all errors?\" -> GET /v1/batches/{batch_id}/errors\n- \"Create a label?\" -> POST /v1/batches/{batch_id}/process/labels\n- \"Create a remove?\" -> POST /v1/batches/{batch_id}/remove\n- \"List all carriers?\" -> GET /v1/carriers\n- \"Get carrier details?\" -> GET /v1/carriers/{carrier_id}\n- \"Delete a carrier?\" -> DELETE /v1/carriers/{carrier_id}\n- \"List all options?\" -> GET /v1/carriers/{carrier_id}/options\n- \"List all packages?\" -> GET /v1/carriers/{carrier_id}/packages\n- \"List all services?\" -> GET /v1/carriers/{carrier_id}/services\n- \"Create a shipsurance?\" -> POST /v1/connections/insurance/shipsurance\n- \"Create a combined_label?\" -> POST /v1/documents/combined_labels\n- \"Get download details?\" -> GET /v1/downloads/{dir}/{subdir}/{filename}\n- \"List all webhooks?\" -> GET /v1/environment/webhooks\n- \"Create a webhook?\" -> POST /v1/environment/webhooks\n- \"Get webhook details?\" -> GET /v1/environment/webhooks/{webhook_id}\n- \"Update a webhook?\" -> PUT /v1/environment/webhooks/{webhook_id}\n- \"Delete a webhook?\" -> DELETE /v1/environment/webhooks/{webhook_id}\n- \"List all balance?\" -> GET /v1/insurance/shipsurance/balance\n- \"List all labels?\" -> GET /v1/labels\n- \"Get external_shipment_id details?\" -> GET /v1/labels/external_shipment_id/{external_shipment_id}\n- \"Get label details?\" -> GET /v1/labels/{label_id}\n- \"Create a return?\" -> POST /v1/labels/{label_id}/return\n- \"List all track?\" -> GET /v1/labels/{label_id}/track\n- \"List all manifests?\" -> GET /v1/manifests\n- \"Create a manifest?\" -> POST /v1/manifests\n- \"Get manifest details?\" -> GET /v1/manifests/{manifest_id}\n- \"Get request details?\" -> GET /v1/manifests/requests/{manifest_request_id}\n- \"Create a package?\" -> POST /v1/packages\n- \"Get package details?\" -> GET /v1/packages/{package_id}\n- \"Update a package?\" -> PUT /v1/packages/{package_id}\n- \"Delete a package?\" -> DELETE /v1/packages/{package_id}\n- \"List all pickups?\" -> GET /v1/pickups\n- \"Create a pickup?\" -> POST /v1/pickups\n- \"Get pickup details?\" -> GET /v1/pickups/{pickup_id}\n- \"Delete a pickup?\" -> DELETE /v1/pickups/{pickup_id}\n- \"Create a rate?\" -> POST /v1/rates\n- \"Create a bulk?\" -> POST /v1/rates/bulk\n- \"Create a estimate?\" -> POST /v1/rates/estimate\n- \"Get rate details?\" -> GET /v1/rates/{rate_id}\n- \"Create a list?\" -> POST /v1/service_points/list\n- \"Get service_point details?\" -> GET /v1/service_points/{carrier_code}/{country_code}/{service_point_id}\n- \"List all shipments?\" -> GET /v1/shipments\n- \"Create a shipment?\" -> POST /v1/shipments\n- \"Get shipment details?\" -> GET /v1/shipments/{shipment_id}\n- \"Update a shipment?\" -> PUT /v1/shipments/{shipment_id}\n- \"List all rates?\" -> GET /v1/shipments/{shipment_id}/rates\n- \"List all tags?\" -> GET /v1/shipments/{shipment_id}/tags\n- \"Delete a tag?\" -> DELETE /v1/shipments/{shipment_id}/tags/{tag_name}\n- \"Create a tag?\" -> POST /v1/tags\n- \"Update a tag?\" -> PUT /v1/tags/{tag_name}/{new_tag_name}\n- \"Create a ephemeral?\" -> POST /v1/tokens/ephemeral\n- \"List all tracking?\" -> GET /v1/tracking\n- \"Create a start?\" -> POST /v1/tracking/start\n- \"Create a stop?\" -> POST /v1/tracking/stop\n- \"List all warehouses?\" -> GET /v1/warehouses\n- \"Create a warehouse?\" -> POST /v1/warehouses\n- \"Get warehouse details?\" -> GET /v1/warehouses/{warehouse_id}\n- \"Update a warehouse?\" -> PUT /v1/warehouses/{warehouse_id}\n- \"Delete a warehouse?\" -> DELETE /v1/warehouses/{warehouse_id}\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Paginated endpoints accept limit/offset or cursor parameters\n- Create/update endpoints return the modified resource on success\n- Error responses include status codes and descriptions in the spec\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api ShipEngine API\n@base https://api.shipengine.com\n@version 1.1.202603260803\n@auth ApiKey API-Key in header\n@endpoints 96\n@hint download_for_search\n@toc account(6), addresses(2), batches(10), carriers(7), connections(6), documents(1), downloads(1), environment(5), insurance(2), labels(10), manifests(4), packages(5), pickups(4), rates(4), service_points(2), shipments(12), tags(5), tokens(1), tracking(3), warehouses(6)\n\n@group account\n@endpoint GET /v1/account/settings\n@desc List Account Settings\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/account/settings/images\n@desc List Account Images\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/account/settings/images\n@desc Create an Account Image\n@returns(200) The requested object creation was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/account/settings/images/{label_image_id}\n@desc Get Account Image By ID\n@required {label_image_id: str # Label Image Id}\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint PUT /v1/account/settings/images/{label_image_id}\n@desc Update Account Image By ID\n@required {label_image_id: str # Label Image Id}\n@returns(204) The request was successful.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint DELETE /v1/account/settings/images/{label_image_id}\n@desc Delete Account Image By Id\n@required {label_image_id: str # Label Image Id}\n@returns(204) The request was successful.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endgroup\n\n@group addresses\n@endpoint PUT /v1/addresses/recognize\n@desc Parse an address\n@required {text: str # The unstructured text that contains address-related entities}\n@optional {address: any # You can optionally provide any already-known address values. For example, you may already know the recipient's name, city, and country, and only want to parse the street address into separate lines.}\n@returns(200) {score: num(double), address: any, entities: [map]} # Returns the parsed address, as well as a confidence score and a list of all the entities that were recognized in the text.\n@errors {400: The request contained errors., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n@example_request {\"text\":\"Margie McMiller at 3800 North Lamar suite 200 in austin, tx.  The zip code there is 78652.\"}\n\n@endpoint POST /v1/addresses/validate\n@desc Validate An Address\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n@example_request [{\"name\":\"Mickey and Minnie Mouse\",\"phone\":\"714-781-4565\",\"company_name\":\"The Walt Disney Company\",\"address_line1\":\"500 South Buena Vista Street\",\"city_locality\":\"Burbank\",\"state_province\":\"CA\",\"postal_code\":91521,\"country_code\":\"US\"}]\n\n@endgroup\n\n@group batches\n@endpoint GET /v1/batches\n@desc List Batches\n@optional {status: str, page: int(int32)=1 # Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned., page_size: int(int32)=25 # The number of results to return per response., sort_dir: any=desc # Controls the sort order of the query., batch_number: str # Batch Number, created_at_start: str(date-time) # Only return batches that were created on or after a specific date/time, created_at_end: str(date-time) # Only return batches that were created on or before a specific date/time, processed_at_start: str(date-time) # Only return batches that were processed on or after a specific date/time, processed_at_end: str(date-time) # Only return batches that were processed on or before a specific date/time, sort_by: str}\n@returns(200) {batches: [any], total: int(int64), page: int(int32), pages: int(int32), links: any} # The request was a success.\n@errors {404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/batches\n@desc Create A Batch\n@returns(200) The requested object creation was a success.\n@returns(207) The request was a partial success. It contains results, as well as processing errors.\n@errors {400: The request contained errors., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/batches/external_batch_id/{external_batch_id}\n@desc Get Batch By External ID\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint DELETE /v1/batches/{batch_id}\n@desc Delete Batch By Id\n@returns(204) The request was successful.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/batches/{batch_id}\n@desc Get Batch By ID\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint PUT /v1/batches/{batch_id}\n@desc Update Batch By Id\n@returns(204) The request was successful.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/batches/{batch_id}/add\n@desc Add to a Batch\n@returns(204) The request was successful.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/batches/{batch_id}/errors\n@desc Get Batch Errors\n@optional {page: int(int32)=1 # Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned., pagesize: int(int32)}\n@returns(200) {errors: [map], links: any} # The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/batches/{batch_id}/process/labels\n@desc Process Batch ID Labels\n@optional {ship_date: any # The Ship date the batch is being processed for, label_layout: str=4x6, label_format: any=pdf, display_scheme: any=label # The display format that the label should be shown in.}\n@returns(204) The request was successful.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/batches/{batch_id}/remove\n@desc Remove From Batch\n@returns(204) The request was successful.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endgroup\n\n@group carriers\n@endpoint GET /v1/carriers\n@desc List Carriers\n@returns(200) The request was a success.\n@returns(207) The request was a partial success. It contains results, as well as errors.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/carriers/{carrier_id}\n@desc Get Carrier By ID\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint DELETE /v1/carriers/{carrier_id}\n@desc Disconnect Carrier by ID\n@returns(204) The request was successful.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint PUT /v1/carriers/{carrier_id}/add_funds\n@desc Add Funds To Carrier\n@returns(200) {balance: any} # The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/carriers/{carrier_id}/options\n@desc Get Carrier Options\n@returns(200) {options: [any]} # The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/carriers/{carrier_id}/packages\n@desc List Carrier Package Types\n@returns(200) {packages: [any]} # The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/carriers/{carrier_id}/services\n@desc List Carrier Services\n@returns(200) {services: [any]} # The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endgroup\n\n@group connections\n@endpoint POST /v1/connections/carriers/{carrier_name}\n@desc Connect a carrier account\n@returns(200) {carrier_id: any} # The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint DELETE /v1/connections/carriers/{carrier_name}/{carrier_id}\n@desc Disconnect a carrier\n@returns(204) The request was successful.\n@errors {404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/connections/carriers/{carrier_name}/{carrier_id}/settings\n@desc Get carrier settings\n@returns(200) The request was a success.\n@errors {404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint PUT /v1/connections/carriers/{carrier_name}/{carrier_id}/settings\n@desc Update carrier settings\n@returns(204) The request was successful.\n@errors {404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint DELETE /v1/connections/insurance/shipsurance\n@desc Disconnect a Shipsurance Account\n@returns(200) The request was a success\n@errors {400: The request contained errors., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/connections/insurance/shipsurance\n@desc Connect a Shipsurance Account\n@required {email: any, policy_id: str}\n@returns(200) The request was a success\n@errors {400: The request contained errors., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endgroup\n\n@group documents\n@endpoint POST /v1/documents/combined_labels\n@desc Created Combined Label Document\n@optional {label_ids: [any] # The list of up to 30 label ids to include in the combined label document. Note that to avoid response size limits, you should only expect to be able to combine 30 single page labels similar in size to that of USPS labels., label_format: str # The file format for the combined label document; note that currently only `\"pdf\"` is supported., label_download_type: any=inline}\n@returns(200) {label_download: any} # The requested object creation was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endgroup\n\n@group downloads\n@endpoint GET /v1/downloads/{dir}/{subdir}/{filename}\n@desc Download File\n@optional {download: str, rotation: int(int32)}\n@returns(200) The request was a success\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endgroup\n\n@group environment\n@endpoint GET /v1/environment/webhooks\n@desc List Webhooks\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/environment/webhooks\n@desc Create a Webhook\n@required {event: any, url: any # The url that the webhook sends the request to}\n@optional {headers: [any] # Array of custom webhook headers, name: str # The name of the webhook, store_id: int(int32) # Store ID}\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 409: The request conflicts with an existing resource., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/environment/webhooks/{webhook_id}\n@desc Get Webhook By ID\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint PUT /v1/environment/webhooks/{webhook_id}\n@desc Update a Webhook\n@optional {url: any # The url that the wehbook sends the request, headers: [any] # Array of custom webhook headers, name: str # The name of the webhook, store_id: int(int32) # Store ID}\n@returns(204) The request was successful.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint DELETE /v1/environment/webhooks/{webhook_id}\n@desc Delete Webhook By ID\n@returns(204) The request was successful.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endgroup\n\n@group insurance\n@endpoint PATCH /v1/insurance/shipsurance/add_funds\n@desc Add Funds To Insurance\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/insurance/shipsurance/balance\n@desc Get Insurance Funds Balance\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endgroup\n\n@group labels\n@endpoint GET /v1/labels\n@desc List labels\n@optional {label_status: str # Only return labels that are currently in the specified status, service_code: str # Only return labels for a specific [carrier service](https://www.shipengine.com/docs/shipping/use-a-carrier-service/), carrier_id: str # Only return labels for a specific [carrier account](https://www.shipengine.com/docs/carriers/setup/), tracking_number: str # Only return labels with a specific tracking number, batch_id: str # Only return labels that were created in a specific [batch](https://www.shipengine.com/docs/labels/bulk/), rate_id: str # Rate ID, shipment_id: str # Shipment ID, warehouse_id: str # Only return labels that originate from a specific [warehouse](https://www.shipengine.com/docs/shipping/ship-from-a-warehouse/), created_at_start: str(date-time) # Only return labels that were created on or after a specific date/time, created_at_end: str(date-time) # Only return labels that were created on or before a specific date/time, page: int(int32)=1 # Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned., page_size: int(int32)=25 # The number of results to return per response., sort_dir: any=desc # Controls the sort order of the query., sort_by: str(modified_at/created_at/voided_at)=created_at # Controls which field the query is sorted by.}\n@returns(200) {labels: [map]} # The response includes a `labels` array containing a page of results (as determined by the `page_size` query parameter).  It also includes other useful information, such as the total number of labels that match the query criteria, the number of pages of results, and the URLs of the first, last, next, and previous pages of results.\n@errors {400: The request contained errors., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/labels\n@desc Purchase Label\n@optional {ship_to_service_point_id: str # A unique identifier for a carrier service point where the shipment will be delivered by the carrier. This will take precedence over a shipment's ship to address., ship_from_service_point_id: str # A unique identifier for a carrier drop off point where a merchant plans to deliver packages. This will take precedence over a shipment's ship from address.}\n@returns(200) The requested object creation was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/labels/external_shipment_id/{external_shipment_id}\n@desc Get Label By External Shipment ID\n@optional {label_download_type: str}\n@returns(200) The requested object creation was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/labels/rates/{rate_id}\n@desc Purchase Label with Rate ID\n@optional {custom_field1: str # Optional - Value will be saved in the shipment's advanced_options > custom_field1, custom_field2: str # Optional - Value will be saved in the shipment's advanced_options > custom_field2, custom_field3: str # Optional - Value will be saved in the shipment's advanced_options > custom_field3}\n@returns(200) The requested object creation was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/labels/rate_shopper_id/{rate_shopper_id}\n@desc Purchase Label from Rate Shopper\n@required {rate_shopper_id: str # The rate selection strategy for the Rate Shopper. This determines which carrier and service will be automatically selected from your wallet carriers based on the rates returned for the shipment., shipment: any # The shipment details for which to create a label. Must be provided inline. The carrier_id, service_code, and shipping_rule_id are not included as these will be automatically determined by the Rate Shopper based on your strategy.}\n@optional {is_return_label: bool # Indicates whether this is a return label.  You may also want to set the `rma_number` so you know what is being returned., rma_number: str # An optional Return Merchandise Authorization number.  This field is useful for return labels.  You can set it to any string value., charge_event: any # The label charge event., outbound_label_id: any # The `label_id` of the original (outgoing) label that the return label is for. This associates the two labels together, which is required by some carriers., test_label: bool=false # Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account., validate_address: any=no_validation, label_download_type: any=url, label_format: any=pdf # The file format that you want the label to be in.  We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats., display_scheme: any=label # The display format that the label should be shown in., label_layout: any=4x6 # The layout (size) that you want the label to be in.  The `label_format` determines which sizes are allowed.  `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format., label_image_id: any # The label image resource that was used to create a custom label image.}\n@returns(200) {rate_shopper_id: any} # Label created successfully using Rate Shopper. The response includes the selected carrier_id, service_code, and rate_shopper_id that was used.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n@example_request {\"shipment\":{\"ship_to\":{\"name\":\"John Doe\",\"company_name\":\"Example Corp\",\"address_line1\":\"123 Main St\",\"city_locality\":\"Austin\",\"state_province\":\"TX\",\"postal_code\":\"78701\",\"country_code\":\"US\",\"phone\":\"512-555-1234\"},\"ship_from\":{\"name\":\"Warehouse A\",\"address_line1\":\"456 Warehouse Blvd\",\"city_locality\":\"Dallas\",\"state_province\":\"TX\",\"postal_code\":\"75001\",\"country_code\":\"US\"},\"packages\":[{\"weight\":{\"value\":5,\"unit\":\"pound\"},\"dimensions\":{\"length\":12,\"width\":8,\"height\":6,\"unit\":\"inch\"}}]},\"label_format\":\"pdf\",\"label_layout\":\"4x6\"}\n\n@endpoint POST /v1/labels/shipment/{shipment_id}\n@desc Purchase Label with Shipment ID\n@optional {validate_address: any, label_layout: any=4x6, label_format: any=pdf, label_download_type: any=url, display_scheme: any=label # The display format that the label should be shown in.}\n@returns(200) The requested object creation was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/labels/{label_id}\n@desc Get Label By ID\n@optional {label_download_type: str}\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/labels/{label_id}/return\n@desc Create a return label\n@optional {charge_event: any # The label charge event., label_layout: any=4x6 # The layout (size) that you want the label to be in.  The `label_format` determines which sizes are allowed.  `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format., label_format: any=pdf # The file format that you want the label to be in.  We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats., label_download_type: any=url, display_scheme: any=label # The display format that the label should be shown in., label_image_id: any # The label image resource that was used to create a custom label image., rma_number: str # An optional Return Merchandise Authorization number. If provided, this value will be used as the return label's RMA number. If omitted, the system will auto-generate an RMA number (current default behavior). You can set it to any string value.}\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n@example_request {\"label_format\":\"pdf\",\"label_layout\":\"4x6\",\"charge_event\":\"carrier_default\",\"rma_number\":\"RMA-2024-001234\"}\n\n@endpoint GET /v1/labels/{label_id}/track\n@desc Get Label Tracking Information\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint PUT /v1/labels/{label_id}/void\n@desc Void a Label By ID\n@returns(200) {approved: bool, message: str, reason_code: str} # The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endgroup\n\n@group manifests\n@endpoint GET /v1/manifests\n@desc List Manifests\n@optional {warehouse_id: str # Warehouse ID, ship_date_start: str(date-time) # ship date start range, ship_date_end: str(date-time) # ship date end range, created_at_start: str(date-time) # Used to create a filter for when a resource was created (ex. A shipment that was created after a certain time), created_at_end: str(date-time) # Used to create a filter for when a resource was created, (ex. A shipment that was created before a certain time), carrier_id: str # Carrier ID, page: int(int32)=1 # Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned., page_size: int(int32)=25 # The number of results to return per response., label_ids: [str]}\n@returns(200) {manifests: [any], total: int(int64), page: int(int32), pages: int(int32), links: any} # The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/manifests\n@desc Create Manifest\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/manifests/{manifest_id}\n@desc Get Manifest By Id\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/manifests/requests/{manifest_request_id}\n@desc Get Manifest Request By Id\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endgroup\n\n@group packages\n@endpoint GET /v1/packages\n@desc List Custom Package Types\n@returns(200) {packages: [any]} # The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/packages\n@desc Create Custom Package Type\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/packages/{package_id}\n@desc Get Custom Package Type By ID\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint PUT /v1/packages/{package_id}\n@desc Update Custom Package Type By ID\n@returns(204) The request was successful.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint DELETE /v1/packages/{package_id}\n@desc Delete A Custom Package By ID\n@returns(204) The request was successful.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endgroup\n\n@group pickups\n@endpoint GET /v1/pickups\n@desc List Scheduled Pickups\n@optional {carrier_id: str # Carrier ID, warehouse_id: str # Warehouse ID, created_at_start: str(date-time) # Only return scheduled pickups that were created on or after a specific date/time, created_at_end: str(date-time) # Only return scheduled pickups that were created on or before a specific date/time, page: int(int32)=1 # Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned., page_size: int(int32)=25 # The number of results to return per response.}\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/pickups\n@desc Schedule a Pickup\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/pickups/{pickup_id}\n@desc Get Pickup By ID\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint DELETE /v1/pickups/{pickup_id}\n@desc Delete a Scheduled Pickup\n@returns(200) Return the `pickup_id` of the scheduled pickup that was successfully deleted\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endgroup\n\n@group rates\n@endpoint POST /v1/rates\n@desc Get Shipping Rates\n@optional {ship_to_service_point_id: str # A unique identifier for a carrier service point where the shipment will be delivered by the carrier. This will take precedence over a shipment's ship to address., ship_from_service_point_id: str # A unique identifier for a carrier drop off point where a merchant plans to deliver packages. This will take precedence over a shipment's ship from address.}\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/rates/bulk\n@desc Get Bulk Rates\n@optional {ship_to_service_point_id: str # A unique identifier for a carrier service point where the shipment will be delivered by the carrier. This will take precedence over a shipment's ship to address., ship_from_service_point_id: str # A unique identifier for a carrier drop off point where a merchant plans to deliver packages. This will take precedence over a shipment's ship from address.}\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/rates/estimate\n@desc Estimate Rates\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/rates/{rate_id}\n@desc Get Rate By ID\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endgroup\n\n@group service_points\n@endpoint POST /v1/service_points/list\n@desc List Service Points\n@returns(200) {lat: num(double), long: num(double), service_points: [map], errors: [any]} # The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/service_points/{carrier_code}/{country_code}/{service_point_id}\n@desc Get Service Point By ID\n@returns(200) {service_point: map{carrier_code: any, service_codes: [str], service_point_id: str, company_name: str, address_line1: str, city_locality: str, state_province: str, postal_code: any, country_code: any, phone_number: str, lat: num(double), long: num(double), hours_of_operation: map{monday: [map], tuesday: [map], wednesday: [map], thursday: [map], friday: [map], saturday: [map], sunday: [map]}, features: [str], type: str}} # The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endgroup\n\n@group shipments\n@endpoint GET /v1/shipments\n@desc List Shipments\n@optional {shipment_status: str, batch_id: str # Batch ID, tag: str # Search for shipments based on the custom tag added to the shipment object, created_at_start: str(date-time) # Used to create a filter for when a resource was created (ex. A shipment that was created after a certain time), created_at_end: str(date-time) # Used to create a filter for when a resource was created, (ex. A shipment that was created before a certain time), modified_at_start: str(date-time) # Used to create a filter for when a resource was modified (ex. A shipment that was modified after a certain time), modified_at_end: str(date-time) # Used to create a filter for when a resource was modified (ex. A shipment that was modified before a certain time), page: int(int32)=1 # Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned., page_size: int(int32)=25 # The number of results to return per response., sales_order_id: str # Sales Order ID, sort_dir: any=desc # Controls the sort order of the query., sort_by: str}\n@returns(200) {shipments: [any], total: int(int64), page: int(int32), pages: int(int32), links: any} # The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/shipments\n@desc Create Shipments\n@required {shipments: [any] # An array of shipments to be created.}\n@returns(200) {has_errors: bool, shipments: [any]} # The requested object creation was a success.\n@errors {400: The request contained errors., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/shipments/external_shipment_id/{external_shipment_id}\n@desc Get Shipment By External ID\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint PUT /v1/shipments/recognize\n@desc Parse shipping info\n@required {text: str # The unstructured text that contains shipping-related entities}\n@optional {shipment: any # You can optionally provide a `shipment` object containing any already-known values. For example, you probably already know the `ship_from` address, and you may also already know what carrier and service you want to use.}\n@returns(200) {score: num(double), shipment: any, entities: [map]} # Returns the parsed shipment, as well as a confidence score and a list of all the shipping entities that were recognized in the text.\n@errors {400: The request contained errors., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n@example_request {\"text\":\"I have a 4oz package that's 5x10x14in, and I need to ship it to Margie McMiller at 3800 North Lamar suite 200 in austin, tx 78652. Please send it via USPS first class and require an adult signature. It also needs to be insured for $400.\\n\"}\n\n@endpoint GET /v1/shipments/{shipment_id}\n@desc Get Shipment By ID\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint PUT /v1/shipments/{shipment_id}\n@desc Update Shipment By ID\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint PUT /v1/shipments/{shipment_id}/cancel\n@desc Cancel a Shipment\n@returns(204) The request was successful.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/shipments/{shipment_id}/rates\n@desc Get Shipment Rates\n@optional {created_at_start: str(date-time) # Used to create a filter for when a resource was created (ex. A shipment that was created after a certain time)}\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint PUT /v1/shipments/tags\n@desc Update Shipments Tags\n@returns(204) NoContent\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/shipments/{shipment_id}/tags\n@desc Get Shipment Tags\n@returns(200) {tags: [str]} # The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/shipments/{shipment_id}/tags/{tag_name}\n@desc Add Tag to Shipment\n@returns(200) {tags: [str]} # The requested object creation was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint DELETE /v1/shipments/{shipment_id}/tags/{tag_name}\n@desc Remove Tag from Shipment\n@returns(204) The request was successful.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endgroup\n\n@group tags\n@endpoint GET /v1/tags\n@desc Get Tags\n@returns(200) {tags: [any]} # The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/tags\n@desc Create a New Tag\n@required {name: str # The tag name.}\n@optional {color: str # A hex-coded string identifying the color of the tag.}\n@returns(200) The requested object creation was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/tags/{tag_name}\n@desc Create a New Tag\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint DELETE /v1/tags/{tag_name}\n@desc Delete Tag\n@returns(204) The request was successful.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint PUT /v1/tags/{tag_name}/{new_tag_name}\n@desc Update Tag Name\n@returns(204) The request was successful.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endgroup\n\n@group tokens\n@endpoint POST /v1/tokens/ephemeral\n@desc Get Ephemeral Token\n@optional {redirect: str # Include a redirect url to the application formatted with the ephemeral token.}\n@returns(200) {token: str, redirect_url: str} # OK\n\n@endgroup\n\n@group tracking\n@endpoint GET /v1/tracking\n@desc Get Tracking Information\n@optional {carrier_code: str # A [shipping carrier](https://www.shipengine.com/docs/carriers/setup/), such as `fedex`, `dhl_express`, `stamps_com`, etc., tracking_number: str # The tracking number associated with a shipment, carrier_id: str # Carrier ID}\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/tracking/start\n@desc Start Tracking a Package\n@optional {carrier_code: str # A [shipping carrier](https://www.shipengine.com/docs/carriers/setup/), such as `fedex`, `dhl_express`, `stamps_com`, etc., tracking_number: str # The tracking number associated with a shipment, carrier_id: str # Carrier ID}\n@returns(204) The request was successful.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/tracking/stop\n@desc Stop Tracking a Package\n@optional {carrier_code: str # A [shipping carrier](https://www.shipengine.com/docs/carriers/setup/), such as `fedex`, `dhl_express`, `stamps_com`, etc., tracking_number: str # The tracking number associated with a shipment, carrier_id: str # Carrier ID}\n@returns(204) The request was successful.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endgroup\n\n@group warehouses\n@endpoint GET /v1/warehouses\n@desc List Warehouses\n@returns(200) {warehouses: [any]} # The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint POST /v1/warehouses\n@desc Create Warehouse\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint GET /v1/warehouses/{warehouse_id}\n@desc Get Warehouse By Id\n@returns(200) The request was a success.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint PUT /v1/warehouses/{warehouse_id}\n@desc Update Warehouse By Id\n@returns(204) The request was successful.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint DELETE /v1/warehouses/{warehouse_id}\n@desc Delete Warehouse By ID\n@returns(204) The request was successful.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endpoint PUT /v1/warehouses/{warehouse_id}/settings\n@desc Update Warehouse Settings\n@optional {is_default: bool # The default property on the warehouse.}\n@returns(204) The request was successful.\n@errors {400: The request contained errors., 404: The specified resource does not exist., 500: An error occurred on ShipEngine's side.  > This error will automatically be reported to our engineers.}\n\n@endgroup\n\n@end\n"}}