Subscriptions
Sync subscription from Polar
Force sync subscription data from Polar. Fetches the latest state using the organization’s external ID and upserts locally. Any local subscriptions not found in Polar are deleted.
POST
/
subscriptions
/
sync
Sync subscription from Polar
curl --request POST \
--url https://app.usechar.ai/api/subscriptions/sync \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.usechar.ai/api/subscriptions/sync"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.usechar.ai/api/subscriptions/sync', 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://app.usechar.ai/api/subscriptions/sync",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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://app.usechar.ai/api/subscriptions/sync"
req, _ := http.NewRequest("POST", 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.post("https://app.usechar.ai/api/subscriptions/sync")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.usechar.ai/api/subscriptions/sync")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"synced": 123,
"deleted": 123
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "Invalid request data",
"data": {
"code": "<unknown>",
"field": "<string>",
"details": "<string>"
}
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "Authentication required",
"data": {
"code": "<unknown>"
}
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "Access denied",
"data": {
"code": "<unknown>",
"reason": "<string>"
}
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "Resource not found",
"data": {
"code": "<unknown>",
"resource": "<string>",
"resourceId": "<string>"
}
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "Resource already exists",
"data": {
"code": "<unknown>",
"resource": "<string>"
}
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "An internal error occurred",
"data": {
"code": "<unknown>"
}
}Authorizations
WorkOS JWT token. Obtain via WorkOS AuthKit authentication flow. The token must include organization_id claim for organization-scoped endpoints.
Previous
List end usersReturns all end users for the current organization, ordered by creation date.
Next
⌘I
Sync subscription from Polar
curl --request POST \
--url https://app.usechar.ai/api/subscriptions/sync \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.usechar.ai/api/subscriptions/sync"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.usechar.ai/api/subscriptions/sync', 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://app.usechar.ai/api/subscriptions/sync",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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://app.usechar.ai/api/subscriptions/sync"
req, _ := http.NewRequest("POST", 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.post("https://app.usechar.ai/api/subscriptions/sync")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.usechar.ai/api/subscriptions/sync")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"synced": 123,
"deleted": 123
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "Invalid request data",
"data": {
"code": "<unknown>",
"field": "<string>",
"details": "<string>"
}
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "Authentication required",
"data": {
"code": "<unknown>"
}
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "Access denied",
"data": {
"code": "<unknown>",
"reason": "<string>"
}
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "Resource not found",
"data": {
"code": "<unknown>",
"resource": "<string>",
"resourceId": "<string>"
}
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "Resource already exists",
"data": {
"code": "<unknown>",
"resource": "<string>"
}
}{
"defined": "<unknown>",
"code": "<unknown>",
"status": "<unknown>",
"message": "An internal error occurred",
"data": {
"code": "<unknown>"
}
}
