Me features
GET
https://app.sulus.ai/api/me/features
Get the caller's feature-permission map
Authentication
Send a bearer token created on your dashboard's Developer page:
Authorization: Bearer <YOUR_API_KEY>
Errors
| Status | Meaning | Body |
|---|---|---|
401 |
Missing or invalid bearer token |
Notes
- Envelope is {"data":{"features":{...}}} only — no success key.
- Keys come from FeatureRegistry for the caller's audience (role user or reseller_admin). Roles with no audience (e.g. super admin) receive features: {}.
- Missing user_feature_permissions row means enabled (true). Explicit is_enabled=false means false.
- Route uses auth:sanctum only (no reseller middleware on this path).
- Live wire keys such as ghl_connect are the registry feature keys returned by the API.
curl --request GET \
--url https://app.sulus.ai/api/me/features \
--header 'Authorization: Bearer <YOUR_API_KEY>'
import requests
url = "https://app.sulus.ai/api/me/features"
headers = {"Authorization": "Bearer <YOUR_API_KEY>"}
response = requests.get(url, headers=headers)
print(response.json())
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://app.sulus.ai/api/me/features"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <YOUR_API_KEY>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
Response
200
{
"data": {
"features": {
"assistants": true,
"squads": true,
"tools": true,
"phone_numbers": true,
"knowledge_docs": true,
"ai_chat": true,
"call_logs": true,
"squad_call_logs": true,
"integrations": true,
"ghl_connect": true,
"workspaces": true
}
}
}
Response — GET
/me/features
200
{
"data": {
"features": {
"assistants": true,
"squads": true,
"tools": true,
"phone_numbers": true,
"knowledge_docs": true,
"ai_chat": true,
"call_logs": true,
"squad_call_logs": true,
"integrations": true,
"ghl_connect": true,
"workspaces": true
}
}
}