curl --request GET \
--url https://api.paigeme.dev/v1/projects \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.paigeme.dev/v1/projects', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.paigeme.dev/v1/projects"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"data": {
"projects": [
{
"id": "<string>",
"name": "<string>",
"scopes": [
"<string>"
],
"is_default": true
}
]
}
}{
"success": false,
"error": {
"code": "invalid_request",
"message": "Invalid request body",
"details": {}
},
"request_id": "<string>"
}{
"success": false,
"error": {
"code": "invalid_request",
"message": "Invalid request body",
"details": {}
},
"request_id": "<string>"
}{
"success": false,
"error": {
"code": "invalid_request",
"message": "Invalid request body",
"details": {}
},
"request_id": "<string>"
}The projects this credential may act on
Discovery for multi-project connections (GRE-499). An MCP OAuth bearer (mcp_at_…) may be attached to SEVERAL projects, each with its OWN scopes; this returns them all, with is_default marking the one used when a call names no project. Pass a returned id in the X-Paige-Project header to target a project. A pk_ API key is a single project’s context and returns that one project as a one-element list (same shape), so a client never needs to branch on credential type.
Deliberately NOT project-selected: it stays usable when the default project is paused (which would otherwise 403 project_inactive), so a client can always discover a healthy sibling. The X-Paige-Project header is ignored here.
Required scope: any valid key.
curl --request GET \
--url https://api.paigeme.dev/v1/projects \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.paigeme.dev/v1/projects', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.paigeme.dev/v1/projects"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"data": {
"projects": [
{
"id": "<string>",
"name": "<string>",
"scopes": [
"<string>"
],
"is_default": true
}
]
}
}{
"success": false,
"error": {
"code": "invalid_request",
"message": "Invalid request body",
"details": {}
},
"request_id": "<string>"
}{
"success": false,
"error": {
"code": "invalid_request",
"message": "Invalid request body",
"details": {}
},
"request_id": "<string>"
}{
"success": false,
"error": {
"code": "invalid_request",
"message": "Invalid request body",
"details": {}
},
"request_id": "<string>"
}Authorizations
Project API key issued in Settings → API keys. Send it as Authorization: Bearer pk_live_….
Response
Success.
true Hide child attributes
Hide child attributes
Hide child attributes
Hide child attributes
Was this page helpful?
