Enter at least two characters to search. Searching documentation… No matching sections. Try an endpoint, field or event name.

Who runs the account: its members, their roles and the invitations waiting to be accepted. Members are the same in live and test mode, and both permissions are sensitive, so a key has them only when they are ticked on it.

On this page

The member object

Field Description
id string The member's id, used in the paths below.
object "member" The kind of object.
name string Their name.
email string The address they sign in with.
role string owner, admin or member.
joined_at string When they joined, as an ISO 8601 timestamp in UTC.

The invitation object

Field Description
id string The invitation's id, used in the paths below. It is not the code in the email's link, which is never returned.
object "invitation" The kind of object.
email string Where it was sent.
role string admin or member: the role it gives once accepted.
invited_by string The name of the member who sent it.
expired boolean Whether it can no longer be accepted.
expires_at string|null When it stops working, three days after it was sent.
created_at string When it was sent.

Endpoints

  • GET /v1/members List the members, oldest first. Needs members:read.
  • PATCH /v1/members/{id} Make a member an admin or a member, from {"role": "admin"}. Needs members:write on a key an owner made.
  • DELETE /v1/members/{id} Remove a member. Answers 204. Needs members:write on a key an owner made.
  • GET /v1/invitations List the invitations nobody has accepted yet, newest first, expired ones included. Needs members:read.
  • POST /v1/invitations Invite someone from email and role, admin or member. Answers 201. Needs members:write.
  • DELETE /v1/invitations/{id} Withdraw an invitation, so its link stops working. Answers 204. Needs members:write.
POST /v1/invitations

Copy failed. Select the code and copy it manually.

curl -X POST 'https://api.velirapay.com/v1/invitations' \
  --fail-with-body --silent --show-error --max-time 30 \
  -H "Authorization: Bearer ${VELIRAPAY_API_KEY:?Set VELIRAPAY_API_KEY}" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "email": "grace@example.com",
    "role": "admin"
  }'

Who may do what

The roles are the dashboard's, taken from the member who made the key. A key an owner or admin made can invite people and cancel invitations, which go out in that member's name and count towards their invitations an hour. Only a key an owner made can change a role or remove a member. Owners are never changed or removed through the API, and nobody is invited or promoted to owner: handing over an organization stays in the dashboard. A personal account takes no members, and inviting into one answers 409.

Removing a member also revokes every API key they made and switches off the webhook endpoints they added, as in the dashboard, so an integration running on one of their keys stops at once. Making an admin a member withdraws the invitations they sent. Every change is in the activity log, naming the key.

Signed in to the MCP server with your account, an AI app has the reach of your own role, and can also create a new organization, which it may then work in.