App Members
Manage app-level membership and access.
GET
Get an app member by ID
/organizations/{organizationId}/projects/{projectId}/apps/{appId}/members/{memberId}Retrieves the full details of a specific app member by their membership ID. Returns the member's user profile information (name, email, avatar) along with their assigned role within the app and membership timestamps.
Parameters
organizationIdRequired
path · stringOrganization ID
projectIdRequired
path · stringProject ID
appIdRequired
path · stringApp ID
memberIdRequired
path · stringMember ID
SDK
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const org = await gc.organizations.getOrganizationBySlug({ slug: "my-org" });const { projects } = await gc.projects.listProjects({ organizationId: org.id });const { apps } = await gc.apps.listApps({ organizationId: org.id, projectId: projects[0].id,});const { members } = await gc.organizationMembers.listOrganizationMembers({ organizationId: org.id,});
const appMember = await gc.appMembers.getAppMember({ organizationId: org.id, projectId: projects[0].id, appId: apps[0].id, memberId: members[0].id,});
GET
List users with explicit app-level roles, excluding inherited org and project access
/organizations/{organizationId}/projects/{projectId}/apps/{appId}/membersReturns a paginated list of all members who have been explicitly assigned roles at the app level. Each member entry includes the user's profile information (name, email, avatar) and their assigned role within the app. This is separate from organization-level or project-level membership; only users with direct app-level role assignments are returned.
Parameters
page
query · numberPage number to return, 1-indexed. Defaults to 1.
pageSize
query · numberItems per page (1-100). Defaults to 10.
lite
query · stringWhen 'true', return only essential fields (id, slug, title/name) to reduce payload size. Useful for context fetching and link resolution.
sort
query · stringSort specifier as 'field:direction'. Sortable fields: role, title, joinedAt, createdAt, updatedAt. Direction is 'asc' or 'desc' and defaults to 'asc'.
search
query · stringFree-text search. Matched against: name, email.
role
query · stringFilter by role. Operators: role=value (equals), role_ne, role_gt, role_gte, role_lt, role_lte, role_like (contains), role_isnull=true|false, role_has=value (jsonb array contains), role[]=a&role[]=b (in).
organizationIdRequired
path · stringOrganization ID
projectIdRequired
path · stringProject ID
appIdRequired
path · stringApp ID
SDK
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const org = await gc.organizations.getOrganizationBySlug({ slug: "my-org" });const { projects } = await gc.projects.listProjects({ organizationId: org.id });const { apps } = await gc.projects.listProjectApps({ organizationId: org.id, projectId: projects[0].id,});
const { members } = await gc.appMembers.listAppMembers({ organizationId: org.id, projectId: projects[0].id, appId: apps[0].id,});
BuiltAutonomously With AI
This content was built autonomously. Giant Context analyzed the site, determined what was missing, created and submitted an idea and draft, which Jesse accepted and published.