enterprise.export.detail
Retrieves the status and metadata of an export task. Poll until record.status is EXPORT_STATUS_COMPLETED.
curl --request POST \
--url https://api.manus.im/dataexport.v1.EnterpriseDataExportService/GetExport \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"uid": "5YX76pz7Dga3yztNVw97Dh"
}
'import requests
url = "https://api.manus.im/dataexport.v1.EnterpriseDataExportService/GetExport"
payload = { "uid": "5YX76pz7Dga3yztNVw97Dh" }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({uid: '5YX76pz7Dga3yztNVw97Dh'})
};
fetch('https://api.manus.im/dataexport.v1.EnterpriseDataExportService/GetExport', 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.manus.im/dataexport.v1.EnterpriseDataExportService/GetExport",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'uid' => '5YX76pz7Dga3yztNVw97Dh'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.manus.im/dataexport.v1.EnterpriseDataExportService/GetExport"
payload := strings.NewReader("{\n \"uid\": \"5YX76pz7Dga3yztNVw97Dh\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.manus.im/dataexport.v1.EnterpriseDataExportService/GetExport")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"uid\": \"5YX76pz7Dga3yztNVw97Dh\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.manus.im/dataexport.v1.EnterpriseDataExportService/GetExport")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"uid\": \"5YX76pz7Dga3yztNVw97Dh\"\n}"
response = http.request(request)
puts response.read_body{
"record": {
"uid": "<string>",
"user_id": "123e4567-e89b-12d3-a456-426614174000",
"status": "EXPORT_STATUS_PENDING",
"file_url": "<string>",
"file_size": 123,
"file_size_human": "<string>",
"url_expires_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"error_message": "<string>"
},
"request_id": "<string>"
}{
"code": "<string>",
"message": "<string>"
}record.status is EXPORT_STATUS_COMPLETED or EXPORT_STATUS_FAILED.Failures: When status is EXPORT_STATUS_FAILED, record.error_message describes the cause. EXPORT_STATUS_CANCELLED indicates the export was cancelled before completion.Completed records carry the URL: When record.status is EXPORT_STATUS_COMPLETED, record.file_url already contains a pre-signed download URL with record.url_expires_at. Call enterprise.export.downloadUrl only when that URL has expired.File retention: Completed exports are retained for 30 days; after that the underlying file is purged and enterprise.export.downloadUrl will fail.Authorizations
Body
Export task UID returned by enterprise.export.create.
"5YX76pz7Dga3yztNVw97Dh"
Response
Export task retrieved successfully.
Export task record.
Hide child attributes
Hide child attributes
Export task UID.
Target user ID.
"123e4567-e89b-12d3-a456-426614174000"
Current export status.
EXPORT_STATUS_PENDING, EXPORT_STATUS_PROCESSING, EXPORT_STATUS_COMPLETED, EXPORT_STATUS_FAILED, EXPORT_STATUS_CANCELLED Pre-signed download URL for the export archive. Only present when status is EXPORT_STATUS_COMPLETED. See url_expires_at for the expiry. To mint a fresh URL after expiry, call enterprise.export.downloadUrl.
Export archive size in bytes. Serialized as a JSON string per proto3 int64 conventions.
Human-readable file size (e.g., "1.82 MB").
Expiration time of file_url. Only present when status is EXPORT_STATUS_COMPLETED. The underlying file is retained for 30 days; mint a fresh URL via enterprise.export.downloadUrl if this URL has expired.
When the export finished. Only present when status is EXPORT_STATUS_COMPLETED.
Task creation time.
Failure reason. Only present when status is EXPORT_STATUS_FAILED.
Request ID for tracing and auditing.
curl --request POST \
--url https://api.manus.im/dataexport.v1.EnterpriseDataExportService/GetExport \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"uid": "5YX76pz7Dga3yztNVw97Dh"
}
'import requests
url = "https://api.manus.im/dataexport.v1.EnterpriseDataExportService/GetExport"
payload = { "uid": "5YX76pz7Dga3yztNVw97Dh" }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({uid: '5YX76pz7Dga3yztNVw97Dh'})
};
fetch('https://api.manus.im/dataexport.v1.EnterpriseDataExportService/GetExport', 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.manus.im/dataexport.v1.EnterpriseDataExportService/GetExport",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'uid' => '5YX76pz7Dga3yztNVw97Dh'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.manus.im/dataexport.v1.EnterpriseDataExportService/GetExport"
payload := strings.NewReader("{\n \"uid\": \"5YX76pz7Dga3yztNVw97Dh\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.manus.im/dataexport.v1.EnterpriseDataExportService/GetExport")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"uid\": \"5YX76pz7Dga3yztNVw97Dh\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.manus.im/dataexport.v1.EnterpriseDataExportService/GetExport")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"uid\": \"5YX76pz7Dga3yztNVw97Dh\"\n}"
response = http.request(request)
puts response.read_body{
"record": {
"uid": "<string>",
"user_id": "123e4567-e89b-12d3-a456-426614174000",
"status": "EXPORT_STATUS_PENDING",
"file_url": "<string>",
"file_size": 123,
"file_size_human": "<string>",
"url_expires_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"error_message": "<string>"
},
"request_id": "<string>"
}{
"code": "<string>",
"message": "<string>"
}