Email Calendar
List my connected email/calendar accounts
Requires email/calendar deployment availability and the route permissions. Connected account operations use the authenticated tenant and mailbox owner; body/metadata sharing remains separately authorized. Workspace managers additionally receive other active owners alias-only records, without their private sync/preview/body controls. Returns current provider drivers, defaults and workspace capabilities.
GET
/
email-calendar
/
accounts
List my connected email/calendar accounts
curl --request GET \
--url https://api.gratona.com/v1/email-calendar/accounts \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.gratona.com/v1/email-calendar/accounts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.gratona.com/v1/email-calendar/accounts', 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.gratona.com/v1/email-calendar/accounts",
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.gratona.com/v1/email-calendar/accounts"
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.gratona.com/v1/email-calendar/accounts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gratona.com/v1/email-calendar/accounts")
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{
"data": [
{
"id": 123,
"provider": "<string>",
"connection_driver": "<string>",
"provider_account_id": "<string>",
"email": "<string>",
"account_type": "<string>",
"display_name": "<string>",
"avatar_url": "<string>",
"status": "<string>",
"status_reason": "<string>",
"sync_enabled": true,
"email_sync_enabled": true,
"calendar_sync_enabled": true,
"default_body_visibility": "<string>",
"default_calendar_visibility": "<string>",
"initial_sync_state": "<string>",
"email_intelligence_v2_enabled": true,
"initial_sync_previewed_at": "2023-11-07T05:31:56Z",
"initial_sync_owner_approved_at": "2023-11-07T05:31:56Z",
"initial_sync_admin_approved_at": "2023-11-07T05:31:56Z",
"requires_workspace_admin_approval": true,
"initial_sync_approved_at": "2023-11-07T05:31:56Z",
"initial_sync_started_at": "2023-11-07T05:31:56Z",
"initial_sync_completed_at": "2023-11-07T05:31:56Z",
"last_sync_at": "2023-11-07T05:31:56Z",
"last_error_at": "2023-11-07T05:31:56Z",
"last_error_code": "<string>",
"last_error_message": "<string>",
"disconnected_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"included_mail_sources": [
"inbox"
],
"aliases": [
"jsmith@example.com"
],
"initial_sync_preview": {},
"initial_sync": {
"status": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"email": {
"processed": 123,
"matched": 123,
"unmatched": 123,
"status": "<string>",
"completed_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
},
"calendar": {
"processed": 123,
"matched": 123,
"unmatched": 123,
"status": "<string>",
"completed_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}
}
],
"alias_accounts": [
{
"id": 123,
"email": "jsmith@example.com",
"aliases": [
"jsmith@example.com"
]
}
],
"feature_enabled": true,
"can_manage_aliases": true,
"can_manage_workspace_policies": true,
"can_view_email_health": true,
"email_intelligence_v2_enabled": true,
"providers": {
"google": true,
"microsoft": true
},
"connection_drivers": {
"google": [
"<string>"
],
"microsoft": [
"<string>"
]
},
"default_connection_drivers": {
"google": "<string>",
"microsoft": "<string>"
}
}{
"message": "Unauthorized",
"status": "error"
}{
"message": "Something went wrong. Please try again.",
"status": "error",
"error": "invalid_request",
"code": "DONOR_NOT_FOUND"
}{
"message": "Not Found",
"status": "error"
}Authorizations
bearerAuthapiKeyAuth
Passport bearer token authentication for legacy admin sessions.
Response
List my connected email/calendar accounts response.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
⌘I
List my connected email/calendar accounts
curl --request GET \
--url https://api.gratona.com/v1/email-calendar/accounts \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.gratona.com/v1/email-calendar/accounts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.gratona.com/v1/email-calendar/accounts', 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.gratona.com/v1/email-calendar/accounts",
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.gratona.com/v1/email-calendar/accounts"
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.gratona.com/v1/email-calendar/accounts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gratona.com/v1/email-calendar/accounts")
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{
"data": [
{
"id": 123,
"provider": "<string>",
"connection_driver": "<string>",
"provider_account_id": "<string>",
"email": "<string>",
"account_type": "<string>",
"display_name": "<string>",
"avatar_url": "<string>",
"status": "<string>",
"status_reason": "<string>",
"sync_enabled": true,
"email_sync_enabled": true,
"calendar_sync_enabled": true,
"default_body_visibility": "<string>",
"default_calendar_visibility": "<string>",
"initial_sync_state": "<string>",
"email_intelligence_v2_enabled": true,
"initial_sync_previewed_at": "2023-11-07T05:31:56Z",
"initial_sync_owner_approved_at": "2023-11-07T05:31:56Z",
"initial_sync_admin_approved_at": "2023-11-07T05:31:56Z",
"requires_workspace_admin_approval": true,
"initial_sync_approved_at": "2023-11-07T05:31:56Z",
"initial_sync_started_at": "2023-11-07T05:31:56Z",
"initial_sync_completed_at": "2023-11-07T05:31:56Z",
"last_sync_at": "2023-11-07T05:31:56Z",
"last_error_at": "2023-11-07T05:31:56Z",
"last_error_code": "<string>",
"last_error_message": "<string>",
"disconnected_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"included_mail_sources": [
"inbox"
],
"aliases": [
"jsmith@example.com"
],
"initial_sync_preview": {},
"initial_sync": {
"status": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"email": {
"processed": 123,
"matched": 123,
"unmatched": 123,
"status": "<string>",
"completed_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
},
"calendar": {
"processed": 123,
"matched": 123,
"unmatched": 123,
"status": "<string>",
"completed_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}
}
],
"alias_accounts": [
{
"id": 123,
"email": "jsmith@example.com",
"aliases": [
"jsmith@example.com"
]
}
],
"feature_enabled": true,
"can_manage_aliases": true,
"can_manage_workspace_policies": true,
"can_view_email_health": true,
"email_intelligence_v2_enabled": true,
"providers": {
"google": true,
"microsoft": true
},
"connection_drivers": {
"google": [
"<string>"
],
"microsoft": [
"<string>"
]
},
"default_connection_drivers": {
"google": "<string>",
"microsoft": "<string>"
}
}{
"message": "Unauthorized",
"status": "error"
}{
"message": "Something went wrong. Please try again.",
"status": "error",
"error": "invalid_request",
"code": "DONOR_NOT_FOUND"
}{
"message": "Not Found",
"status": "error"
}