Skip to main content
GET
/
crm
/
exports
/
2026-03
/
export
/
async
/
tasks
/
{taskId}
/
status
Get the status of the export including the URL to download the file
curl --request GET \
  --url https://api.hubapi.com/crm/exports/2026-03/export/async/tasks/{taskId}/status \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://api.hubapi.com/crm/exports/2026-03/export/async/tasks/{taskId}/status"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://api.hubapi.com/crm/exports/2026-03/export/async/tasks/{taskId}/status', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubapi.com/crm/exports/2026-03/export/async/tasks/{taskId}/status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://api.hubapi.com/crm/exports/2026-03/export/async/tasks/{taskId}/status"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Authorization", "Bearer <token>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.hubapi.com/crm/exports/2026-03/export/async/tasks/{taskId}/status")
.header("Authorization", "Bearer <token>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.hubapi.com/crm/exports/2026-03/export/async/tasks/{taskId}/status")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
{
  "completedAt": "2023-11-07T05:31:56Z",
  "startedAt": "2023-11-07T05:31:56Z",
  "errors": [
    {
      "category": "<string>",
      "context": {},
      "errors": [
        {
          "message": "<string>",
          "code": "<string>",
          "context": "{missingScopes=[scope1, scope2]}",
          "in": "<string>",
          "subCategory": "<string>"
        }
      ],
      "links": {},
      "message": "<string>",
      "status": "<string>",
      "id": "<string>",
      "subCategory": {}
    }
  ],
  "links": {},
  "numErrors": 123,
  "requestedAt": "2023-11-07T05:31:56Z",
  "result": "<string>"
}
{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}

Supported products

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Path Parameters

taskId
integer<int64>
required

Response

successful operation

completedAt
string<date-time>
required

The timestamp when the export was completed, in ISO 8601 format.

startedAt
string<date-time>
required

The timestamp when the export process started, in ISO 8601 format.

status
enum<string>
required

The current status of the export, which can be PENDING, PROCESSING, COMPLETE or CANCELED.

Available options:
CANCELED,
COMPLETE,
PENDING,
PROCESSING
errors
object[]

A collection of related links associated with the export.

numErrors
integer<int32>

The number of errors encountered during the export process.

requestedAt
string<date-time>

The timestamp when the export request was made, in ISO 8601 format.

result
string

The URL of the resulting file if the export status is COMPLETE.

Last modified on March 31, 2026