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

# List pull operations

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

## Request

- Base URL: `https://api.codat.io`
- URL: `https://api.codat.io/companies/{companyId}/data/history`
- Auth: API key in header `Authorization`

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.dev/codatio/apis/sync-for-expenses-v1.md) - [All operations](https://skmtc.dev/codatio/apis/sync-for-expenses-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/codatio/apis/sync-for-expenses-v1/revisions/ca501f1fd9a0?raw)
