curl --request GET \
--url https://sync.useparagon.com/api/syncs/{syncId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://sync.useparagon.com/api/syncs/{syncId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sync.useparagon.com/api/syncs/{syncId}', 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://sync.useparagon.com/api/syncs/{syncId}",
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://sync.useparagon.com/api/syncs/{syncId}"
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://sync.useparagon.com/api/syncs/{syncId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sync.useparagon.com/api/syncs/{syncId}")
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{
"status": "INITIALIZING",
"summary": {
"totalRecords": 123,
"syncedRecordsCount": 123,
"lastSyncedAt": "2023-11-07T05:31:56Z",
"lastPeriodicFullSyncedAt": "2023-11-07T05:31:56Z",
"latestCursor": "<string>"
},
"credentialId": "<string>",
"incrementalAccumulatorFrequency": "1m",
"rateLimitBackoffMs": 30000,
"reason": "Credential ID [id] is no longer valid or has been deleted."
}Get Sync Status
Get the current status of a Sync
curl --request GET \
--url https://sync.useparagon.com/api/syncs/{syncId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://sync.useparagon.com/api/syncs/{syncId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sync.useparagon.com/api/syncs/{syncId}', 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://sync.useparagon.com/api/syncs/{syncId}",
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://sync.useparagon.com/api/syncs/{syncId}"
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://sync.useparagon.com/api/syncs/{syncId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sync.useparagon.com/api/syncs/{syncId}")
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{
"status": "INITIALIZING",
"summary": {
"totalRecords": 123,
"syncedRecordsCount": 123,
"lastSyncedAt": "2023-11-07T05:31:56Z",
"lastPeriodicFullSyncedAt": "2023-11-07T05:31:56Z",
"latestCursor": "<string>"
},
"credentialId": "<string>",
"incrementalAccumulatorFrequency": "1m",
"rateLimitBackoffMs": 30000,
"reason": "Credential ID [id] is no longer valid or has been deleted."
}Authorizations
Paragon User Token. Add to the Authorization header of your requests.
Path Parameters
ID of the sync to get the status of
Response
Sync status
Current state of Sync activity. Possible values:
INITIALIZING: The Sync has just been created and is pending its first run.ACTIVE: The Sync is actively fetching new data.IDLE: The Sync has completed and is watching for updates to synced data.- Check
summary.lastSyncedAtto see if the sync has successfully completed.
- Check
RATE_LIMITED: The Sync is backing off because the third-party API's rate limit was reached. CheckrateLimitBackoffMsfor the back-off duration. The Sync resumes automatically once the back-off period passes.DISABLED: The Sync has been paused temporarily by the Disable a Sync endpoint.ERRORED: The Sync has been suspended due to an error. Check Webhook Events for additional error details.DELETING: The Sync is being deleted and its synced data is being removed.
INITIALIZING, ACTIVE, IDLE, RATE_LIMITED, DISABLED, ERRORED, DELETING Metrics on the sync progress and last seen record timestamps
Show child attributes
Show child attributes
The ID of the credential used to authenticate this Sync
The configured incremental sync frequency for this Sync. Only present when explicitly set on the Sync.
1m, 5m, 10m, 30m, 1h, 3h, 6h, 24h "1m"
If the sync status is RATE_LIMITED, the duration (in milliseconds) that the Sync is backing off before it resumes fetching data, in response to the third-party API's rate limit.
The Sync resumes automatically once this back-off period has passed. We recommend waiting at least this long before polling the Sync status again.
30000
If the sync status is ERRORED, this field will be populated with a message explaining why the sync failed.
"Credential ID [id] is no longer valid or has been deleted."
Was this page helpful?