Artashippinginc Attachments API

The attachments API from Artashippinginc — 2 operation(s) for attachments.

Operations 4

GET /attachments List Attachments #
POST /attachments Create an Attachment #
GET /attachments/{attachment_id} Retrieve an Attachment #
DELETE /attachments/{attachment_id} Delete an Attachment #

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

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

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

Get an API key

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

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

OpenAPI Specification

artashippinginc-attachments-api-openapi.yml Raw ↑
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 Attachments API
  version: '2021-01-01'
servers:
- url: https://api.arta.io
  variables: {}
security: []
tags:
- name: Attachments
paths:
  /attachments:
    get:
      callbacks: {}
      deprecated: false
      description: Retrieve a paginated collection of Attachment records belonging to your Organization
      operationId: attachments/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/Attachment'
                    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 Attachment 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 Attachments
      tags:
      - Attachments
    post:
      callbacks: {}
      deprecated: false
      description: 'The attachment resource connects uploads on Arta to shipment or request resources. Attached uploads are visible in the Arta Dashobard under the "Documents" tab on the shipment and request detail pages.


        Each upload may be attached to many requests or shipments. Each request or shipment may have many associated uploads.


        To create an attachment via the API you can must send an authenticated request to the `POST /attachments` endpoint with a body that includes one of two different payload schema.


        To attach an upload to a shipment, the attachment payload must include `upload_id` and `shipment_id` attributes. This payload must not include a `request_id` attribute. For example:


        ```json

        {

        "attachment": {

        "shipment_id": "506d79b6-1e5e-4e8c-a266-74658fdaf4ee",

        "upload_id": 5285

        }

        }

        ```


        To attach an upload to a request, the attachment payload must include `upload_id` and `request_id` attributes. This payload must not include a `shipment_id` attribute. For example:


        ```json

        {

        "attachment": {

        "request_id": "506d79b6-1e5e-4e8c-a266-74658fdaf4ee",

        "upload_id": 5285

        }

        }

        ```'
      operationId: attachments/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/AttachmentCreate'
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
          description: The created attachment
          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:
                properties:
                  errors:
                    properties:
                      detail:
                        example: string
                        type: string
                        x-struct: null
                        x-validate: null
                    type: object
                    x-struct: null
                    x-validate: null
                title: BadRequest
                type: object
                x-struct: null
                x-validate: null
          description: Bad Request
          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 an Attachment
      tags:
      - Attachments
  /attachments/{attachment_id}:
    get:
      callbacks: {}
      deprecated: false
      description: Retrieve an existing Attachment
      operationId: attachments/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: attachment_id parameter
        in: path
        name: attachment_id
        required: true
        schema:
          type: integer
          x-struct: null
          x-validate: null
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
          description: Successful Attachment get 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: Retrieve an Attachment
      tags:
      - Attachments
    delete:
      callbacks: {}
      deprecated: false
      description: Delete an existing Attachment
      operationId: attachments/delete
      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: attachment_id parameter
        in: path
        name: attachment_id
        required: true
        schema:
          type: integer
          x-struct: null
          x-validate: null
      responses:
        '204':
          content:
            application/json: {}
          description: Attachment deleted
          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: Delete an Attachment
      tags:
      - Attachments
components:
  schemas:
    Attachment:
      example:
        created_at: '2021-10-27T16:48:38.657228'
        id: 1942
        request_id: 506d79b6-1e5e-4e8c-a266-74658fdaf4ee
        shipment_id: null
        updated_at: '2021-10-27T16:48:38.657228'
        upload_id: 4791
      properties:
        created_at:
          example: '2021-10-27T16:48:38.657228'
          readOnly: true
          type: string
          x-struct: null
          x-validate: null
        id:
          example: 1942
          readOnly: true
          type: integer
          x-struct: null
          x-validate: null
        request_id:
          description: The string ID of the request resource associated to an upload via this attachment. Null if this attachment associate a shipment
          example: 506d79b6-1e5e-4e8c-a266-74658fdaf4ee
          nullable: true
          type: string
          x-struct: null
          x-validate: null
        shipment_id:
          description: The string ID of the shipment resource associated to an upload via this attachment. Null if this attachment associate a request
          nullable: true
          type: string
          x-struct: null
          x-validate: null
        updated_at:
          example: '2021-10-27T16:48:38.657228'
          readOnly: true
          type: string
          x-struct: null
          x-validate: null
        upload_id:
          description: The integer ID of the Upload resource associated with either a shipment or request via this attachment
          example: 4791
          type: integer
          x-struct: null
          x-validate: null
      required:
      - upload_id
      title: Attachment
      type: object
      x-struct: Elixir.DocsWeb.Schemas.Response.Attachment
      x-validate: null
    AttachmentCreate:
      additionalProperties: false
      example:
        attachment:
          request_id: 506d79b6-1e5e-4e8c-a266-74658fdaf4ee
          upload_id: 4791
      properties:
        attachment:
          properties:
            request_id:
              description: The string ID of the request resource being associated to an upload. Do not include a request_id in the attachment parameters if you are associating a shipment
              example: 506d79b6-1e5e-4e8c-a266-74658fdaf4ee
              type: string
              x-struct: null
              x-validate: null
            shipment_id:
              description: The string ID of the shipment resource being associated to an upload. Do not include a shipment_id in the attachment parameters if you are associating a shipment
              type: string
              x-struct: null
              x-validate: null
            upload_id:
              description: The integer ID of the upload resource being attached
              example: 4791
              type: integer
              x-struct: null
              x-validate: null
          required:
          - upload_id
          type: object
          x-struct: null
          x-validate: null
      required:
      - attachment
      title: AttachmentCreate
      type: object
      x-struct: Elixir.DocsWeb.Schemas.RequestBody.AttachmentCreate
      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`, `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