The JoAi API lets you manage your AI workspace programmatically — agents, contacts, items, memories, goals, reminders, and more.
Base URL: https://api.joai.ai/api/v1
The full reference with interactive request builder is available at:
All endpoints require a Bearer token:
Authorization: Bearer <your-token>Pass your team slug to scope requests:
X-Team-Slug: my-teamYou can also authenticate as an agent using its auth key — the team is resolved automatically:
X-Agent-Auth-Key: <agent-auth-key>API tokens are long-lived credentials for programmatic access. Each token is tied to your account and scoped to a team via the X-Team-Slug header.
Create a token in the app:
- Go to Agent Settings → Apps (or Integrations)
- Find the API Tokens section
- Click Create Token, give it a name, and save the value securely
You won't be able to view the token again after closing the dialog.
Or create one via the API (requires an authenticated session):
curl -X POST https://api.joai.ai/api/v1/tokens \
-H "Authorization: Bearer <session-token>" \
-H "Content-Type: application/json" \
-d '{"name": "My Integration"}'List tokens:
curl https://api.joai.ai/api/v1/tokens \
-H "Authorization: Bearer <session-token>"Revoke a token:
curl -X DELETE https://api.joai.ai/api/v1/tokens/{id} \
-H "Authorization: Bearer <session-token>"Security tips:
- Never commit tokens to version control — use environment variables or a secrets manager
- Create separate tokens per integration
- Revoke tokens that are no longer needed
# List your agents
curl https://api.joai.ai/api/v1/agents \
-H "Authorization: Bearer <your-token>" \
-H "X-Team-Slug: my-team"
# Create a contact
curl -X POST https://api.joai.ai/api/v1/contacts \
-H "Authorization: Bearer <your-token>" \
-H "X-Team-Slug: my-team" \
-H "Content-Type: application/json" \
-d '{"name": "Jane Doe", "email": "jane@example.com"}'For the full endpoint reference, visit api.joai.ai/docs.