---
title: "Get bulk purchase status"
method: GET
path: "/v1/purchases/bulk/{purchase_id}"
tags: ["Purchases"]
---

# Get bulk purchase status

`GET /v1/purchases/bulk/{purchase_id}`

## Request

- Base URL: `https://api.getmytg.com`
- URL: `https://api.getmytg.com/v1/purchases/bulk/{purchase_id}`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

Returns the status of a bulk purchase, including details and link to download archive.

## Path parameters

- `purchase_id` integer, required: Unique purchase identifier.

## Response `200`

Response for status 200

- object
  - `bulk_purchase_id` integer, required: Unique ID of the bulk purchase request
  - `country_code` string, required: ISO 3166-1 alpha-2 country code.
  - `quantity` integer, required: Number of accounts in this purchase
  - `total_price` object, required: Total price for all accounts
    - `amount` string, required: Monetary amount as a string with up to 2 decimal places.
    - `currency_code` string, required: ISO 4217 currency code.
  - `price_per_account` object, required: Price of a single account
    - `amount` string, required: Monetary amount as a string with up to 2 decimal places.
    - `currency_code` string, required: ISO 4217 currency code.
  - `item` object, nullable, required: Archive data (only populated when status is SUCCESS)
    - `export_id` string, required: Archive/export ID with sessions
    - `archive_url` string, required: Path or URL to download the archive with accounts
    - `quantity` integer, required: Number of accounts in the archive
    - `status` 'PENDING' | 'SUCCESS' | 'ERROR' | 'REFUND' | 'EXPIRED', required: Status of bulk purchase
    - `created_at` string, required: Bulk purchase creation timestamp
  - `status` 'PENDING' | 'SUCCESS' | 'ERROR' | 'REFUND' | 'EXPIRED', required: Current status of bulk purchase
  - `created_at` string, required: Bulk purchase creation timestamp
  - `updated_at` string, required: Last update timestamp

## Other responses

- `400`: Response for status 400
- `401`: Response for status 401
- `403`: Response for status 403
- `404`: Response for status 404
- `429`: Response for status 429
- `500`: Internal server error

## Changes

- **2026-11-03** `aa3ff24cbee2`: 1 breaking, 4 warning, 6 info
  - for the `path` request parameter `purchase_id`, the type changed from `string` to `integer`
  - for the `path` request parameter `purchase_id`, the max was set to `9007199254740991.00`
  - for the `path` request parameter `purchase_id`, the min was set to `1.00`
  - added the new `EXPIRED` enum value to the `item/status` response property for the response status `200`
  - …7 more

[Operation history](https://skmtc.dev/getmytg/apis/get-my-tg-api/changes/v1/purchases/bulk/:purchase_id/get.md)

---

[API](https://skmtc.dev/getmytg/apis/get-my-tg-api.md) - [All operations](https://skmtc.dev/getmytg/apis/get-my-tg-api/llms.txt) - [OpenAPI document](https://skmtc.dev/getmytg/apis/get-my-tg-api/revisions/aa3ff24cbee2?raw)
