Who Am I
Read the role, the workspace and the exact permission list of the API key you are calling with, so a client or an agent knows what it may do before it tries.
https://post.adaptlypost.com/post/api/v1/meReturns the key you are calling with: its type, name, workspace, role, effective permissions and expiry. Any valid key can call it, whatever its role.
When to call it
Call it once when an integration starts, and again after a 403, to learn what the key may do right now. The answer is computed on each call from the key's role and its creator's current role, so it changes the moment an admin changes either.
Response fields
| Field | Description |
|---|---|
tokenType | api_token for a key from the API Tokens page, oauth for an MCP or OAuth session. |
tokenId | The key's ID as shown on the API Tokens page. Null for an OAuth session. |
tokenName | The name given to the key when it was created. Null for an OAuth session. |
workspace | The workspace the key acts in. A key is bound to one workspace. |
organizationId | The organization that owns the workspace. |
role | The role the key acts as: key is one of admin, editor, contributor, viewer; name is the label in your language. |
issuerRole | The current role of the member who created the key. The key never has more than this member. Null for an OAuth session. |
permissions | Every permission the key holds right now, after the creator's current role has been applied. Compare it with the permission named on each endpoint page. |
can | Three booleans, draft, schedule and publish, for the three things most integrations do with posts. |
summary | One sentence, in your language, naming the role and what it can do. Meant for a UI or an agent transcript. |
expiresAt | When the key stops working. Null means it never expires. |
The answer is live
Nothing here is stored on the key. permissions is recomputed on every request from the role chosen at creation and the creator's role at that moment, which is the same computation every other endpoint runs before it accepts a request. What /me says a key can do is exactly what the API will let it do.
curl --request GET \
--url https://post.adaptlypost.com/post/api/v1/me \
--header 'Authorization: Bearer <api-key>'{
"tokenType": "api_token",
"tokenId": "tok_01j9x4k2",
"tokenName": "Zapier drafts",
"workspace": { "id": "ag_01j9x" },
"organizationId": "org_01hzq",
"role": { "key": "contributor", "name": "Contributor" },
"issuerRole": "editor",
"permissions": [
"workspace.read",
"posts.read",
"accounts.read",
"posts.draft",
"media.upload",
"analytics.read",
"ai.generate",
"members.read",
"tokens.own"
],
"can": { "draft": true, "schedule": false, "publish": false },
"summary": "This key acts as Contributor in this workspace and can create drafts, but cannot schedule or publish them.",
"expiresAt": null
}