openapi: 3.2.0 info: contact: email: hello@arta.io name: Arta url: https://manual.arta.io/ description: The Arta Public API provides quote generation, transport booking, and tracking capabilities. Additionally the API enables Arta partner organizations to configure email and webhook notifications for their accounts. termsOfService: https://www.arta.io/legal/terms title: Arta Public Self Ship Collections API version: '2021-01-01' servers: - url: https://api.arta.io variables: {} security: [] tags: - name: self_ship_collections paths: /self_ship_collection_availability_checks: post: callbacks: {} deprecated: false description: '**Availability: Public Preview** _This endpoint is currently in public preview and available only to approved accounts._ _Please contact Arta to request access for your organization._ Check carrier pickup availability for a given location, service, and date. For `fedex`, availability comes directly from FedEx for each request, so the response is the source of truth for bookable dates and times. It covers the requested date and can include availability for up to two later dates. For `dhl`, collections can be scheduled up to 10 days in advance, Monday through Friday, with hourly collection times from 09:00 to 15:00. Collection times that have already passed at the pickup location, or that leave less than 3 hours before `location.close_time`, are not returned.' operationId: selfShipCollectionAvailabilityChecks/create parameters: - description: Authorize your API calls with an Arta API token example: ARTA_APIKey s0e1t2e3c4a5s6t7r8o9n10o11m12y in: header name: Authorization required: true schema: type: string x-struct: null x-validate: null requestBody: content: application/json: schema: $ref: '#/components/schemas/SelfShipCollectionAvailabilityCheckCreate' required: false responses: '200': content: application/json: schema: $ref: '#/components/schemas/SelfShipCollectionAvailabilityCheck' description: Available pickup slots for the given parameters headers: content-type: example: application/json schema: type: string x-struct: null x-validate: null style: simple x-arta-request-id: description: A unique identifier for the Arta API call example: FkBjuxbwLLTx4RoAARkx schema: type: string x-struct: null x-validate: null style: simple '400': content: application/json: schema: example: errors: - Only UK and US are supported for DHL self-ship collections properties: errors: description: Human-readable error messages that apply to the request as a whole items: type: string x-struct: null x-validate: null type: array x-struct: null x-validate: null required: - errors title: SelfShipCollectionErrorList type: object x-struct: null x-validate: null description: Availability could not be checked, for example because the pickup location is outside the supported countries headers: content-type: example: application/json schema: type: string x-struct: null x-validate: null style: simple x-arta-request-id: description: A unique identifier for the Arta API call example: FkBjuxbwLLTx4RoAARkx schema: type: string x-struct: null x-validate: null style: simple '403': content: application/json: {} description: Forbidden '422': content: application/json: schema: example: errors: service: - Required property route was not present. properties: errors: additionalProperties: items: type: string x-struct: null x-validate: null type: array x-struct: null x-validate: null description: Human-readable error messages keyed by the path of the offending field, for example `location/region` or `service/carrier`. Messages that apply to the request as a whole are keyed by `#`. type: object x-struct: null x-validate: null required: - errors title: SelfShipCollectionFieldErrors type: object x-struct: null x-validate: null description: The request body failed validation headers: content-type: example: application/json schema: type: string x-struct: null x-validate: null style: simple x-arta-request-id: description: A unique identifier for the Arta API call example: FkBjuxbwLLTx4RoAARkx schema: type: string x-struct: null x-validate: null style: simple summary: Check Self-Ship Collection Availability tags: - self_ship_collections /self_ship_collections: get: callbacks: {} deprecated: false description: '**Availability: Public Preview** _This endpoint is currently in public preview and available only to approved accounts._ _Please contact Arta to request access for your organization._ Retrieve a paginated collection of self-ship collection records belonging to your organization, sorted by most recent first' operationId: selfShipCollections/list parameters: - description: Authorize your API calls with an Arta API token example: ARTA_APIKey s0e1t2e3c4a5s6t7r8o9n10o11m12y in: header name: Authorization required: true schema: type: string x-struct: null x-validate: null - description: Page number of the results to fetch. in: query name: page schema: default: 1 type: integer x-struct: null x-validate: null - description: Results per page (max 50) in: query name: page_size schema: default: 20 type: integer x-struct: null x-validate: null - description: An optional sort order for the returned collection. in: query name: sort required: false schema: enum: - created_at_asc - created_at_desc - updated_at_asc - updated_at_desc type: string x-struct: null x-validate: null responses: '200': content: application/json: schema: properties: items: items: $ref: '#/components/schemas/SelfShipCollection' type: array x-struct: null x-validate: null metadata: properties: page: example: 1 format: int64 readOnly: true type: integer x-struct: null x-validate: null page_size: example: 20 format: int64 readOnly: true type: integer x-struct: null x-validate: null total_count: example: 1 format: int64 readOnly: true type: integer x-struct: null x-validate: null type: object x-struct: null x-validate: null type: object x-struct: null x-validate: null description: A collection of Self-Ship Collection records headers: content-type: example: application/json schema: type: string x-struct: null x-validate: null style: simple x-arta-request-id: description: A unique identifier for the Arta API call example: FkBjuxbwLLTx4RoAARkx schema: type: string x-struct: null x-validate: null style: simple summary: List Self-Ship Collections tags: - self_ship_collections post: callbacks: {} deprecated: false description: '**Availability: Public Preview** _This endpoint is currently in public preview and available only to approved accounts._ _Please contact Arta to request access for your organization._ Schedule a carrier pickup for a self-ship shipment with FedEx or DHL. Self-ship collections are available for pickup locations in the US and UK. **FedEx collections** (`service.carrier: "fedex"`) are scheduled as FedEx Ground or FedEx Express according to `service.code`. An optional package summary may be provided in `service.package_details` for `express` collections, and `location.package_location` tells the driver where to find the packages. FedEx collections cannot be cancelled through the API. **DHL collections** (`service.carrier: "dhl"`) are always scheduled with the DHL Express service, so `service.code` must be `express`. They require per-package dimensions and weight in `service.package_details`, and `location.close_time` must be at least 3 hours after `collection_time`. An `international` collection is subject to customs and requires `service.declared_value` and `service.declared_value_currency`; `domestic` collections may omit them. DHL collections can be cancelled with the cancel endpoint.' operationId: selfShipCollections/create parameters: - description: Authorize your API calls with an Arta API token example: ARTA_APIKey s0e1t2e3c4a5s6t7r8o9n10o11m12y in: header name: Authorization required: true schema: type: string x-struct: null x-validate: null requestBody: content: application/json: schema: $ref: '#/components/schemas/SelfShipCollectionCreate' required: false responses: '201': content: application/json: schema: $ref: '#/components/schemas/SelfShipCollection' description: The created self-ship collection headers: content-type: example: application/json schema: type: string x-struct: null x-validate: null style: simple x-arta-request-id: description: A unique identifier for the Arta API call example: FkBjuxbwLLTx4RoAARkx schema: type: string x-struct: null x-validate: null style: simple '400': content: application/json: schema: example: errors: - service.declared_value is required for international DHL collections - service.declared_value_currency is required for international DHL collections properties: errors: description: Human-readable error messages that apply to the request as a whole items: type: string x-struct: null x-validate: null type: array x-struct: null x-validate: null required: - errors title: SelfShipCollectionErrorList type: object x-struct: null x-validate: null description: 'The collection could not be scheduled: the pickup location is outside the supported countries, a carrier-specific requirement was not met, or the carrier rejected the collection.' headers: content-type: example: application/json schema: type: string x-struct: null x-validate: null style: simple x-arta-request-id: description: A unique identifier for the Arta API call example: FkBjuxbwLLTx4RoAARkx schema: type: string x-struct: null x-validate: null style: simple '403': content: application/json: {} description: Forbidden '422': content: application/json: schema: oneOf: - example: errors: location/close_time: - must be at least 3 hours after collection_time properties: errors: additionalProperties: items: type: string x-struct: null x-validate: null type: array x-struct: null x-validate: null description: Human-readable error messages keyed by the path of the offending field, for example `location/region` or `service/carrier`. Messages that apply to the request as a whole are keyed by `#`. type: object x-struct: null x-validate: null required: - errors title: SelfShipCollectionFieldErrors type: object x-struct: null x-validate: null - example: errors: - service.package_details.packages[0].weight must be a number properties: errors: description: Human-readable error messages that apply to the request as a whole items: type: string x-struct: null x-validate: null type: array x-struct: null x-validate: null required: - errors title: SelfShipCollectionErrorList type: object x-struct: null x-validate: null title: SelfShipCollectionValidationErrors x-struct: null x-validate: null description: The request body failed validation. Errors are keyed by the offending field path; invalid package measurement values are returned as a flat list. headers: content-type: example: application/json schema: type: string x-struct: null x-validate: null style: simple x-arta-request-id: description: A unique identifier for the Arta API call example: FkBjuxbwLLTx4RoAARkx schema: type: string x-struct: null x-validate: null style: simple summary: Create a Self-Ship Collection tags: - self_ship_collections /self_ship_collections/{self_ship_collection_id}: get: callbacks: {} deprecated: false description: '**Availability: Public Preview** _This endpoint is currently in public preview and available only to approved accounts._ _Please contact Arta to request access for your organization._ Retrieve an existing self-ship collection by its ID' operationId: selfShipCollections/get parameters: - description: Authorize your API calls with an Arta API token example: ARTA_APIKey s0e1t2e3c4a5s6t7r8o9n10o11m12y in: header name: Authorization required: true schema: type: string x-struct: null x-validate: null - description: self_ship_collection_id parameter in: path name: self_ship_collection_id required: true schema: type: string x-struct: null x-validate: null responses: '200': content: application/json: schema: $ref: '#/components/schemas/SelfShipCollection' description: Successful Self-Ship Collection response headers: content-type: example: application/json schema: type: string x-struct: null x-validate: null style: simple x-arta-request-id: description: A unique identifier for the Arta API call example: FkBjuxbwLLTx4RoAARkx schema: type: string x-struct: null x-validate: null style: simple '404': content: application/json: schema: properties: errors: properties: detail: example: string type: string x-struct: null x-validate: null type: object x-struct: null x-validate: null title: NotFound type: object x-struct: null x-validate: null description: Not Found headers: content-type: example: application/json schema: type: string x-struct: null x-validate: null style: simple x-arta-request-id: description: A unique identifier for the Arta API call example: FkBjuxbwLLTx4RoAARkx schema: type: string x-struct: null x-validate: null style: simple summary: Get a Self-Ship Collection tags: - self_ship_collections /self_ship_collections/{self_ship_collection_id}/cancel: patch: callbacks: {} deprecated: false description: '**Availability: Public Preview** _This endpoint is currently in public preview and available only to approved accounts._ _Please contact Arta to request access for your organization._ Cancel a scheduled self-ship collection. The collection''s `status` becomes `cancelled`. Cancellation through the API is currently supported for DHL collections only; attempting to cancel a FedEx collection returns a `422` with `{"errors": {"#": ["Only DHL collections can be cancelled"]}}`. If the carrier rejects the cancellation, the carrier''s error messages are returned in a `400` response under `#`.' operationId: selfShipCollections/cancel parameters: - description: Authorize your API calls with an Arta API token example: ARTA_APIKey s0e1t2e3c4a5s6t7r8o9n10o11m12y in: header name: Authorization required: true schema: type: string x-struct: null x-validate: null - description: self_ship_collection_id parameter in: path name: self_ship_collection_id required: true schema: type: string x-struct: null x-validate: null responses: '200': content: application/json: schema: $ref: '#/components/schemas/SelfShipCollection' description: The cancelled self-ship collection headers: content-type: example: application/json schema: type: string x-struct: null x-validate: null style: simple x-arta-request-id: description: A unique identifier for the Arta API call example: FkBjuxbwLLTx4RoAARkx schema: type: string x-struct: null x-validate: null style: simple '400': content: application/json: schema: example: errors: '#': - The carrier rejected the request (HTTP 400) properties: errors: additionalProperties: items: type: string x-struct: null x-validate: null type: array x-struct: null x-validate: null description: Human-readable error messages keyed by the path of the offending field, for example `location/region` or `service/carrier`. Messages that apply to the request as a whole are keyed by `#`. type: object x-struct: null x-validate: null required: - errors title: SelfShipCollectionFieldErrors type: object x-struct: null x-validate: null description: The carrier rejected the cancellation. The carrier's messages are returned under `#`. headers: content-type: example: application/json schema: type: string x-struct: null x-validate: null style: simple x-arta-request-id: description: A unique identifier for the Arta API call example: FkBjuxbwLLTx4RoAARkx schema: type: string x-struct: null x-validate: null style: simple '403': content: application/json: {} description: Forbidden '404': content: application/json: schema: properties: errors: properties: detail: example: string type: string x-struct: null x-validate: null type: object x-struct: null x-validate: null title: NotFound type: object x-struct: null x-validate: null description: Not Found headers: content-type: example: application/json schema: type: string x-struct: null x-validate: null style: simple x-arta-request-id: description: A unique identifier for the Arta API call example: FkBjuxbwLLTx4RoAARkx schema: type: string x-struct: null x-validate: null style: simple '422': content: application/json: schema: example: errors: '#': - Only DHL collections can be cancelled properties: errors: additionalProperties: items: type: string x-struct: null x-validate: null type: array x-struct: null x-validate: null description: Human-readable error messages keyed by the path of the offending field, for example `location/region` or `service/carrier`. Messages that apply to the request as a whole are keyed by `#`. type: object x-struct: null x-validate: null required: - errors title: SelfShipCollectionFieldErrors type: object x-struct: null x-validate: null description: The collection cannot be cancelled through the API. Only DHL collections can be cancelled. headers: content-type: example: application/json schema: type: string x-struct: null x-validate: null style: simple x-arta-request-id: description: A unique identifier for the Arta API call example: FkBjuxbwLLTx4RoAARkx schema: type: string x-struct: null x-validate: null style: simple summary: Cancel a Self-Ship Collection tags: - self_ship_collections components: schemas: DhlSelfShipCollectionPayload: additionalProperties: false description: Schedule a DHL collection properties: self_ship_collection: properties: collection_date: description: Pickup date in ISO 8601 format (`YYYY-MM-DD`). Must be in the future. example: '2026-03-06' format: date type: string x-struct: null x-validate: null collection_time: description: Pickup time in ISO 8601 format (`HH:MM:SS`). Must be before `location.close_time`. example: '10:00:00' type: string x-struct: null x-validate: null location: description: Pickup location details properties: address_line_1: description: Street address example: 123 Main St minLength: 1 type: string x-struct: null x-validate: null address_line_2: description: Additional address info nullable: true type: string x-struct: null x-validate: null city: description: City example: New York minLength: 1 type: string x-struct: null x-validate: null close_time: description: Location closing time in ISO 8601 format (`HH:MM:SS`). Must be at least 3 hours after `collection_time`. example: '17:00:00' type: string x-struct: null x-validate: null contact: description: Contact at the pickup location properties: email_address: description: Contact email address example: john@example.com nullable: true type: string x-struct: null x-validate: null name: description: Contact name example: John Doe type: string x-struct: null x-validate: null phone_number: description: Contact phone number example: +1-555-123-4567 type: string x-struct: null x-validate: null required: - name - phone_number type: object x-struct: null x-validate: null country: description: Two-letter country code. Currently `US` and `GB` are supported. example: US type: string x-struct: null x-validate: null postal_code: description: Postal code example: '10001' minLength: 1 type: string x-struct: null x-validate: null region: description: State or territory code. Required for `US` addresses and must be a valid US state or territory code; may be an empty string for `GB` addresses. example: NY type: string x-struct: null x-validate: null required: - address_line_1 - city - country - region - postal_code - close_time - contact type: object x-struct: null x-validate: null service: description: Carrier service details properties: carrier: description: Carrier identifier enum: - dhl type: string x-struct: null x-validate: null code: description: Service level code. Must be `express`. enum: - express type: string x-struct: null x-validate: null declared_value: description: Declared value of the collected packages, as a decimal string. Required when `route` is `international`; optional for `domestic` collections. Must be provided together with `declared_value_currency`. example: '500.00' pattern: ^(0|([1-9]+[0-9]*))(\.[0-9]{1,2})?$ title: MonetaryAmount type: string x-struct: null x-validate: null declared_value_currency: description: ISO 4217 three-letter currency code for `declared_value`. Options are defined in the [Currencies metadata endpoint](https://api-reference.arta.io/operation/operation-metadata-currencies). Required whenever `declared_value` is provided. example: USD maxLength: 3 minLength: 3 pattern: ^[A-Z]{3}$ title: Currency type: string x-struct: null x-validate: null package_details: description: The packages to be collected, one entry per package. All packages must share the same units, and the unit pair must be either `in` + `lb` or `cm` + `kg`. example: packages: - depth: '12' height: '8' unit_of_measurement: in weight: '5.5' weight_unit: lb width: '10' properties: packages: description: The packages included in the collection. Must contain at least one package. Dimensions and weight are numeric strings (for example `"12"` or `"12.5"`), following the same convention as `request.objects`; a value that cannot be parsed as a number is rejected with a `422`. items: properties: depth: description: Package depth example: '12' type: string x-struct: null x-validate: null height: description: Package height example: '8' type: string x-struct: null x-validate: null unit_of_measurement: description: Unit for `depth`, `height`, and `width`. Must be `in` when `weight_unit` is `lb`, or `cm` when `weight_unit` is `kg`. enum: - in - cm example: in type: string x-struct: null x-validate: null weight: description: Package weight example: '5.5' type: string x-struct: null x-validate: null weight_unit: description: Unit for `weight`. Must be `lb` when `unit_of_measurement` is `in`, or `kg` when it is `cm`. enum: - lb - kg example: lb type: string x-struct: null x-validate: null width: description: Package width example: '10' type: string x-struct: null x-validate: null required: - depth - height - width - unit_of_measurement - weight - weight_unit title: DhlPackage type: object x-struct: null x-validate: null minItems: 1 type: array x-struct: null x-validate: null required: - packages title: DhlPackageDetails type: object x-struct: null x-validate: null route: description: Route type. `international` for cross-border collections, `domestic` otherwise. An `international` collection is subject to customs and requires `declared_value` and `declared_value_currency`. enum: - domestic - international type: string x-struct: null x-validate: null required: - carrier - code - route - package_details type: object x-struct: null x-validate: null required: - location - service - collection_date - collection_time type: object x-struct: null x-validate: null required: - self_ship_collection title: DhlSelfShipCollectionPayload type: object x-struct: Elixir.DocsWeb.Schemas.RequestBody.SelfShipCollectionCreateDhl x-validate: null SelfShipCollectionAvailabilityCheck: example: availabilities: - collection_date: '2026-03-06' collection_times: - 07:00:00 - 07:30:00 - 08:00:00 residential_available: true collection_date: '2026-03-06' location: address_line_1: 123 Main St city: New York close_time: '17:00:00' country: US postal_code: '10001' region: NY service: carrier: fedex code: ground route: domestic properties: availabilities: description: Available pickup slots. May be empty if no slots are available. items: properties: collection_date: description: Available pickup date (`YYYY-MM-DD`) example: '2026-03-06' format: date type: string x-struct: null x-validate: null collection_times: description: Available pickup times in ISO 8601 format (`HH:MM:SS`) items: example: 07:00:00 type: string x-struct: null x-validate: null type: array x-struct: null x-validate: null residential_available: description: Whether residential pickup is available type: boolean x-struct: null x-validate: null type: object x-struct: null x-validate: null type: array x-struct: null x-validate: null collection_date: description: The date that was checked for availability (`YYYY-MM-DD`) example: '2026-03-06' format: date type: string x-struct: null x-validate: null location: description: The pickup location that was checked properties: address_line_1: description: Street address type: string x-struct: null x-validate: null address_line_2: description: Additional address info nullable: true type: string x-struct: null x-validate: null city: description: City type: string x-struct: null x-validate: null close_time: description: Location closing time in ISO 8601 format (`HH:MM:SS`) example: '17:00:00' type: string x-struct: null x-validate: null country: description: Two-letter country code example: US type: string x-struct: null x-validate: null postal_code: description: Postal code type: string x-struct: null x-validate: null region: description: State or province code example: NY type: string x-struct: null x-validate: null type: object x-struct: null x-validate: null service: description: The carrier service that was checked properties: carrier: description: Carrier identifier enum: - fedex - dhl type: string x-struct: null x-validate: null code: description: Service level code enum: - ground - express type: string x-struct: null x-validate: null route: description: Route type enum: - domestic - international type: string x-struct: null x-validate: null type: object x-struct: null x-validate: null title: SelfShipCollectionAvailabilityCheck type: object x-struct: Elixir.DocsWeb.Schemas.Response.SelfShipCollectionAvailabilityCheck x-validate: null SelfShipCollection: example: closed_at: null collection_date: '2026-03-06' collection_time: '10:00:00' created_at: '2026-03-01T12:00:00.000000' id: 550e8400-e29b-41d4-a716-446655440000 location: address_line_1: 123 Main St address_line_2: null city: New York close_time: '17:00:00' contact: email_address: john@example.com name: John Doe phone_number: +1-555-123-4567 country: US package_location: none postal_code: '10001' region: NY service: carrier: dhl code: express declared_value: '500.00' declared_value_currency: USD package_details: packages: - depth: '12' height: '8' unit_of_measurement: in weight: '5.5' weight_unit: lb width: '10' route: international shortcode: ACME-S3GP24 status: scheduled updated_at: '2026-03-01T12:00:00.000000' properties: closed_at: description: A NaiveDatetime-formatted timestamp describing when the collection was closed nullable: true type: string x-struct: null x-validate: null collection_date: description: The pickup date in ISO 8601 format (`YYYY-MM-DD`). example: '2026-03-06' format: date type: string x-struct: null x-validate: null collection_time: description: The pickup time in ISO 8601 format (`HH:MM:SS`). example: '10:00:00' type: string x-struct: null x-validate: null created_at: description: A NaiveDatetime-formatted timestamp describing when the resource was created with microsecond precision example: '2026-03-01T12:00:00.000000' type: string x-struct: null x-validate: null id: description: The ID of the self-ship collection in UUID format format: uuid type: string x-struct: null x-validate: null location: description: The pickup location details properties: address_line_1: description: Street address type: string x-struct: null x-validate: null address_line_2: description: Additional address info nullable: true type: string x-struct: null x-validate: null city: description: City type: string x-struct: null x-validate: null close_time: description: Location closing time in ISO 8601 format (`HH:MM:SS`) example: '17:00:00' type: string x-struct: null x-validate: null contact: description: Contact at the pickup location properties: email_address: description: Contact email address type: string x-struct: null x-validate: null name: description: Contact name type: string x-struct: null x-validate: null phone_number: description: Contact phone number type: string x-struct: null x-validate: null type: object x-struct: null x-validate: null country: description: Two-letter country code example: US type: string x-struct: null x-validate: null package_location: description: 'Where packages are located at the pickup location: the `front`, `rear`, or `side` of the building, or `none` when not specified. Always `none` for DHL collections.' enum: - front - none - rear - side type: string x-struct: null x-validate: null postal_code: description: Postal code type: string x-struct: null x-validate: null region: description: State or province code example: NY type: string x-struct: null x-validate: null type: object x-struct: null x-validate: null service: description: Carrier service details properties: carrier: description: Carrier identifier enum: - fedex - dhl type: string x-struct: null x-validate: null code: description: Service level code enum: - express - ground type: string x-struct: null x-validate: null declared_value: description: Declared value of the collected packages, as a decimal string. `null` when no declared value was provided. example: '500.00' nullable: true type: string x-struct: null x-validate: null declared_value_currency: description: ISO 4217 three-letter code for `declared_value`. An empty string when no declared value was provided. example: USD type: string x-struct: null x-validate: null package_details: description: The packages the collection was booked with, echoed back in the shape they were submitted. `null` for FedEx collections. nullable: true properties: packages: description: The packages included in the collection, one entry per package. Dimensions and weight are decimal strings, and every package shares the same `unit_of_measurement` and `weight_unit`. items: properties: depth: description: Package depth example: '12' type: string x-struct: null x-validate: null height: description: Package height example: '8' type: string x-struct: null x-validate: null unit_of_measurement: description: Unit for `depth`, `height`, and `width` enum: - in - cm example: in type: string x-struct: null x-validate: null weight: description: Package weight example: '5.5' type: string x-struct: null x-validate: null weight_unit: description: Unit for `weight` enum: - lb - kg example: lb type: string x-struct: null x-validate: null width: description: Package width example: '10' type: string x-struct: null x-validate: null type: object x-struct: null x-validate: null type: array x-struct: null x-validate: null type: object x-struct: null x-validate: null route: description: Route type enum: - domestic - international type: string x-struct: null x-validate: null type: object x-struct: null x-validate: null shortcode: description: A human-readable identifier for the collection, formatted as the organization's shortcode followed by a hyphen and six alphanumeric characters example: ACME-S3GP24 pattern: ^[A-Z]+-[A-Z0-9]{6}$ type: string x-struct: null x-validate: null status: description: The current status of the collection enum: - scheduled - closed - cancelled - incomplete example: scheduled type: string x-struct: null x-validate: null updated_at: description: A NaiveDatetime-formatted timestamp describing when the resource was last updated with microsecond precision example: '2026-03-01T12:00:00.000000' type: string x-struct: null x-validate: null title: SelfShipCollection type: object x-struct: Elixir.DocsWeb.Schemas.Response.SelfShipCollection x-validate: null SelfShipCollectionCreate: description: The payload for scheduling a self-ship collection. The expected shape depends on `service.carrier`. oneOf: - $ref: '#/components/schemas/FedexSelfShipCollectionPayload' - $ref: '#/components/schemas/DhlSelfShipCollectionPayload' title: SelfShipCollectionCreate x-struct: Elixir.DocsWeb.Schemas.RequestBody.SelfShipCollectionCreate x-validate: null FedexSelfShipCollectionPayload: additionalProperties: false description: Schedule a FedEx collection properties: self_ship_collection: properties: collection_date: description: Pickup date in ISO 8601 format (`YYYY-MM-DD`). Must be in the future. example: '2026-03-06' format: date type: string x-struct: null x-validate: null collection_time: description: Pickup time in ISO 8601 format (`HH:MM:SS`). Must be before `location.close_time`. example: '10:00:00' type: string x-struct: null x-validate: null location: description: Pickup location details properties: address_line_1: description: Street address example: 123 Main St minLength: 1 type: string x-struct: null x-validate: null address_line_2: description: Additional address info nullable: true type: string x-struct: null x-validate: null city: description: City example: New York minLength: 1 type: string x-struct: null x-validate: null close_time: description: Location closing time in ISO 8601 format (`HH:MM:SS`). Must be after `collection_time`. example: '17:00:00' type: string x-struct: null x-validate: null contact: description: Contact at the pickup location properties: email_address: description: Contact email address example: john@example.com nullable: true type: string x-struct: null x-validate: null name: description: Contact name example: John Doe type: string x-struct: null x-validate: null phone_number: description: Contact phone number example: +1-555-123-4567 type: string x-struct: null x-validate: null required: - name - phone_number type: object x-struct: null x-validate: null country: description: Two-letter country code. Currently `US` and `GB` are supported. example: US type: string x-struct: null x-validate: null package_location: default: none description: Where packages are located at the pickup location enum: - front - none - rear - side type: string x-struct: null x-validate: null postal_code: description: Postal code example: '10001' minLength: 1 type: string x-struct: null x-validate: null region: description: State or territory code. Required for `US` addresses and must be a valid US state or territory code; may be an empty string for `GB` addresses. example: NY type: string x-struct: null x-validate: null required: - address_line_1 - city - country - region - postal_code - close_time - contact type: object x-struct: null x-validate: null service: description: Carrier service details properties: carrier: description: Carrier identifier enum: - fedex type: string x-struct: null x-validate: null code: description: Service level code. `ground` schedules a FedEx Ground collection; `express` schedules a FedEx Express collection. enum: - express - ground type: string x-struct: null x-validate: null package_details: description: An optional summary of the packages to be collected, used for `express` collections. Provide `package_count`, `total_weight`, and `total_weight_unit` together; a partial summary, or one whose values cannot be parsed, is ignored rather than rejected. example: package_count: 3 total_weight: '15.5' total_weight_unit: lb properties: package_count: description: Total number of packages in the collection example: 3 minimum: 0 type: integer x-struct: null x-validate: null total_weight: description: Combined weight of all packages example: '15.5' type: string x-struct: null x-validate: null total_weight_unit: description: Unit for `total_weight` enum: - lb - kg example: lb type: string x-struct: null x-validate: null title: FedexPackageDetails type: object x-struct: null x-validate: null route: description: Route type. `international` for cross-border collections, `domestic` otherwise. enum: - domestic - international type: string x-struct: null x-validate: null required: - carrier - code - route type: object x-struct: null x-validate: null required: - location - service - collection_date - collection_time type: object x-struct: null x-validate: null required: - self_ship_collection title: FedexSelfShipCollectionPayload type: object x-struct: Elixir.DocsWeb.Schemas.RequestBody.SelfShipCollectionCreateFedex x-validate: null SelfShipCollectionAvailabilityCheckCreate: additionalProperties: false properties: self_ship_collection_availability_check: properties: collection_date: description: Date to check availability for in ISO 8601 format (`YYYY-MM-DD`) example: '2026-03-06' format: date type: string x-struct: null x-validate: null location: description: Pickup location to check availability for properties: address_line_1: description: Street address example: 123 Main St minLength: 1 type: string x-struct: null x-validate: null address_line_2: description: Additional address info nullable: true type: string x-struct: null x-validate: null city: description: City example: New York minLength: 1 type: string x-struct: null x-validate: null close_time: description: Location closing time in ISO 8601 format (`HH:MM:SS`) example: '17:00:00' type: string x-struct: null x-validate: null country: description: Two-letter country code. Currently `US` and `GB` are supported. example: US maxLength: 2 minLength: 2 type: string x-struct: null x-validate: null postal_code: description: Postal code example: '10001' minLength: 1 type: string x-struct: null x-validate: null region: description: State or territory code. Required for `US` addresses and must be a valid US state or territory code; may be omitted for `GB` addresses. example: NY type: string x-struct: null x-validate: null required: - address_line_1 - city - country - postal_code - close_time type: object x-struct: null x-validate: null service: description: Carrier service to check availability for properties: carrier: description: Carrier identifier. `fedex` and `dhl` are supported. enum: - fedex - dhl type: string x-struct: null x-validate: null code: description: Service level code enum: - ground - express type: string x-struct: null x-validate: null route: description: Route type. enum: - domestic - international type: string x-struct: null x-validate: null required: - carrier - code - route type: object x-struct: null x-validate: null required: - location - service - collection_date type: object x-struct: null x-validate: null required: - self_ship_collection_availability_check title: SelfShipCollectionAvailabilityCheckCreate type: object x-struct: Elixir.DocsWeb.Schemas.RequestBody.SelfShipCollectionAvailabilityCheckCreate x-validate: null x-topics: - content: 'The Arta API accepts server-to-server communications authenticated by API keys. Your API keys are self-managed and unique to your organization. Using your API key to authenticate an API call is straightforward. Simply include your API Key token in the Authorization header of every call made to the system. This is the only place that it is accepted.' example: "```shell\n\n$ curl \\ \n\n -X GET https://api.arta.io/shipments \\ \n\n -H \"Authorization: ARTA_APIKey s0e1t2e3c4a5s6t7r8o9n10o11m12y\"" title: Authentication - content: "Arta imposes rate limits on API requests to maintain system stability and ensure fair usage. If you exceed these limits, the API will return a `429 Too Many Requests` error. Below are the rate limits for both Live and Test modes.\n\n**Live Mode:**\n\n*\tConcurrent requests: 15 API calls at the same time (any type)\n* Instant quote requests: 20 calls per minute\n* Overall requests: 1000 API calls per minute (any type)\n\n**Test Mode:**\n\n* Concurrent requests: 10 API calls at the same time (any type)\n* Instant quote requests: 10 calls per minute\n* Overall requests: 500 API calls per minute (any type)\n\nWhen a rate limit is exceeded, we recommend implementing retry logic with exponential backoff to handle 429 errors effectively." title: Rate Limits - content: 'The Arta API supports flexible search functionality across multiple resources, including Shipments, Requests, Hosted Sessions, Tags, and others. Using the search query parameter, you can construct structured queries to filter results based on specific criteria. Key features of the search functionality include: * Support for negation, wildcards, numeric filters, and date comparisons. * Each search query consists of one or more clauses, where each clause contains a `field`, an operator, and a `value`. * Clauses operating on the same field are combined using OR logic, while clauses across different fields are combined using AND logic. * Use quotation marks to keep multi-word search terms together. This allows for powerful and precise filtering to retrieve the exact data you need from the API. **Syntax and operators** The following table lists the operators and syntax that you can use to construct a search query clause. | Operator | Usage | Description | Examples | |------------|--------------------------------|-----------------------------------------------------------------------------|---------------------------------------------------------------------| | `:` | `field:value` | Exact match operator (case insensitive) | `status:pending` returns records where the status is `pending` | | `*` | `value*` | Use an asterisk (wildcard operator) at the end of a term to match fields that start with the fragment | `art*` returns records that match "arta" and "artist" but not "smart" | | `*` | `*value` | Use an asterisk at the start of a term to match fields that end with the fragment | `*art` returns "smart" but not "martian" | | `-` | `-field:value` | Returns records that don’t match the clause | `-status:pending` returns records that do not have a status of pending | | `>, <, =` | `field:value`, `field:>=value`, `field:<=value` | Greater than/less than operators | `created-at:<=2021-01-01` returns records from the beginning of time through January 1, 2021 | | `..` | `field:value1..value2` | Filters for values within a given range where the first number is the lowest value and the second is the highest | `created-at:2021-05-01..2021-05-15` returns records where the `created_at` field is between May 1, 2021 and May 15, 2021 | **Hosted Session search fields** | Field | Type | |------------|--------------| | `created-at` | date | | `destination-address-line-1` | string | | `destination-city` | string | | `destination-contacts-emails` | string | | `destination-contacts-names` | string | | `destination-contacts-phone-numbers` | string | | `destination-country` | string | | `destination-postal-code` | string | | `destination-region` | string | | `insurance` | string | | `internal-reference` | string | | `object-creators` | string | | `object-descriptions` | string | | `object-internal-references` | string | | `object-public-references` | string | | `object-titles` | string | | `origin-address-line-1` | string | | `origin-city` | string | | `origin-contacts-emails` | string | | `origin-contacts-names` | string | | `origin-contacts-phone-numbers` | string | | `origin-country` | string | | `origin-postal-code` | string | | `origin-region` | string | | `public-reference` | string | | `quote-type` | string | | `shipping-notes` | string | | `shortcode` | string | | `status` | string | | `type` | string | | `tags` | string | **Request search fields** | Field | Type | |------------|--------------| | `bookable` | string | | `created-at` | date | | `destination-address-line-1` | string | | `destination-city` | string | | `destination-contacts-emails` | string | | `destination-contacts-names` | string | | `destination-contacts-phone-numbers` | string | | `destination-country` | string | | `destination-postal-code` | string | | `destination-region` | string | | `hosted-session` | string | | `internal-reference` | string | | `object-creators` | string | | `object-descriptions` | string | | `object-internal-references` | string | | `object-public-references` | string | | `object-titles` | string | | `origin-address-line-1` | string | | `origin-city` | string | | `origin-contacts-emails` | string | | `origin-contacts-names` | string | | `origin-contacts-phone-numbers` | string | | `origin-country` | string | | `origin-postal-code` | string | | `origin-region` | string | | `public-reference` | string | | `quote-type` | string | | `shipping-notes` | string | | `shortcode` | string | | `status` | string | | `tags` | string | **Shipment search fields** | Field | Type | |------------|--------------| | `created-at` | date | | `destination-address-line-1` | string | | `destination-city` | string | | `destination-contacts-emails` | string | | `destination-contacts-names` | string | | `destination-contacts-phone-numbers` | string | | `destination-country` | string | | `destination-postal-code` | string | | `destination-region` | string | | `eei-form-status` | string | | `hosted-session` | string | | `internal-reference` | string | | `object-creators` | string | | `object-descriptions` | string | | `object-internal-references` | string | | `object-public-references` | string | | `object-titles` | string | | `origin-address-line-1` | string | | `origin-city` | string | | `origin-contacts-emails` | string | | `origin-contacts-names` | string | | `origin-contacts-phone-numbers` | string | | `origin-country` | string | | `origin-postal-code` | string | | `origin-region` | string | | `public-reference` | string | | `quote-type` | string | | `request-shortcode` | string | | `shipping-notes` | string | | `shortcode` | string | | `status` | string | | `tags` | string | | `total` | numeric | | `total-currency` | string | | `tracking-numbers` | string | **Tag search fields** | Field | Type | |------------|--------------| | `color` | string | | `description` | string | | `is_active` | string | | `name` | string | ' title: Search