Pāriet uz dokumentāciju
API

Uzskaitīt dalībniekus

Visi darbvietā, katra turētā loma un katram piešķirtās adreses.

GETapi.openemail.uk/members

Izpilda īstu izsaukumu pret jūsu darbvietu, ar jūsu paša atslēgu.

GET /members

Visi darbvietā, katra turētā loma un katram piešķirtās adreses.

Dalībnieks ir divi piešķīrumi, nevis viens

shell
export OE=https://api.openemail.ukexport AUTH="Authorization: Bearer $OPENEMAIL_API_KEY"

role ir tas, ko viņi drīkst DARĪT: viena rinda, viena loma, tas pats objekts, ko apraksta /roles. addresses ir tas, AR KO viņi to drīkst darīt: viens ieraksts uz adresi, katrs ar savu access. Klients tos nedrīkst saplacināt: loma ar emails:send un tukšu addresses masīvu ir cilvēks, kurš drīkst sūtīt no nekurienes, un pilns addresses masīvs zem viewer lomas arī ir cilvēks, kurš drīkst sūtīt no nekurienes. Sūtīšanas ceļš pārbauda abus, un ekrāns, kas rāda tikai vienu no tiem, pārliecināti paskaidros nepareizo atteikumu.

Adrešu rindās ir access, lai gan saglabātā kolonna saucas role, un pārdēvēšana ir jēga, nevis sakopšana: šim objektam jau ir lauks role ar pavisam citu nozīmi, un divi role vienu ligzdošanas līmeni viens no otra, kas nes vērtības no divām dažādām vārdnīcām, ir kļūda, kas gaida pirmo cilvēku, kurš izlasīs pārāk ātri. access ir vai nu member, kas adresi lasa un sūta kā tā, vai viewer, kas to tikai lasa.

implied: true nozīmē, ka ŠO LOMU NEVIENS NAV IZVĒLĒJIES. Kopīgošana parādījās krietni pirms lomām, tāpēc lielākajai daļai cilvēku ar piekļuvi pastkastei ir adrešu piešķīrumi un vispār nav dalībnieka rindas; lai neliegtu viņiem pastu, kamēr nav izpildīta atpakaļaizpilde, pakalpojums no plašākā viņu turētā piešķīruma secina iebūvētu lomu un ziņo to ar null role.id. Rādiet to kā “izriet no piekļuves”, nevis kā lomu, ko kāds izvēlējies. Kamēr PATCH nepadara šo secinājumu par lēmumu, viņu adrešu piekļuves paplašināšana klusi paplašina arī to, ko viņi drīkst darīt.

ĪPAŠNIEKS ir PIRMĀ rinda, atzīmēta ar isOwner: true un role.builtin vērtību owner. Viņš ir konts, uz kuru darbvieta ir piesaistīta, viņam pēc definīcijas pieder visas atļaujas, un POST, PATCH un DELETE viņu visi atsaka ar member_is_owner. Tāpēc nekopīgota darbvieta ziņo vienu dalībnieku, nevis nevienu. Vietas skaitiet, izslēdzot isOwner.

Piemērs

Nepieciešams members:read. Pirmais ir īpašnieks, tad visi pārējie pēc e-pasta adreses, nevis pēc pievienošanās laika, jo šis saraksts tiek lasīts, lai atrastu vienu cilvēku, nevis lai redzētu, kas mainījies.

curl
curl "$OE/members" -H "$AUTH"
Atbilde
{  "object": "list",  "data": [    {      "object": "member",      "userId": "nQ8vBz1aRd4tYwKx7fQ2mN8vBz1aRd4t",      "email": "[email protected]",      "name": "Sam Okonjo",      "image": null,      "role": {        "id": "role_2b81de079c1f0a4b7e05d386",        "name": "Support",        "builtin": null      },      "implied": false,      "permissions": [        "emails:send",        "emails:read",        "threads:read",        "threads:write",        "labels:read",        "labels:write",        "contacts:read"      ],      "addresses": [        {          "addressId": "2b81de07-9c1f-4a4b-8e05-d3862c1f0a44",          "address": "[email protected]",          "access": "member"        },        {          "addressId": "c40a95f2-1cc6-4d31-82a8-9e075d31c2a8",          "address": "[email protected]",          "access": "viewer"        }      ],      "createdAt": "2026-08-12T14:20:00.000Z"    },    {      "object": "member",      "userId": "7fQ2mN8vBz1aRd4tYwKx7fQ2mN8vBz1a",      "email": "[email protected]",      "name": null,      "image": null,      "role": { "id": null, "name": "Viewer", "builtin": "viewer" },      "implied": true,      "permissions": [        "emails:read",        "drafts:read",        "threads:read",        "labels:read",        "contacts:read",        "calendar:read",        "templates:read",        "rules:read",        "connections:read",        "settings:read"      ],      "addresses": [        {          "addressId": "c40a95f2-1cc6-4d31-82a8-9e075d31c2a8",          "address": "[email protected]",          "access": "viewer"        }      ],      "createdAt": null    }  ],  "hasMore": false,  "nextCursor": null}

Divas populācijas vienā sarakstā, un citādi nevar: kādam var būt loma un neviena adrese, un kādam var būt adrese un neviena lomas rinda. Uzskaitot tikai pārklāšanos, tiktu paslēptas abas, un lielākajā daļā darbvietu otrā grupa ir lielākā.

createdAt ir null tiem, kam ir piešķīrumi, bet nekad nav bijusi ierakstīta dalībnieka rinda — tiem pašiem cilvēkiem, kuriem implied ir true. Tas ir brīdis, kad viņiem tika dota LOMA, nevis kad viņiem pirmoreiz kopīgoja adresi.

permissions ir plakans, jau izrēķināts saraksts, nevis būla vērtību kopa. Klients, kas jautā “vai šajā sarakstā ir templates:write”, nevar atpalikt no vārdnīcas; klients, kuram iedod { canEditTemplates: true }, to klusi var.

Bez cursor, ar standarta aploksni. Darbvietas dalībnieku skaitu ierobežo tas, ar cik cilvēkiem īpašnieks to patiešām ir kopīgojis, un lappušošana tam būtu ceremonija ap kaut ko, ko klients ielādē vienreiz un attēlo veselu.