Spaces
List stories in a space
Requires the spaces feature and current access to the organization, program or recipient. File, story and supporter sections additionally follow their own permissions. Uses current clearance decisions for the blocked filter and reach fields.
GET
/
admin
/
spaces
/
{type}
/
{id}
/
stories
List stories in a space
curl --request GET \
--url https://api.gratona.com/v1/admin/spaces/{type}/{id}/stories \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.gratona.com/v1/admin/spaces/{type}/{id}/stories"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.gratona.com/v1/admin/spaces/{type}/{id}/stories', 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.gratona.com/v1/admin/spaces/{type}/{id}/stories",
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.gratona.com/v1/admin/spaces/{type}/{id}/stories"
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.gratona.com/v1/admin/spaces/{type}/{id}/stories")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gratona.com/v1/admin/spaces/{type}/{id}/stories")
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{
"data": [
{
"id": 123,
"title": "<string>",
"summary": "<string>",
"status": "<string>",
"privacy_level": "<string>",
"story_date": "2023-12-25",
"asset_count": 123,
"primary_file_id": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"reach": {
"audience": "<string>",
"blocked_count": 123,
"held_back": true,
"blocked_message": "<string>",
"blocked_files": [
{}
]
}
}
],
"meta": {
"current_page": 123,
"last_page": 123,
"per_page": 123,
"total": 123
}
}{
"message": "Unauthorized",
"status": "error"
}{
"message": "Something went wrong. Please try again.",
"status": "error",
"error": "invalid_request",
"code": "DONOR_NOT_FOUND"
}{
"message": "Not Found",
"status": "error"
}{
"errors": {},
"status": "error",
"message": "The given data was invalid."
}Authorizations
bearerAuthapiKeyAuth
Passport bearer token authentication for legacy admin sessions.
Path Parameters
Type.
Available options:
organization, program, recipient Record ID within the organization and any parent resource in this route.
Query Parameters
Status.
Available options:
draft, needs_context, ready_for_review, approved, published, rejected, archived Blocked.
Search.
Maximum string length:
255Page.
Required range:
x >= 1Per page.
Required range:
1 <= x <= 100⌘I
List stories in a space
curl --request GET \
--url https://api.gratona.com/v1/admin/spaces/{type}/{id}/stories \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.gratona.com/v1/admin/spaces/{type}/{id}/stories"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.gratona.com/v1/admin/spaces/{type}/{id}/stories', 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.gratona.com/v1/admin/spaces/{type}/{id}/stories",
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.gratona.com/v1/admin/spaces/{type}/{id}/stories"
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.gratona.com/v1/admin/spaces/{type}/{id}/stories")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gratona.com/v1/admin/spaces/{type}/{id}/stories")
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{
"data": [
{
"id": 123,
"title": "<string>",
"summary": "<string>",
"status": "<string>",
"privacy_level": "<string>",
"story_date": "2023-12-25",
"asset_count": 123,
"primary_file_id": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"reach": {
"audience": "<string>",
"blocked_count": 123,
"held_back": true,
"blocked_message": "<string>",
"blocked_files": [
{}
]
}
}
],
"meta": {
"current_page": 123,
"last_page": 123,
"per_page": 123,
"total": 123
}
}{
"message": "Unauthorized",
"status": "error"
}{
"message": "Something went wrong. Please try again.",
"status": "error",
"error": "invalid_request",
"code": "DONOR_NOT_FOUND"
}{
"message": "Not Found",
"status": "error"
}{
"errors": {},
"status": "error",
"message": "The given data was invalid."
}