Team
Invite Team Member
Invite a team member by email
POST
/
api
/
v1
/
team
/
invitations
Invite Team Member
curl --request POST \
--url https://api.sequenzy.com/api/v1/team/invitations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "<string>",
"role": "<string>",
"canManageBilling": true
}
'import requests
url = "https://api.sequenzy.com/api/v1/team/invitations"
payload = {
"email": "<string>",
"role": "<string>",
"canManageBilling": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({email: '<string>', role: '<string>', canManageBilling: true})
};
fetch('https://api.sequenzy.com/api/v1/team/invitations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sequenzy.com/api/v1/team/invitations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'email' => '<string>',
'role' => '<string>',
'canManageBilling' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sequenzy.com/api/v1/team/invitations"
payload := strings.NewReader("{\n \"email\": \"<string>\",\n \"role\": \"<string>\",\n \"canManageBilling\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sequenzy.com/api/v1/team/invitations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"<string>\",\n \"role\": \"<string>\",\n \"canManageBilling\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sequenzy.com/api/v1/team/invitations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"<string>\",\n \"role\": \"<string>\",\n \"canManageBilling\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"invitation": {
"id": "inv_abc123",
"email": "newhire@example.com",
"role": "viewer",
"canManageBilling": false,
"status": "pending",
"invitedAt": "2026-06-11T10:00:00.000Z",
"expiresAt": "2026-06-18T10:00:00.000Z"
}
}
{
"success": true,
"member": {
"id": "member_abc123",
"kind": "member",
"userId": "user_abc123",
"role": "admin",
"canManageBilling": false,
"user": {
"id": "user_abc123",
"name": "John Marketer",
"email": "john@example.com",
"image": null
},
"status": "joined",
"createdAt": "2026-06-11T10:00:00.000Z",
"invitedAt": "2026-06-11T10:00:00.000Z",
"expiresAt": null,
"invitedBy": {
"id": "user_owner123",
"name": "Jane Founder",
"email": "jane@example.com"
}
}
}
{
"success": false,
"error": "Invalid email address"
}
{
"success": false,
"error": "Cannot add the company owner as a team member."
}
{
"success": false,
"error": "You need admin access to manage team members."
}
{
"success": false,
"error": "Only the company owner can grant billing access."
}
{
"success": false,
"error": "Limited team members cannot manage billing."
}
{
"success": false,
"error": "This user is already a member of your team."
}
{
"success": false,
"error": "An invitation is already pending for this email."
}
{
"success": false,
"error": "Failed to send invitation email"
}
Invite someone to your team. If the email belongs to an existing Sequenzy user, they are added to the team immediately and the response includes
member. Otherwise an invitation email is sent and the response includes invitation. Invitations expire after 7 days.
Requires owner or admin access. Only the company owner can grant billing access.
Request
Email address to invite.
Role for the new member:
admin, viewer, or restricted. Restricted
members can open direct campaign links only.Whether the member can manage billing. Defaults to
false. Only the company
owner can set this to true. Restricted members cannot manage billing.curl -X POST "https://api.sequenzy.com/api/v1/team/invitations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "newhire@example.com", "role": "viewer"}'
Responses
{
"success": true,
"invitation": {
"id": "inv_abc123",
"email": "newhire@example.com",
"role": "viewer",
"canManageBilling": false,
"status": "pending",
"invitedAt": "2026-06-11T10:00:00.000Z",
"expiresAt": "2026-06-18T10:00:00.000Z"
}
}
{
"success": true,
"member": {
"id": "member_abc123",
"kind": "member",
"userId": "user_abc123",
"role": "admin",
"canManageBilling": false,
"user": {
"id": "user_abc123",
"name": "John Marketer",
"email": "john@example.com",
"image": null
},
"status": "joined",
"createdAt": "2026-06-11T10:00:00.000Z",
"invitedAt": "2026-06-11T10:00:00.000Z",
"expiresAt": null,
"invitedBy": {
"id": "user_owner123",
"name": "Jane Founder",
"email": "jane@example.com"
}
}
}
{
"success": false,
"error": "Invalid email address"
}
{
"success": false,
"error": "Cannot add the company owner as a team member."
}
{
"success": false,
"error": "You need admin access to manage team members."
}
{
"success": false,
"error": "Only the company owner can grant billing access."
}
{
"success": false,
"error": "Limited team members cannot manage billing."
}
{
"success": false,
"error": "This user is already a member of your team."
}
{
"success": false,
"error": "An invitation is already pending for this email."
}
{
"success": false,
"error": "Failed to send invitation email"
}
⌘I
Invite Team Member
curl --request POST \
--url https://api.sequenzy.com/api/v1/team/invitations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "<string>",
"role": "<string>",
"canManageBilling": true
}
'import requests
url = "https://api.sequenzy.com/api/v1/team/invitations"
payload = {
"email": "<string>",
"role": "<string>",
"canManageBilling": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({email: '<string>', role: '<string>', canManageBilling: true})
};
fetch('https://api.sequenzy.com/api/v1/team/invitations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sequenzy.com/api/v1/team/invitations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'email' => '<string>',
'role' => '<string>',
'canManageBilling' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sequenzy.com/api/v1/team/invitations"
payload := strings.NewReader("{\n \"email\": \"<string>\",\n \"role\": \"<string>\",\n \"canManageBilling\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sequenzy.com/api/v1/team/invitations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"<string>\",\n \"role\": \"<string>\",\n \"canManageBilling\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sequenzy.com/api/v1/team/invitations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"<string>\",\n \"role\": \"<string>\",\n \"canManageBilling\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"invitation": {
"id": "inv_abc123",
"email": "newhire@example.com",
"role": "viewer",
"canManageBilling": false,
"status": "pending",
"invitedAt": "2026-06-11T10:00:00.000Z",
"expiresAt": "2026-06-18T10:00:00.000Z"
}
}
{
"success": true,
"member": {
"id": "member_abc123",
"kind": "member",
"userId": "user_abc123",
"role": "admin",
"canManageBilling": false,
"user": {
"id": "user_abc123",
"name": "John Marketer",
"email": "john@example.com",
"image": null
},
"status": "joined",
"createdAt": "2026-06-11T10:00:00.000Z",
"invitedAt": "2026-06-11T10:00:00.000Z",
"expiresAt": null,
"invitedBy": {
"id": "user_owner123",
"name": "Jane Founder",
"email": "jane@example.com"
}
}
}
{
"success": false,
"error": "Invalid email address"
}
{
"success": false,
"error": "Cannot add the company owner as a team member."
}
{
"success": false,
"error": "You need admin access to manage team members."
}
{
"success": false,
"error": "Only the company owner can grant billing access."
}
{
"success": false,
"error": "Limited team members cannot manage billing."
}
{
"success": false,
"error": "This user is already a member of your team."
}
{
"success": false,
"error": "An invitation is already pending for this email."
}
{
"success": false,
"error": "Failed to send invitation email"
}