---
title: "List pull operations"
method: GET
path: "/companies/{companyId}/data/history"
tags: ["Manage data"]
---

# List pull operations

`GET /companies/{companyId}/data/history`

Gets the pull operation history (datasets) for a given company.

## Query parameters

- `page` integer
- `pageSize` integer
- `query` string
- `orderBy` string

## Response `200`

OK

- PullOperations
  - `results` PullOperation[]
    - `id` string, uuid, required — Unique identifier of the pull operation.
    - `companyId` string, uuid, required — Unique identifier of the company associated to this pull operation.
    - `connectionId` string, uuid, required — Unique identifier of the connection associated to this pull operation.
    - `dataType` string, required — The data type you are requesting in a pull operation.
    - `status` 'Initial' | 'Queued' | 'Fetching' | 'MapQueued' | 'Mapping' | 'Complete' | 'FetchError' | 'MapError' | 'InternalError' | 'ProcessingQueued' | 'Processing' | 'ProcessingError' | 'ValidationQueued' | 'Validating' | 'ValidationError' | 'AuthError' | 'Cancelled' | 'NotSupported' | 'RateLimitError' | 'PermissionsError' | 'PrerequisiteNotMet', required — The current status of the dataset.
    - `statusDescription` string, nullable — Additional information about the dataset status.
    - `errorMessage` string, nullable — A message about a transient or persistent error returned by Codat or the source platform.
    - `requested` 1, required — unresolved $ref
    - `completed` 1 — unresolved $ref
    - `progress` integer, required — An integer signifying the progress of the pull operation.
    - `isCompleted` boolean, required — `True` if the pull operation is completed successfully. The `isCompleted` property is not queryable. To filter failed pull operations, query by `status!=Complete&&status!=NotSupported` instead.
    - `isErrored` boolean, required — `True` if the pull operation entered an error state.
  - `pageNumber` integer, required — Current page number.
  - `pageSize` integer, required — Number of items to return in results array.
  - `totalResults` integer, required — Total number of items.
  - `_links` Links, required — unresolved $ref

## Other responses

- `400` — Your `query` parameter was not correctly formed
- `401` — Your API request was not properly authorized.
- `402` — An account limit has been exceeded. The type of limit is described in the error property: - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io.
- `403` — You are using an outdated API key or a key not associated with that resource.
- `404` — One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted.
- `429` — Too many requests were made in a given amount of time. Wait a short period and then try again.
- `500` — There is a problem with our server. Please try again later.
- `503` — The Codat API is temporarily offline for maintenance. Please try again later.

---

[API](https://skmtc.net/codatio/apis/sync-for-expenses-v1.md) · [All operations](https://skmtc.net/codatio/apis/sync-for-expenses-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/codatio/sync-for-expenses-v1/revisions/3a810b6f9c66/schema)
