Invites

Create and manage team invitations. Invite new members via email.Last updated: 2026-02-14

Manage team invitations to onboard new members. Invites are sent via email and expire after 7 days if not accepted.

GET /v1/invites

Returns all pending and accepted invitations for your team.

Required Scope

invites:read

Example Request

cURL

curl https://api.uptime.example.com/v1/invites \
  -H "Authorization: Bearer uptime_your_api_key"

Response

[
	{
		"id": "inv_abc123",
		"email": "alice@example.com",
		"senderId": "usr_xyz789",
		"teamId": "team_def456",
		"acceptedAt": "2026-02-10T14:30:00Z",
		"createdAt": "2026-02-08T09:15:00Z",
		"updatedAt": "2026-02-10T14:30:00Z"
	},
	{
		"id": "inv_def456",
		"email": "bob@example.com",
		"senderId": "usr_xyz789",
		"teamId": "team_def456",
		"acceptedAt": null,
		"createdAt": "2026-02-12T11:00:00Z",
		"updatedAt": "2026-02-12T11:00:00Z"
	}
]

Response Fields

FieldTypeDescription
idstringUnique invite identifier
emailstringEmail address of the invited user
senderIdstringUser ID of the team member who sent the invite
teamIdstringTeam ID the invite is for
acceptedAtstring | nullISO 8601 timestamp when the invite was accepted, or null if pending
createdAtstringISO 8601 timestamp when the invite was created
updatedAtstringISO 8601 timestamp when the invite was last updated

Possible Errors

StatusCodeDescription
401UNAUTHORIZEDMissing or invalid API key
403FORBIDDENAPI key doesn't have invites:read scope
429RATE_LIMITEDToo many requests
500INTERNAL_ERRORServer error

Response Schema

{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"type": "array",
	"items": {
		"$ref": "#/$defs/invite"
	},
	"$defs": {
		"invite": {
			"type": "object",
			"required": ["id", "email", "senderId", "teamId", "acceptedAt", "createdAt", "updatedAt"],
			"properties": {
				"id": {
					"type": "string"
				},
				"email": {
					"type": "string",
					"format": "email"
				},
				"senderId": {
					"type": "string"
				},
				"teamId": {
					"type": "string"
				},
				"acceptedAt": {
					"type": ["string", "null"],
					"format": "date-time"
				},
				"createdAt": {
					"type": "string",
					"format": "date-time"
				},
				"updatedAt": {
					"type": "string",
					"format": "date-time"
				}
			}
		}
	}
}

POST /v1/invites

Create a new invitation and send it to the specified email address. The invite expires after 7 days.

Required Scope

invites:write

Request Body

FieldTypeRequiredDescription
emailstringYesValid email address of the person to invite

Example Request

cURL

curl -X POST https://api.uptime.example.com/v1/invites \
  -H "Authorization: Bearer uptime_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"email": "newuser@example.com"}'

Response

{
	"id": "inv_ghi789",
	"email": "newuser@example.com",
	"senderId": "usr_xyz789",
	"teamId": "team_def456",
	"acceptedAt": null,
	"createdAt": "2026-02-14T16:45:00Z",
	"updatedAt": "2026-02-14T16:45:00Z"
}

Possible Errors

StatusCodeDescription
400VALIDATION_ERRORInvalid email address
401UNAUTHORIZEDMissing or invalid API key
403FORBIDDENAPI key doesn't have invites:write scope
409CONFLICTAn invite for this email already exists
429RATE_LIMITEDToo many requests
500INTERNAL_ERRORServer error

Request Body Schema

{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"type": "object",
	"required": ["email"],
	"properties": {
		"email": {
			"type": "string",
			"format": "email"
		}
	}
}

Response Schema

{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"type": "object",
	"required": ["id", "email", "senderId", "teamId", "acceptedAt", "createdAt", "updatedAt"],
	"properties": {
		"id": {
			"type": "string"
		},
		"email": {
			"type": "string",
			"format": "email"
		},
		"senderId": {
			"type": "string"
		},
		"teamId": {
			"type": "string"
		},
		"acceptedAt": {
			"type": ["string", "null"],
			"format": "date-time"
		},
		"createdAt": {
			"type": "string",
			"format": "date-time"
		},
		"updatedAt": {
			"type": "string",
			"format": "date-time"
		}
	}
}

DELETE /v1/invites/:id

Revoke a pending invitation. This prevents the invited user from joining the team using this invite.

Required Scope

invites:write

Path Parameters

ParameterTypeDescription
idstringThe invite ID to delete

Example Request

cURL

curl -X DELETE https://api.uptime.example.com/v1/invites/inv_ghi789 \
  -H "Authorization: Bearer uptime_your_api_key"

Response

{
	"deleted": true
}

Possible Errors

StatusCodeDescription
401UNAUTHORIZEDMissing or invalid API key
403FORBIDDENAPI key doesn't have invites:write scope
404NOT_FOUNDInvite not found
429RATE_LIMITEDToo many requests
500INTERNAL_ERRORServer error

Response Schema

{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"type": "object",
	"required": ["deleted"],
	"properties": {
		"deleted": {
			"type": "boolean",
			"const": true
		}
	}
}