post · projects:write

Invite a member

Creates an invite URL. Email delivery is best-effort.

Write

REST

post/api/v1/members
curl "https://herculeradar.com/api/v1/members" \
  --request POST \
  --header "Authorization: Bearer hr_live_…" \
  --header "Content-Type: application/json" \
  --header "Idempotency-Key: $(uuidgen)" \
  --data '{"email":"Acme"}'

MCP

Tool name invite_project_member. It takes the same input and returns the same { data, meta } envelope as REST, because both call the same function.

Invite someone by email as viewer or editor. Returns the invite URL.

Request body

{
  "type": "object",
  "required": [
    "email"
  ],
  "properties": {
    "email": {
      "type": "string"
    },
    "role": {
      "type": "string",
      "enum": [
        "editor",
        "viewer"
      ]
    }
  }
}

Response

{
  "data": {
    "email": "dev@acme.dev",
    "invite_url": "https://herculeradar.com/invite/…"
  },
  "meta": {
    "capability": "invite_project_member",
    "requestId": "req_9f2b4a8c1d0e",
    "idempotencyReplayed": false,
    "docs": "https://herculeradar.com/docs/reference/invite_project_member"
  }
}

Authorization

Requires the projects:write scope. A credential without it gets 403 FORBIDDEN. Resources in projects the credential cannot reach answer 404 NOT_FOUND rather than 403, so ids cannot be probed across tenants.

Send an Idempotency-Key header. A completed response is replayed for 24 hours, so a retry after a timeout cannot create a duplicate.