REST APIGET

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.

GEThttps://post.adaptlypost.com/post/api/v1/me

Returns the key you are calling with: its type, name, workspace, role, effective permissions and expiry. Any valid key can call it, whatever its role.

API Key (Bearer token)
Permission:any valid keyRoles and permissions

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.

If you are an agent: read can before you offer to schedule or publish. When can.publish is false, create posts with saveAsDraft: true and say that a workspace member has to publish them. Do not look for another key.

Response fields

FieldDescription
tokenTypeapi_token for a key from the API Tokens page, oauth for an MCP or OAuth session.
tokenIdThe key's ID as shown on the API Tokens page. Null for an OAuth session.
tokenNameThe name given to the key when it was created. Null for an OAuth session.
workspaceThe workspace the key acts in. A key is bound to one workspace.
organizationIdThe organization that owns the workspace.
roleThe role the key acts as: key is one of admin, editor, contributor, viewer; name is the label in your language.
issuerRoleThe current role of the member who created the key. The key never has more than this member. Null for an OAuth session.
permissionsEvery 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.
canThree booleans, draft, schedule and publish, for the three things most integrations do with posts.
summaryOne sentence, in your language, naming the role and what it can do. Meant for a UI or an agent transcript.
expiresAtWhen 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.

Describe the calling key
curl --request GET \
  --url https://post.adaptlypost.com/post/api/v1/me \
  --header 'Authorization: Bearer <api-key>'
200
{
  "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
}