Authentication
Overview
All API requests use token-based authentication. To authenticate a request, include your API token in the x-material-client-secret authorizations header described in the endpoint references.
Example
GET /api/v1/issues HTTP/1.1
Host: your-instance.on.material.security
x-material-client-secret: YOUR_TOKEN
Accept: */*How it works
Each API token is tied to a specific account. You can create as many tokens as needed.
Tokens created when you connect an AI tool through the Material MCP server appear in the same list, marked as MCP connections.
The token identifies who is making the request.
Requests are checked against the account's current permissions, not the permissions it had when the token was created. The token identifies the account, but it doesn't grant any permissions on its own.
Errors
If authentication fails, the API will return a 401 Unauthorized response. One common cause is missing the x-material-client-secret header.
Create a new token
Log in to Material.
From the top toolbar, click Integrations (the puzzle icon).
Expand API and MCP > Tokens and MCP Connections.
Click Create Token.

Name the token descriptively, then click Create Token. It's useful to include a use case if you have many tokens stored.
Click the token box to copy the token to your clipboard, then store it safely. Use the token in the
x-material-client-secretheader.
API related events are listed in the Audit Log. You can also quickly navigate to token specific events via the tokens list:
From Tokens, select one token row.
Click View Audit Events.
The Audit Log opens, pre-filtered to this token's events within the last week. Update the filter as needed.

Authentication Errors
If your API token is missing or invalid, the API returns a 401 Unauthorized response. Verify that the x-material-client-secret header is present and that the token is correct. A missing header is the most common cause.
If the token is valid but the account behind it lacks permission for what you're calling, the API returns 403 Forbidden instead. Reading accounts and groups needs directory read permission, and changing role assignments needs role-management permission on top of it. See Admin Roles for what each role allows.
Last updated
Was this helpful?


