Sign in Get started

Organizations

Read the active organization, manage members, and send / revoke invites. Admin or owner role required for mutations.

View as Markdown

The Developer API key carries an organization scope. Every endpoint operates on that org — there is no cross-org access from a single key. Use these endpoints to read org metadata, manage members, and handle invites.

from pictograph import Client
client = Client()

me

Fetch the active organization (the one the API key belongs to).

org = client.organizations.me()
print(org.id, org.name, org.subscription_tier, org.member_count)

Returns Organization with tier (free / core / pro / enterprise), billing email, monthly credit allowance, etc.

list_members

for m in client.organizations.list_members():
    print(m.email, m.role, m.joined_at)

Returns list[OrganizationMember].

update_member_role

Promote / demote a member. member_id is the row’s UUID, not the underlying user UUID.

client.organizations.update_member_role(
    member_id="member-uuid",
    role="admin",     # viewer / member / admin / owner
)

Role hierarchy: callers may set roles ≤ their own. An admin cannot promote anyone to owner.

remove_member

client.organizations.remove_member(member_id="member-uuid")

The user’s account is preserved — only the org membership is revoked. They can be re-invited.

list_invites

invites = client.organizations.list_invites(status="pending")
for inv in invites:
    print(inv.email, inv.role, inv.expires_at, inv.invite_url)

Filter by status{"pending", "accepted", "revoked", "expired"} or None for all.

invite

invite = client.organizations.invite(
    email="new@example.com",
    role="member",
    expires_in_days=14,        # optional; defaults to 7
)
print("Send this link:", invite.invite_url)

Returns OrganizationInvite with a one-time invite_url. Email delivery is automatic when SMTP is configured server-side; if you disabled email, share the URL manually.

revoke_invite

client.organizations.revoke_invite(invite_id="invite-uuid")

Sets the invite’s status to "revoked" immediately. The URL stops working.

Permission matrix

OpMin role
me, list_members, list_invitesviewer
update_member_role, invite, revoke_inviteadmin
remove_memberadmin (can’t remove owner unless caller is owner)

Common errors

StatusExceptionCause
403ForbiddenErrorCaller’s role too low for the action
404NotFoundErrormember_id / invite_id doesn’t exist (or belongs to another org)
409ConflictErrorinvite to an email that’s already a member
422ValidationErrorInvalid role, malformed email
Copied to clipboard