curl --request GET \
--url https://api-dev.narrative.io/app-invites \
--header 'Authorization: Bearer <token>'import requests
url = "https://api-dev.narrative.io/app-invites"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-dev.narrative.io/app-invites', 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-dev.narrative.io/app-invites",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-dev.narrative.io/app-invites"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-dev.narrative.io/app-invites")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-dev.narrative.io/app-invites")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"current_page": 1,
"next_page": null,
"total_records": 1,
"total_pages": 1,
"records": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"activated_at": null,
"app": {
"id": 100,
"name": "Test App",
"slug": "test-app"
},
"code": "abc123def456ghi789jkl012",
"company": {
"id": 42,
"logo": "https://example.com/logo.png",
"name": "Acme Corp"
},
"created_at": "2025-01-01T00:00:00Z",
"data": null,
"display_name": null,
"invitee_name": null,
"status": "pending",
"tags": [],
"updated_at": "2025-01-01T00:00:00Z",
"url": "https://example.com/invite?code=abc123def456ghi789jkl012"
}
]
}{
"error": "Unauthorized",
"error_description": "You are not authorized to use this endpoint."
}List app invites
Returns all app invites for the authenticated company and app.
Results are paginated using page (1-based, default 1) and per_page
(default 100) query parameters. Optionally filter results to a specific
installation using installation_id.
curl --request GET \
--url https://api-dev.narrative.io/app-invites \
--header 'Authorization: Bearer <token>'import requests
url = "https://api-dev.narrative.io/app-invites"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-dev.narrative.io/app-invites', 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-dev.narrative.io/app-invites",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-dev.narrative.io/app-invites"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-dev.narrative.io/app-invites")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-dev.narrative.io/app-invites")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"current_page": 1,
"next_page": null,
"total_records": 1,
"total_pages": 1,
"records": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"activated_at": null,
"app": {
"id": 100,
"name": "Test App",
"slug": "test-app"
},
"code": "abc123def456ghi789jkl012",
"company": {
"id": 42,
"logo": "https://example.com/logo.png",
"name": "Acme Corp"
},
"created_at": "2025-01-01T00:00:00Z",
"data": null,
"display_name": null,
"invitee_name": null,
"status": "pending",
"tags": [],
"updated_at": "2025-01-01T00:00:00Z",
"url": "https://example.com/invite?code=abc123def456ghi789jkl012"
}
]
}{
"error": "Unauthorized",
"error_description": "You are not authorized to use this endpoint."
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Number of page. Stars from the first (1) page.
Number of records to return.
Filter results to invites belonging to a specific installation. The installation must be owned by the authenticated caller (matching app and/or company).
Response
Successfully retrieved list of app invites.
A paginated list of app invites.
The number of requested page.
1
Total amount of accessible Access Rules
15000
Total amount of pages.
10
Show child attributes
Show child attributes
The number of the previous page, or null on the first page. Can also refer to the latest existing page if a page beyond the last one was requested.
1
The number of the next page, or null on the last page.
42
Was this page helpful?

