Get Workspace Token
curl --request POST \
--url https://api.plaud.ai/team-oauth/oauth/token \
--header 'Content-Type: <content-type>' \
--data grant_type=client_credentials \
--data client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer \
--data 'client_assertion=<header>.<payload>.<signature>'import requests
url = "https://api.plaud.ai/team-oauth/oauth/token"
payload = {
"grant_type": "client_credentials",
"client_assertion_type": "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
"client_assertion": "<header>.<payload>.<signature>"
}
headers = {"Content-Type": "<content-type>"}
response = requests.post(url, data=payload, headers=headers)
print(response.text){
"access_token": "eyJhbGciOiJSUzI1NiIs...",
"token_type": "Bearer",
"expires_in": 3600
}{
"status": 401,
"msg": "unauthorized",
"type": "error"
}API Reference
Get Workspace Token
Exchange a client assertion signed with your private key for a 1-hour workspace access token. No shared secret ever leaves your side — Plaud only ever holds your public key.
POST
/
team-oauth
/
oauth
/
token
Get Workspace Token
curl --request POST \
--url https://api.plaud.ai/team-oauth/oauth/token \
--header 'Content-Type: <content-type>' \
--data grant_type=client_credentials \
--data client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer \
--data 'client_assertion=<header>.<payload>.<signature>'import requests
url = "https://api.plaud.ai/team-oauth/oauth/token"
payload = {
"grant_type": "client_credentials",
"client_assertion_type": "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
"client_assertion": "<header>.<payload>.<signature>"
}
headers = {"Content-Type": "<content-type>"}
response = requests.post(url, data=payload, headers=headers)
print(response.text){
"access_token": "eyJhbGciOiJSUzI1NiIs...",
"token_type": "Bearer",
"expires_in": 3600
}{
"status": 401,
"msg": "unauthorized",
"type": "error"
}Sign the assertion with a short lifetime (we recommend 4 minutes) and a unique
jti. The resulting access token is valid for 1 hour and is bound to a single workspace.Headers
Body
application/x-www-form-urlencoded
Always client_credentials.
Available options:
client_credentials Always urn:ietf:params:oauth:client-assertion-type:jwt-bearer.
Available options:
urn:ietf:params:oauth:client-assertion-type:jwt-bearer A JWT (header.payload.signature) with iss/sub set to your client_id, aud set to the token issuer, a short exp (we recommend 4 minutes), and a unique jti, signed with your private key using RS256.
Was this page helpful?