Vigilfield Docs
API referenceInvitations

`POST /invitations/bulk` — bulk invitation import.

POST/invitations/bulk

Iterates rows independently. Each row goes through the same per-row checks the single-create endpoint runs (email validation, policy, role, team existence, throttle); per-row outcomes ride back in BulkCreateInvitationResponse.results so the admin sees partial success without scraping the audit log.

Anti-enumeration doesn't constrain this surface — the endpoint requires admin auth on the calling org, so per-row outcomes don't leak across tenants.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Bulk-import request. Up to BULK_MAX_ROWS rows per request — the api fails the entire request with 400 above that. Each row is processed independently; per-row outcomes ride back in BulkCreateInvitationResponse.results.

Response Body

application/json

curl -X POST "https://example.com/invitations/bulk" \  -H "Content-Type: application/json" \  -d '{    "rows": [      {        "email": "string"      }    ]  }'
{  "results": [    {      "email": "string",      "invitation": null,      "message": "string",      "outcome": "created",      "token": "string"    }  ],  "summary": {    "created": 0,    "rejected": 0,    "total": 0  }}