Create Invitation
curl --request POST \
--url https://api.example.com/api/organizations/{org_id}/invitations \
--header 'Content-Type: application/json' \
--data '
{
"email": "<string>",
"require_2fa_before_join": true,
"role": "member"
}
'import requests
url = "https://api.example.com/api/organizations/{org_id}/invitations"
payload = {
"email": "<string>",
"require_2fa_before_join": True,
"role": "member"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({email: '<string>', require_2fa_before_join: true, role: 'member'})
};
fetch('https://api.example.com/api/organizations/{org_id}/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.example.com/api/organizations/{org_id}/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>',
'require_2fa_before_join' => true,
'role' => 'member'
]),
CURLOPT_HTTPHEADER => [
"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.example.com/api/organizations/{org_id}/invitations"
payload := strings.NewReader("{\n \"email\": \"<string>\",\n \"require_2fa_before_join\": true,\n \"role\": \"member\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.example.com/api/organizations/{org_id}/invitations")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"<string>\",\n \"require_2fa_before_join\": true,\n \"role\": \"member\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/organizations/{org_id}/invitations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"<string>\",\n \"require_2fa_before_join\": true,\n \"role\": \"member\"\n}"
response = http.request(request)
puts response.read_body{
"created_at": "2023-11-07T05:31:56Z",
"email": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"role": "<string>",
"status": "<string>",
"invite_link": "<string>",
"invited_by_name": "",
"organization_color": "<string>",
"organization_icon": "<string>",
"organization_name": "",
"require_2fa_before_join": false,
"token": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Members & Invitations
Create Invitation
Invite a user to the organization by email. Owner/admin only.
Creates an OrganizationInvitation row and queues the email send as a
background task so the API response doesn’t wait on SMTP2Go’s HTTP
round trip. If email delivery fails, the invitation row still exists
and the inviter can resend or share the link manually from the UI.
POST
/
api
/
organizations
/
{org_id}
/
invitations
Create Invitation
curl --request POST \
--url https://api.example.com/api/organizations/{org_id}/invitations \
--header 'Content-Type: application/json' \
--data '
{
"email": "<string>",
"require_2fa_before_join": true,
"role": "member"
}
'import requests
url = "https://api.example.com/api/organizations/{org_id}/invitations"
payload = {
"email": "<string>",
"require_2fa_before_join": True,
"role": "member"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({email: '<string>', require_2fa_before_join: true, role: 'member'})
};
fetch('https://api.example.com/api/organizations/{org_id}/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.example.com/api/organizations/{org_id}/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>',
'require_2fa_before_join' => true,
'role' => 'member'
]),
CURLOPT_HTTPHEADER => [
"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.example.com/api/organizations/{org_id}/invitations"
payload := strings.NewReader("{\n \"email\": \"<string>\",\n \"require_2fa_before_join\": true,\n \"role\": \"member\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.example.com/api/organizations/{org_id}/invitations")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"<string>\",\n \"require_2fa_before_join\": true,\n \"role\": \"member\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/organizations/{org_id}/invitations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"<string>\",\n \"require_2fa_before_join\": true,\n \"role\": \"member\"\n}"
response = http.request(request)
puts response.read_body{
"created_at": "2023-11-07T05:31:56Z",
"email": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"role": "<string>",
"status": "<string>",
"invite_link": "<string>",
"invited_by_name": "",
"organization_color": "<string>",
"organization_icon": "<string>",
"organization_name": "",
"require_2fa_before_join": false,
"token": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Path Parameters
Body
application/json
Response
Successful Response