Invite a member
const url = 'https://api.overwatch.weareheavy.dev/v1/members/invitations';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"email":"editor@example.com","role":"member","siteIds":["0a1b2c3d-4e5f-6071-8293-a4b5c6d7e8f9"],"canCrawl":true}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.overwatch.weareheavy.dev/v1/members/invitations \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "email": "editor@example.com", "role": "member", "siteIds": [ "0a1b2c3d-4e5f-6071-8293-a4b5c6d7e8f9" ], "canCrawl": true }'Invite someone to the organization by email. Invitations expire after
48 hours. For the restricted member role, siteIds and canCrawl
set the invitee’s initial grants (materialized when they accept);
admins see every site, so the grants are ignored for admin.
Session-only, owner/admin.
Authorizations
Section titled “ Authorizations ”Request Bodyrequired
Section titled “ Request Bodyrequired ”object
Initial per-site allowlist (restricted member role only).
Initial crawl grant (restricted member role only).
Example
{ "email": "editor@example.com", "role": "member", "siteIds": [ "0a1b2c3d-4e5f-6071-8293-a4b5c6d7e8f9" ], "canCrawl": true}Responses
Section titled “ Responses ”The invitation was created and emailed.
object
The created invitation, as returned by the auth layer.
object
Examplegenerated
{ "invitation": {}}email is missing, or the auth layer rejected the invitation.
object
A human-readable error message.
Example
{ "error": "email is required"}Missing or invalid credentials.
object
A human-readable error message.
Example
{ "error": "invalid api key"}A dashboard session is required (API-key callers are rejected), or the session’s role does not allow this action.
object
A human-readable error message.
Example
{ "error": "a dashboard session is required"}