Get the calling API key and its workspace
curl --request GET \
--url https://api.sendpilot.ai/v1/me \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.sendpilot.ai/v1/me"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.sendpilot.ai/v1/me', 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.sendpilot.ai/v1/me",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.sendpilot.ai/v1/me"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
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.sendpilot.ai/v1/me")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sendpilot.ai/v1/me")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"workspace": {
"id": "ws_123",
"name": "Acme Outbound",
"active": true
},
"subscription": {
"active": true
},
"apiKey": {
"id": "key_123",
"name": "Claude agent (read-only)",
"scopes": [
"workspace:read"
],
"fullAccess": true,
"rateLimits": {
"perMinute": 300,
"perDay": 50000
},
"expiresAt": "2023-11-07T05:31:56Z"
},
"missingScopes": [
"workspace:read"
]
}Workspace
Get Workspace and Key
Inspect the authenticated workspace, subscription, effective scopes, expiry, and rate limits.
GET
/
v1
/
me
Get the calling API key and its workspace
curl --request GET \
--url https://api.sendpilot.ai/v1/me \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.sendpilot.ai/v1/me"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.sendpilot.ai/v1/me', 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.sendpilot.ai/v1/me",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.sendpilot.ai/v1/me"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
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.sendpilot.ai/v1/me")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sendpilot.ai/v1/me")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"workspace": {
"id": "ws_123",
"name": "Acme Outbound",
"active": true
},
"subscription": {
"active": true
},
"apiKey": {
"id": "key_123",
"name": "Claude agent (read-only)",
"scopes": [
"workspace:read"
],
"fullAccess": true,
"rateLimits": {
"perMinute": 300,
"perDay": 50000
},
"expiresAt": "2023-11-07T05:31:56Z"
},
"missingScopes": [
"workspace:read"
]
}Requires
workspace:read. Start here to verify which workspace the key belongs to and what it can do.
The response contains workspace, subscription, apiKey and missingScopes. apiKey.scopes includes implied scopes and the creator’s current permission cap; fullAccess identifies a key created without an explicit scope list. It does not override membership, billing or operation-specific permissions.
This response does not expose the raw key. subscription.active is REST subscription information, not proof that MCP access is enabled.Authorizations
API key for authentication (prefix: sp_live_ or sp_test_)
Response
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Scopes the key would need for full access
Available options:
workspace:read, campaigns:read, campaigns:write, leads:read, leads:write, inbox:read, inbox:send, senders:read, senders:manage, lead_sourcing:run, credits:read, webhooks:read, webhooks:manage, content:read, content:write