---
title: "Get a mailbox import"
method: GET
path: "/mailboxes/{id}/imports/{import_id}"
tags: ["Mailboxes"]
---

# Get a mailbox import

`GET /mailboxes/{id}/imports/{import_id}`

## Request

- Base URL: `https://shipmail.to/api/v1`
- URL: `https://shipmail.to/api/v1/mailboxes/{id}/imports/{import_id}`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://shipmail.to/api/auth/oauth2/authorize`, token URL `https://shipmail.to/api/auth/oauth2/token`)

Fetch one import with live progress counters and the per-folder report.

## Path parameters

- `id` string, required
- `import_id` string, required

## Headers

- `X-Shipmail-Organization` string

## Response `200`

The import.

- MailboxImport
  - `object` 'import', required
  - `id` string, required
  - `mailbox_id` string, required
  - `kind` 'imap' | 'file', required
  - `provider` 'gmail' | 'outlook' | 'yahoo' | 'aol' | 'icloud' | 'fastmail' | 'zoho' | 'titan' | 'namecheap' | 'migadu' | 'gmx' | 'mail_com' | 'mailbox_org' | 'mxroute' | 'infomaniak' | 'ovh' | 'gandi' | 'imap' | 'takeout' | 'proton' | 'tuta' | 'file', required
  - `source_address` string, nullable, required
  - `status` 'queued' | 'running' | 'paused_throttle' | 'paused_quota' | 'completed' | 'failed' | 'cancelled' | 'undo_queued' | 'undoing' | 'undone' | 'undo_failed', required: paused_throttle means the source provider's daily download limit was reached; the import resumes automatically at resume_at. paused_quota means the destination mailbox is out of storage.
  - `status_detail` string, nullable, required
  - `error` string, nullable, required
  - `resume_at` string, date-time, nullable, required
  - `counts` object, required
    - `found` integer, required
    - `imported` integer, required
    - `undone` integer, required
    - `duplicates_skipped` integer, required
    - `oversize_skipped` integer, required
    - `failed` integer, required
    - `contacts_imported` integer, required
  - `bytes` object, required
    - `total` integer, required
    - `imported` integer, required
  - `created_at` string, date-time, required
  - `started_at` string, date-time, nullable, required
  - `completed_at` string, date-time, nullable, required
  - `folders` MailboxImportFolder[]: Per-folder progress. Returned by getMailboxImport only.
    - `source_folder` string, required
    - `target_folder` string, nullable, required
    - `role` string, nullable, required
    - `state` 'pending' | 'importing' | 'completed' | 'failed' | 'skipped', required: Transfer state of this source folder. "skipped" means the source server refused the folder; the import finished without it.
    - `found` integer, required
    - `imported` integer, required
    - `duplicates` integer, required
    - `oversize` integer, required
    - `failed` integer, required
  - `source_retention` MailboxImportSourceRetention
    - `state` 'available' | 'missing' | 'expired' | 'deleted' | 'not_applicable', required
    - `expires_at` string, date-time, nullable, required
    - `deleted_at` string, date-time, nullable, required

## Other responses

- `403`: Insufficient permissions.
- `404`: Resource not found.
- `422`: Validation failed.
- `429`: Rate limit exceeded.

---

[API](https://skmtc.dev/shipmail/apis/shipmail-api.md) · [All operations](https://skmtc.dev/shipmail/apis/shipmail-api/llms.txt) · [OpenAPI document](https://skmtc.dev/shipmail/apis/shipmail-api/revisions/2c23e59d7e30?raw)
