API ReferenceCore API
Invites API
Send and manage team invitations
Invites API
Send and manage invitations to join your organisation.
Client Invite Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/clients/{clientId}/invites | List all pending invites for a client |
| POST | /api/clients/{clientId}/invites | Create a new invite |
| GET | /api/clients/{clientId}/invites/{inviteId} | Get invite details |
| PUT | /api/clients/{clientId}/invites/{inviteId} | Update an invite |
| DELETE | /api/clients/{clientId}/invites/{inviteId} | Cancel an invite |
User Invite Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/users/{userId}/invites | List all invites sent to a user |
| GET | /api/users/{userId}/invites/{inviteId} | Get a specific invite |
| POST | /api/users/{userId}/invites | Not supported |
| PUT | /api/users/{userId}/invites/{inviteId} | Accept an invite |
| DELETE | /api/users/{userId}/invites/{inviteId} | Reject/decline an invite |
List Client Invites
Get all pending invitations for a client (organisation).
Request
GET /api/clients/{clientId}/invites HTTP/1.1
Host: api.requestrocket.com
Authorization: {user_token}Response
{
"invites": [
{
"clientName": "Acme Corporation",
"inviteId": "95c594c9-8a98-4aeb-ae3c-bad251bc3ce2",
"pKey": "INVITATION",
"roles": [
"user"
],
"userEmail": "colleague@example.com",
"parentId": "550e8400-e29b-41d4-a716-446655440000",
"TTL": 1770288917,
"sKey": "95c594c9-8a98-4aeb-ae3c-bad251bc3ce2"
}
],
"message": "Success"
}Example
const response = await fetch(
`https://api.requestrocket.com/api/clients/${clientId}/invites`,
{
headers: {
'Authorization': process.env.USER_TOKEN
}
}
);
const data = await response.json();
console.log('Pending invites:', data.invites);import requests
import os
client_id = "your-client-id"
response = requests.get(
f'https://api.requestrocket.com/api/clients/{client_id}/invites',
headers={'Authorization': os.getenv('USER_TOKEN')}
)
data = response.json()
print(f"Found {len(data['invites'])} pending invites")package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
"os"
)
type Invite struct {
ClientName string `json:"clientName"`
InviteId string `json:"inviteId"`
PKey string `json:"pKey"`
Roles []string `json:"roles"`
UserEmail string `json:"userEmail"`
ParentId string `json:"parentId"`
TTL int64 `json:"TTL"`
SKey string `json:"sKey"`
}
type Response struct {
Invites []Invite `json:"invites"`
Message string `json:"message"`
}
func main() {
clientId := "your-client-id"
url := fmt.Sprintf("https://api.requestrocket.com/api/clients/%s/invites", clientId)
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", os.Getenv("USER_TOKEN"))
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
var result Response
json.Unmarshal(body, &result)
fmt.Printf("Found %d pending invites\n", len(result.Invites))
}import java.net.http.*;
import java.net.URI;
import com.google.gson.*;
public class ListInvites {
public static void main(String[] args) throws Exception {
String clientId = "your-client-id";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.requestrocket.com/api/clients/" + clientId + "/invites"))
.header("Authorization", System.getenv("USER_TOKEN"))
.GET()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
JsonObject json = JsonParser.parseString(response.body()).getAsJsonObject();
JsonArray invites = json.getAsJsonArray("invites");
System.out.println("Found " + invites.size() + " pending invites");
}
}curl -X GET "https://api.requestrocket.com/api/clients/${CLIENT_ID}/invites" \
-H "Authorization: ${USER_TOKEN}"Create Invite
Send an invitation to join your organisation.
Request
POST /api/clients/{clientId}/invites HTTP/1.1
Host: api.requestrocket.com
Authorization: {user_token}
Content-Type: application/json
{
"email": "colleague@example.com",
"role": "user"
}Response
{
"invites": [
{
"clientName": "Acme Corporation",
"inviteId": "95c594c9-8a98-4aeb-ae3c-bad251bc3ce2",
"pKey": "INVITATION",
"roles": [
"user"
],
"userEmail": "colleague@example.com",
"parentId": "550e8400-e29b-41d4-a716-446655440000",
"TTL": 1770288917,
"sKey": "95c594c9-8a98-4aeb-ae3c-bad251bc3ce2"
}
],
"message": "Success"
}Invites expire after 7 days (indicated by the TTL field). The recipient will receive an email with a link to accept the invitation.
Example
const response = await fetch(
`https://api.requestrocket.com/api/clients/${clientId}/invites`,
{
method: 'POST',
headers: {
'Authorization': process.env.USER_TOKEN,
'Content-Type': 'application/json'
},
body: JSON.stringify({
email: 'colleague@example.com',
role: 'user'
})
}
);
const data = await response.json();
console.log('Invite sent:', data.invites[0]);import requests
import os
client_id = "your-client-id"
response = requests.post(
f'https://api.requestrocket.com/api/clients/{client_id}/invites',
headers={'Authorization': os.getenv('USER_TOKEN')},
json={
'email': 'colleague@example.com',
'role': 'user'
}
)
data = response.json()
print(f"Invite sent to: {data['invites'][0]['userEmail']}")package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
"os"
)
type InviteRequest struct {
Email string `json:"email"`
Role string `json:"role"`
}
func main() {
clientId := "your-client-id"
requestBody, _ := json.Marshal(InviteRequest{
Email: "colleague@example.com",
Role: "user",
})
url := fmt.Sprintf("https://api.requestrocket.com/api/clients/%s/invites", clientId)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(requestBody))
req.Header.Set("Authorization", os.Getenv("USER_TOKEN"))
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}import java.net.http.*;
import java.net.URI;
import com.google.gson.*;
public class CreateInvite {
public static void main(String[] args) throws Exception {
String clientId = "your-client-id";
String json = "{"
+ "\"email\": \"colleague@example.com\","
+ "\"role\": \"user\""
+ "}";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.requestrocket.com/api/clients/" + clientId + "/invites"))
.header("Authorization", System.getenv("USER_TOKEN"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(json))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}curl -X POST "https://api.requestrocket.com/api/clients/${CLIENT_ID}/invites" \
-H "Authorization: ${USER_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"email": "colleague@example.com",
"role": "user"
}'Delete Invite
Cancel a pending invitation.
Request
DELETE /api/clients/{clientId}/invites/{inviteId} HTTP/1.1
Host: api.requestrocket.com
Authorization: {user_token}Response
{
"message": "Invite cancelled successfully"
}Example
const response = await fetch(
`https://api.requestrocket.com/api/clients/${clientId}/invites/${inviteId}`,
{
method: 'DELETE',
headers: {
'Authorization': process.env.USER_TOKEN
}
}
);
const data = await response.json();
console.log(data.message);import requests
import os
client_id = "your-client-id"
invite_id = "invite-id"
response = requests.delete(
f'https://api.requestrocket.com/api/clients/{client_id}/invites/{invite_id}',
headers={'Authorization': os.getenv('USER_TOKEN')}
)
data = response.json()
print(data['message'])package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
"os"
)
type Response struct {
Message string `json:"message"`
}
func main() {
clientId := "your-client-id"
inviteId := "invite-id"
url := fmt.Sprintf("https://api.requestrocket.com/api/clients/%s/invites/%s", clientId, inviteId)
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Set("Authorization", os.Getenv("USER_TOKEN"))
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
var result Response
json.Unmarshal(body, &result)
fmt.Println(result.Message)
}import java.net.http.*;
import java.net.URI;
import com.google.gson.*;
public class DeleteInvite {
public static void main(String[] args) throws Exception {
String clientId = "your-client-id";
String inviteId = "invite-id";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.requestrocket.com/api/clients/" + clientId + "/invites/" + inviteId))
.header("Authorization", System.getenv("USER_TOKEN"))
.DELETE()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
JsonObject json = JsonParser.parseString(response.body()).getAsJsonObject();
System.out.println(json.get("message").getAsString());
}
}curl -X DELETE "https://api.requestrocket.com/api/clients/${CLIENT_ID}/invites/${INVITE_ID}" \
-H "Authorization: ${USER_TOKEN}"User Invites
List User Invites
Get all invitations sent to a specific user.
Request
GET /api/users/{userId}/invites HTTP/1.1
Host: api.requestrocket.com
Authorization: {user_token}Response
{
"invites": [
{
"clientName": "Acme Corporation",
"inviteId": "95c594c9-8a98-4aeb-ae3c-bad251bc3ce2",
"pKey": "INVITATION",
"roles": [
"user"
],
"userEmail": "user@example.com",
"parentId": "550e8400-e29b-41d4-a716-446655440000",
"TTL": 1770288917,
"sKey": "95c594c9-8a98-4aeb-ae3c-bad251bc3ce2"
}
],
"message": "Success"
}Example
const response = await fetch(
`https://api.requestrocket.com/api/users/${userId}/invites`,
{
headers: {
'Authorization': process.env.USER_TOKEN
}
}
);
const data = await response.json();
console.log('Your invites:', data.invites);
data.invites.forEach(invite => {
console.log(`Invited to: ${invite.clientName} as ${invite.roles.join(', ')}`);
});import requests
import os
user_id = "your-user-id"
response = requests.get(
f'https://api.requestrocket.com/api/users/{user_id}/invites',
headers={'Authorization': os.getenv('USER_TOKEN')}
)
data = response.json()
for invite in data['invites']:
print(f"Invited to: {invite['clientName']} as {', '.join(invite['roles'])}")package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
"os"
)
type Invite struct {
ClientName string `json:"clientName"`
InviteId string `json:"inviteId"`
PKey string `json:"pKey"`
Roles []string `json:"roles"`
UserEmail string `json:"userEmail"`
ParentId string `json:"parentId"`
TTL int64 `json:"TTL"`
SKey string `json:"sKey"`
}
type Response struct {
Invites []Invite `json:"invites"`
Message string `json:"message"`
}
func main() {
userId := "your-user-id"
url := fmt.Sprintf("https://api.requestrocket.com/api/users/%s/invites", userId)
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", os.Getenv("USER_TOKEN"))
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
var result Response
json.Unmarshal(body, &result)
for _, invite := range result.Invites {
fmt.Printf("Invited to: %s as %v\n", invite.ClientName, invite.Roles)
}
}import java.net.http.*;
import java.net.URI;
import com.google.gson.*;
public class ListUserInvites {
public static void main(String[] args) throws Exception {
String userId = "your-user-id";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.requestrocket.com/api/users/" + userId + "/invites"))
.header("Authorization", System.getenv("USER_TOKEN"))
.GET()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
JsonObject json = JsonParser.parseString(response.body()).getAsJsonObject();
JsonArray invites = json.getAsJsonArray("invites");
for (int i = 0; i < invites.size(); i++) {
JsonObject invite = invites.get(i).getAsJsonObject();
JsonArray roles = invite.getAsJsonArray("roles");
System.out.println("Invited to: " + invite.get("clientName").getAsString() +
" as " + roles);
}
}
}curl -X GET "https://api.requestrocket.com/api/users/${USER_ID}/invites" \
-H "Authorization: ${USER_TOKEN}"Accept Invite
Accept an invitation to join an organisation.
Request
PUT /api/users/{userId}/invites/{inviteId} HTTP/1.1
Host: api.requestrocket.com
Authorization: {user_token}
Content-Type: application/json
{
"acceptInvite": true
}Response
{
"message": "Invite accepted successfully"
}Example
const response = await fetch(
`https://api.requestrocket.com/api/users/${userId}/invites/${inviteId}`,
{
method: 'PUT',
headers: {
'Authorization': process.env.USER_TOKEN,
'Content-Type': 'application/json'
},
body: JSON.stringify({
acceptInvite: true
})
}
);
const data = await response.json();
console.log(data.message);import requests
import os
user_id = "your-user-id"
invite_id = "invite-id"
response = requests.put(
f'https://api.requestrocket.com/api/users/{user_id}/invites/{invite_id}',
headers={'Authorization': os.getenv('USER_TOKEN')},
json={'acceptInvite': True}
)
data = response.json()
print(data['message'])package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
"os"
)
type AcceptInviteRequest struct {
AcceptInvite bool `json:"acceptInvite"`
}
type Response struct {
Message string `json:"message"`
}
func main() {
userId := "your-user-id"
inviteId := "invite-id"
requestBody, _ := json.Marshal(AcceptInviteRequest{
AcceptInvite: true,
})
url := fmt.Sprintf("https://api.requestrocket.com/api/users/%s/invites/%s", userId, inviteId)
req, _ := http.NewRequest("PUT", url, bytes.NewBuffer(requestBody))
req.Header.Set("Authorization", os.Getenv("USER_TOKEN"))
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
var result Response
json.Unmarshal(body, &result)
fmt.Println(result.Message)
}import java.net.http.*;
import java.net.URI;
import com.google.gson.*;
public class AcceptInvite {
public static void main(String[] args) throws Exception {
String userId = "your-user-id";
String inviteId = "invite-id";
String json = "{\"acceptInvite\": true}";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.requestrocket.com/api/users/" + userId + "/invites/" + inviteId))
.header("Authorization", System.getenv("USER_TOKEN"))
.header("Content-Type", "application/json")
.PUT(HttpRequest.BodyPublishers.ofString(json))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
JsonObject jsonResponse = JsonParser.parseString(response.body()).getAsJsonObject();
System.out.println(jsonResponse.get("message").getAsString());
}
}curl -X PUT "https://api.requestrocket.com/api/users/${USER_ID}/invites/${INVITE_ID}" \
-H "Authorization: ${USER_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"acceptInvite": true
}'Reject Invite
Decline an invitation to join an organisation.
Request
DELETE /api/users/{userId}/invites/{inviteId} HTTP/1.1
Host: api.requestrocket.com
Authorization: {user_token}Response
{
"message": "Invite rejected successfully"
}Example
const response = await fetch(
`https://api.requestrocket.com/api/users/${userId}/invites/${inviteId}`,
{
method: 'DELETE',
headers: {
'Authorization': process.env.USER_TOKEN
}
}
);
const data = await response.json();
console.log(data.message);import requests
import os
user_id = "your-user-id"
invite_id = "invite-id"
response = requests.delete(
f'https://api.requestrocket.com/api/users/{user_id}/invites/{invite_id}',
headers={'Authorization': os.getenv('USER_TOKEN')}
)
data = response.json()
print(data['message'])package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
"os"
)
type Response struct {
Message string `json:"message"`
}
func main() {
userId := "your-user-id"
inviteId := "invite-id"
url := fmt.Sprintf("https://api.requestrocket.com/api/users/%s/invites/%s", userId, inviteId)
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Set("Authorization", os.Getenv("USER_TOKEN"))
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
var result Response
json.Unmarshal(body, &result)
fmt.Println(result.Message)
}import java.net.http.*;
import java.net.URI;
import com.google.gson.*;
public class RejectInvite {
public static void main(String[] args) throws Exception {
String userId = "your-user-id";
String inviteId = "invite-id";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.requestrocket.com/api/users/" + userId + "/invites/" + inviteId))
.header("Authorization", System.getenv("USER_TOKEN"))
.DELETE()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
JsonObject json = JsonParser.parseString(response.body()).getAsJsonObject();
System.out.println(json.get("message").getAsString());
}
}curl -X DELETE "https://api.requestrocket.com/api/users/${USER_ID}/invites/${INVITE_ID}" \
-H "Authorization: ${USER_TOKEN}"