Skip to main content
me returns the identity behind the token you are calling with. It is the first query to run after authenticating: it confirms your token works and tells you who and where you are.
https://router.apps.filed.com/graphql

Me is a union

me returns the Me union, which resolves to a different type depending on which token you send:
union Me = User | WorkspaceUser
Tokenme resolves toIdentity
userTokenUserYou, across your whole account (all workspaces)
workspaceTokenWorkspaceUserYou, scoped to one workspace, with your role
Both tokens come from the same exchange call (see Authentication); they represent the same person at two different scopes. Because me is a union, always select fields with an inline fragment (... on User / ... on WorkspaceUser) and read __typename to know which one you got.
type Query {
  me: Me
}
me
Me
The authenticated identity, or null if the token is missing or invalid. Resolves to User for a userToken and WorkspaceUser for a workspaceToken.

With a userToken: User

Call with the account-wide userToken to get your user account and the workspaces you belong to.
type User {
  id: ID!
  name: String!
  email: String!
  workspaces: [WorkspaceShortDetails!]!
}

type WorkspaceShortDetails {
  id: ID!
  name: String!
  createdAt: Date
  status: WorkspaceStatus
}
User.id
ID!
Your user ID, stable across every workspace.
User.name
String!
Your display name.
User.email
String!
Your email address.
User.workspaces
[WorkspaceShortDetails!]!
The workspaces you are a member of. Use a workspace id here to pick which workspace an integration should act on.
query MeAsUser {
  me {
    __typename
    ... on User {
      id
      name
      email
      workspaces {
        id
        name
      }
    }
  }
}
{
  "data": {
    "me": {
      "__typename": "User",
      "id": "019f0fb6-26e9-74b7-a842-cb43a2a41682",
      "name": "Jane Preparer",
      "email": "jane@example-firm.com",
      "workspaces": [
        {
          "id": "019f0fb6-379a-7f72-b7ec-ebd8f41ccfa1",
          "name": "Example Tax Firm"
        }
      ]
    }
  }
}
cURL
curl -X POST https://router.apps.filed.com/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_USER_TOKEN" \
  -d '{ "query": "query MeAsUser { me { __typename ... on User { id name email workspaces { id name } } } }" }'

With a workspaceToken: WorkspaceUser

Call with the workspace-scoped workspaceToken to get your membership in that workspace, including your role.
type WorkspaceUser {
  id: ID!
  role: WorkspaceRole!
  createdAt: Date!
  user: UserShortDetails!
  workspace: Workspace!
}

type UserShortDetails {
  id: ID!
  name: String!
  email: String!
}

enum WorkspaceRole {
  admin
  l1
  l2
  l3
}
WorkspaceUser.id
ID!
The membership ID linking your user to this workspace.
WorkspaceUser.role
WorkspaceRole!
Your role in the workspace: admin, l1, l2, or l3.
WorkspaceUser.createdAt
Date!
When you were added to the workspace.
WorkspaceUser.user
UserShortDetails!
Your underlying user account: id, name, email.
WorkspaceUser.workspace
Workspace!
The workspace this token is scoped to. It is the entry point to clients and tasks: me { ... on WorkspaceUser { workspace { clients { ... } } } }.
query MeAsWorkspaceUser {
  me {
    __typename
    ... on WorkspaceUser {
      id
      role
      createdAt
      user {
        id
        name
        email
      }
      workspace {
        id
        name
      }
    }
  }
}
{
  "data": {
    "me": {
      "__typename": "WorkspaceUser",
      "id": "019f0fb6-37b1-7800-b7bc-0d11288504b1",
      "role": "admin",
      "createdAt": "2026-06-14T09:31:20.000Z",
      "user": {
        "id": "019f0fb6-26e9-74b7-a842-cb43a2a41682",
        "name": "Jane Preparer",
        "email": "jane@example-firm.com"
      },
      "workspace": {
        "id": "019f0fb6-379a-7f72-b7ec-ebd8f41ccfa1",
        "name": "Example Tax Firm"
      }
    }
  }
}
cURL
curl -X POST https://router.apps.filed.com/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_WORKSPACE_TOKEN" \
  -d '{ "query": "query MeAsWorkspaceUser { me { __typename ... on WorkspaceUser { id role createdAt user { id name email } workspace { id name } } } }" }'
Query both members in one document so your client handles either token: me { __typename ... on User { ... } ... on WorkspaceUser { ... } }, then branch on __typename.