--- title: BulkOperation - GraphQL Admin description: >- An asynchronous operation that exports large datasets or imports data in bulk. Create bulk operations using [bulkOperationRunQuery](https://shopify.dev/docs/api/admin-graphql/latest/mutations/bulkOperationRunQuery) to export data or [bulkOperationRunMutation](https://shopify.dev/docs/api/admin-graphql/latest/mutations/bulkOperationRunMutation) to import data. After creation, check the [`status`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation#field-BulkOperation.fields.status) field to track progress. When completed, the [`url`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation#field-BulkOperation.fields.url) field contains a link to download results in [JSONL](http://jsonlines.org/) format. The [`objectCount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation#field-BulkOperation.fields.objectCount) field shows the running total of processed objects, while [`rootObjectCount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation#field-BulkOperation.fields.rootObjectCount) tracks only root-level objects in nested queries. If an operation fails but retrieves partial data, then the [`partialDataUrl`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation#field-BulkOperation.fields.partialDataUrl) field provides access to incomplete results. > Note: `url` and `partialDataUrl` values expire after seven days. Learn more about [exporting](https://shopify.dev/docs/api/usage/bulk-operations/queries) and [importing](https://shopify.dev/docs/api/usage/bulk-operations/imports) data in bulk. api_version: unstable api_name: admin source_url: html: 'https://shopify.dev/docs/api/admin-graphql/unstable/objects/BulkOperation' md: 'https://shopify.dev/docs/api/admin-graphql/unstable/objects/BulkOperation.md' --- # Bulk​Operation object An asynchronous operation that exports large datasets or imports data in bulk. Create bulk operations using [bulkOperationRunQuery](https://shopify.dev/docs/api/admin-graphql/latest/mutations/bulkOperationRunQuery) to export data or [bulkOperationRunMutation](https://shopify.dev/docs/api/admin-graphql/latest/mutations/bulkOperationRunMutation) to import data. After creation, check the [`status`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation#field-BulkOperation.fields.status) field to track progress. When completed, the [`url`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation#field-BulkOperation.fields.url) field contains a link to download results in [JSONL](http://jsonlines.org/) format. The [`objectCount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation#field-BulkOperation.fields.objectCount) field shows the running total of processed objects, while [`rootObjectCount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation#field-BulkOperation.fields.rootObjectCount) tracks only root-level objects in nested queries. If an operation fails but retrieves partial data, then the [`partialDataUrl`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation#field-BulkOperation.fields.partialDataUrl) field provides access to incomplete results. *** Note `url` and `partialDataUrl` values expire after seven days. *** Learn more about [exporting](https://shopify.dev/docs/api/usage/bulk-operations/queries) and [importing](https://shopify.dev/docs/api/usage/bulk-operations/imports) data in bulk. ## Fields * completed​At [Date​Time](https://shopify.dev/docs/api/admin-graphql/unstable/scalars/DateTime) When the bulk operation was successfully completed. * created​At [Date​Time!](https://shopify.dev/docs/api/admin-graphql/unstable/scalars/DateTime) non-null When the bulk operation was created. * error​Code [Bulk​Operation​Error​Code](https://shopify.dev/docs/api/admin-graphql/unstable/enums/BulkOperationErrorCode) Error code for failed operations. * file​Size [Unsigned​Int64](https://shopify.dev/docs/api/admin-graphql/unstable/scalars/UnsignedInt64) File size in bytes of the file in the `url` field. * id [ID!](https://shopify.dev/docs/api/admin-graphql/unstable/scalars/ID) non-null A globally-unique ID. * object​Count [Unsigned​Int64!](https://shopify.dev/docs/api/admin-graphql/unstable/scalars/UnsignedInt64) non-null A running count of all the objects processed. For example, when fetching all the products and their variants, this field counts both products and variants. This field can be used to track operation progress. * partial​Data​Url [URL](https://shopify.dev/docs/api/admin-graphql/unstable/scalars/URL) The URL that points to the partial or incomplete response data (in [JSONL](http://jsonlines.org/) format) that was returned by a failed operation. The URL expires 7 days after the operation fails. Returns `null` when there's no data available. * query [String!](https://shopify.dev/docs/api/admin-graphql/unstable/scalars/String) non-null GraphQL query document specified in `bulkOperationRunQuery`. * root​Object​Count [Unsigned​Int64!](https://shopify.dev/docs/api/admin-graphql/unstable/scalars/UnsignedInt64) non-null A running count of all the objects that are processed at the root of the query. For example, when fetching all the products and their variants, this field only counts products. This field can be used to track operation progress. * status [Bulk​Operation​Status!](https://shopify.dev/docs/api/admin-graphql/unstable/enums/BulkOperationStatus) non-null Status of the bulk operation. * type [Bulk​Operation​Type!](https://shopify.dev/docs/api/admin-graphql/unstable/enums/BulkOperationType) non-null The bulk operation's type. * url [URL](https://shopify.dev/docs/api/admin-graphql/unstable/scalars/URL) The URL that points to the response data in [JSONL](http://jsonlines.org/) format. The URL expires 7 days after the operation completes. *** ## Map ### Fields and connections with this object * <->[BulkOperationConnection.nodes](https://shopify.dev/docs/api/admin-graphql/unstable/connections/BulkOperationConnection#returns-nodes) * {}[BulkOperationEdge.node](https://shopify.dev/docs/api/admin-graphql/unstable/objects/BulkOperationEdge#field-BulkOperationEdge.fields.node) *** ## Queries * [bulk​Operation](https://shopify.dev/docs/api/admin-graphql/unstable/queries/bulkOperation) query Returns a specific bulk operation by ID. * [bulk​Operations](https://shopify.dev/docs/api/admin-graphql/unstable/queries/bulkOperations) query Returns the app's bulk operations meeting the specified filters. * [current​Bulk​Operation](https://shopify.dev/docs/api/admin-graphql/unstable/queries/currentBulkOperation) query Deprecated *** ## \BulkOperation Queries ### Queried by * \[bulk​Operation](https://shopify.dev/docs/api/admin-graphql/unstable/queries/bulkOperation) * \[bulk​Operations](https://shopify.dev/docs/api/admin-graphql/unstable/queries/bulkOperations) *** ## Mutations * [bulk​Operation​Cancel](https://shopify.dev/docs/api/admin-graphql/unstable/mutations/bulkOperationCancel) mutation Starts the cancelation process of a running bulk operation. There may be a short delay from when a cancelation starts until the operation is actually canceled. * [bulk​Operation​Run​Mutation](https://shopify.dev/docs/api/admin-graphql/unstable/mutations/bulkOperationRunMutation) mutation Creates and runs a [bulk operation](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation) to import data asynchronously. This mutation executes a specified GraphQL mutation multiple times using input data from a [JSONL](http://jsonlines.org/) file that you've uploaded to Shopify. The operation processes each line in your JSONL file as a separate mutation execution. The operation delivers results in a JSONL file when it completes. You can run one bulk mutation operation at a time per shop, though a [`bulkOperationRunQuery`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/bulkoperationrunquery) operation can run simultaneously. Learn more about [bulk importing data](https://shopify.dev/docs/api/usage/bulk-operations/imports). * [bulk​Operation​Run​Query](https://shopify.dev/docs/api/admin-graphql/unstable/mutations/bulkOperationRunQuery) mutation Creates and runs a [bulk operation](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation) to fetch data asynchronously. The operation processes your GraphQL query in the background and returns results in a [JSONL](http://jsonlines.org/) file when complete. Apps can run one bulk query operation and one bulk mutation operation at a time per shop. The query must include at least one connection field and supports up to five connections with a maximum nesting depth of two levels. *** Note Results remain available for seven days after completion. *** For more information, see the [bulk operations guide](https://shopify.dev/docs/api/usage/bulk-operations/queries). *** ## <\~> BulkOperation Mutations ### Mutated by * <\~>[bulk​Operation​Cancel](https://shopify.dev/docs/api/admin-graphql/unstable/mutations/bulkOperationCancel) * <\~>[bulk​Operation​Run​Mutation](https://shopify.dev/docs/api/admin-graphql/unstable/mutations/bulkOperationRunMutation) * <\~>[bulk​Operation​Run​Query](https://shopify.dev/docs/api/admin-graphql/unstable/mutations/bulkOperationRunQuery) *** ## Interfaces * [Node](https://shopify.dev/docs/api/admin-graphql/unstable/interfaces/Node) interface *** ## ||-BulkOperation Implements ### Implements * ||-[Node](https://shopify.dev/docs/api/admin-graphql/unstable/interfaces/Node)