List all workspaces
/workspacesBearer tokenRetrieve a paginated list of all workspaces. **Permissions:** ADMIN or SUPER_ADMIN only
Query parameters
- pageinteger
Page number (1-indexed)
- limitinteger
Items per page
Responses
200Workspaces list retrieved successfully
SuccessResponse
- successenumrequiredtrue
Always true for successful responses
- dataobjectrequired
Response data (structure varies by endpoint)
metaMetarequired
- timestampstring (date-time)required
Response timestamp
- requestIdstringrequired
Unique request identifier for debugging
paginationPagination
- pageintegerrequired
Current page number (1-indexed)
- limitintegerrequired
Items per page
- totalintegerrequired
Total number of items
- totalPagesintegerrequired
Total number of pages
object
dataarray of Workspace
array of Workspace- idstring (uuid)required
Workspace unique identifier
- namestringrequired
Workspace display name
- slugstring
URL-friendly workspace identifier
- emailstring (email)required
Workspace contact email
- statusenumrequired"active" · "inactive" · "suspended" · "pending"
Workspace status
- avatarPathstring
Path to workspace avatar image
- webhookUrlstring (uri)
Webhook URL for transaction events
- walletProviderenum"COINBAX" · "CIRCLE" · "FIREBLOCKS" · "TURNKEY" · "UTILA"
Primary wallet provider for this workspace
- walletIdstring
Wallet identifier from the wallet provider
- turnkeyOrganizationIdstring
Turnkey organization ID (if using Turnkey)
metadataobject
Additional custom metadata (key-value pairs)
objectAdditional custom metadata (key-value pairs)
- billingEnabledboolean
Whether billing is enabled for this workspace
- createdAtstring (date-time)required
Workspace creation timestamp
- updatedAtstring (date-time)required
Last update timestamp
metaobject
Meta
- timestampstring (date-time)required
Response timestamp
- requestIdstringrequired
Unique request identifier for debugging
paginationPagination
- pageintegerrequired
Current page number (1-indexed)
- limitintegerrequired
Items per page
- totalintegerrequired
Total number of items
- totalPagesintegerrequired
Total number of pages
object
paginationPagination
- pageintegerrequired
Current page number (1-indexed)
- limitintegerrequired
Items per page
- totalintegerrequired
Total number of items
- totalPagesintegerrequired
Total number of pages
{
"success": true,
"data": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "Acme Corp",
"slug": "acme-corp",
"email": "contact@acme.com",
"status": "active",
"walletProvider": "TURNKEY",
"createdAt": "2026-01-15T10:00:00.000Z",
"updatedAt": "2026-02-20T14:30:00.000Z"
}
],
"meta": {
"timestamp": "2026-02-24T12:00:00.000Z",
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"pagination": {
"page": 1,
"limit": 20,
"total": 50,
"totalPages": 3
}
}
}401Unauthorized - missing or invalid authentication
- successenumrequiredfalse
Always false for error responses
dataobject
Always null for error responses
objectAlways null for error responses
errorErrorrequired
- codestringrequired
Machine-readable error code
- messagestringrequired
Human-readable error message
- statusCodeintegerrequired
HTTP status code
detailsobject
Additional error details (optional)
objectAdditional error details (optional)
metaMetarequired
- timestampstring (date-time)required
Response timestamp
- requestIdstringrequired
Unique request identifier for debugging
paginationPagination
- pageintegerrequired
Current page number (1-indexed)
- limitintegerrequired
Items per page
- totalintegerrequired
Total number of items
- totalPagesintegerrequired
Total number of pages
{
"success": false,
"data": null,
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication required",
"statusCode": 401
},
"meta": {
"timestamp": "2026-02-24T12:00:00.000Z",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}403Forbidden - insufficient permissions
- successenumrequiredfalse
Always false for error responses
dataobject
Always null for error responses
objectAlways null for error responses
errorErrorrequired
- codestringrequired
Machine-readable error code
- messagestringrequired
Human-readable error message
- statusCodeintegerrequired
HTTP status code
detailsobject
Additional error details (optional)
objectAdditional error details (optional)
metaMetarequired
- timestampstring (date-time)required
Response timestamp
- requestIdstringrequired
Unique request identifier for debugging
paginationPagination
- pageintegerrequired
Current page number (1-indexed)
- limitintegerrequired
Items per page
- totalintegerrequired
Total number of items
- totalPagesintegerrequired
Total number of pages
{
"success": false,
"data": null,
"error": {
"code": "FORBIDDEN",
"message": "You do not have permission to access this resource",
"statusCode": 403
},
"meta": {
"timestamp": "2026-02-24T12:00:00.000Z",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}500Internal server error
- successenumrequiredfalse
Always false for error responses
dataobject
Always null for error responses
objectAlways null for error responses
errorErrorrequired
- codestringrequired
Machine-readable error code
- messagestringrequired
Human-readable error message
- statusCodeintegerrequired
HTTP status code
detailsobject
Additional error details (optional)
objectAdditional error details (optional)
metaMetarequired
- timestampstring (date-time)required
Response timestamp
- requestIdstringrequired
Unique request identifier for debugging
paginationPagination
- pageintegerrequired
Current page number (1-indexed)
- limitintegerrequired
Items per page
- totalintegerrequired
Total number of items
- totalPagesintegerrequired
Total number of pages
{
"success": false,
"data": null,
"error": {
"code": "INTERNAL_ERROR",
"message": "An unexpected error occurred",
"statusCode": 500
},
"meta": {
"timestamp": "2026-02-24T12:00:00.000Z",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}
}curl https://core-staging.coinbax.com/api/v1/workspaces \
-H "Authorization: Bearer $ACCESS_TOKEN"const response = await fetch('https://core-staging.coinbax.com/api/v1/workspaces', {
headers: {
'Authorization': `Bearer ${process.env.ACCESS_TOKEN}`,
},
});
const result = await response.json();