curl --request GET \
--url https://api.hyperspell.com/memories/get/{source}/{resource_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.hyperspell.com/memories/get/{source}/{resource_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.hyperspell.com/memories/get/{source}/{resource_id}', 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.hyperspell.com/memories/get/{source}/{resource_id}",
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.hyperspell.com/memories/get/{source}/{resource_id}"
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.hyperspell.com/memories/get/{source}/{resource_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hyperspell.com/memories/get/{source}/{resource_id}")
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{
"resource_id": "<string>",
"source": "reddit",
"type": "<string>",
"document": {
"children": [
{
"text": "The next release adds calendar search.",
"type": "text"
}
],
"title": "Project notes",
"type": "document"
},
"body_status": "full",
"title": "<string>",
"status": "pending",
"collection": "<string>",
"metadata": {},
"ingested_at": "2023-11-07T05:31:56Z",
"last_modified_at": "2023-11-07T05:31:56Z",
"document_date": "2023-11-07T05:31:56Z",
"chunks": [
{
"chunk_id": "<string>",
"summary": "<string>"
}
],
"next_cursor": "<string>",
"notices": [
{
"code": "ResponseContentLimited",
"message": "Showing part of the indexed channel content. The original channel may contain other messages. Large or unreadable messages and other details may be missing.",
"skipped_chunk_count": 0
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Get memory
Retrieve an indexed document. Slack and Teams return a bounded page of permitted content, with continuation when more indexed chunks are available.
curl --request GET \
--url https://api.hyperspell.com/memories/get/{source}/{resource_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.hyperspell.com/memories/get/{source}/{resource_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.hyperspell.com/memories/get/{source}/{resource_id}', 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.hyperspell.com/memories/get/{source}/{resource_id}",
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.hyperspell.com/memories/get/{source}/{resource_id}"
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.hyperspell.com/memories/get/{source}/{resource_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hyperspell.com/memories/get/{source}/{resource_id}")
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{
"resource_id": "<string>",
"source": "reddit",
"type": "<string>",
"document": {
"children": [
{
"text": "The next release adds calendar search.",
"type": "text"
}
],
"title": "Project notes",
"type": "document"
},
"body_status": "full",
"title": "<string>",
"status": "pending",
"collection": "<string>",
"metadata": {},
"ingested_at": "2023-11-07T05:31:56Z",
"last_modified_at": "2023-11-07T05:31:56Z",
"document_date": "2023-11-07T05:31:56Z",
"chunks": [
{
"chunk_id": "<string>",
"summary": "<string>"
}
],
"next_cursor": "<string>",
"notices": [
{
"code": "ResponseContentLimited",
"message": "Showing part of the indexed channel content. The original channel may contain other messages. Large or unreadable messages and other details may be missing.",
"skipped_chunk_count": 0
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
API Key or JWT User Token. If using an API Key, set the X-As-User header to act as a specific user. A JWT User Token is always scoped to a specific user.
Headers
Case-sensitive api or mcp. Channel pages use 32 KiB for both profiles; other reads use 1 MiB for api and 256 KiB for mcp.
api, mcp Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token
Path Parameters
reddit, notion, slack, google_calendar, google_mail, imap, google_meet, box, dropbox, github, gitlab, google_drive, vault, web_crawler, trace, microsoft_outlook, microsoft_teams, granola, fathom, fireflies, figma, linear, hubspot, salesforce, coda, confluence, jira, metabase, gong, clickup, lightfield, pylon, fellow, odoo, external_mcp, page Query Parameters
When true, include the document's extracted memories (chunks with summaries) in the chunks field, in document order.
Continuation from a Slack or Teams channel page.
128Response
Successful Response
reddit, notion, slack, google_calendar, google_mail, imap, google_meet, box, dropbox, github, gitlab, google_drive, vault, web_crawler, trace, microsoft_outlook, microsoft_teams, granola, fathom, fireflies, figma, linear, hubspot, salesforce, coda, confluence, jira, metabase, gong, clickup, lightfield, pylon, fellow, odoo, external_mcp, page Hyperdoc document type discriminator (document, message, file, event, ...).
The hyperdoc tree. Switch on type for the document frame and recurse through children for the body.
- Document
- Website
- Task
- Person
- Message
- Event
- File
- Conversation
- Trace
- Transcript
- Company
- Deal
- Invoice
Show child attributes
Show child attributes
{ "children": [ { "text": "The next release adds calendar search.", "type": "text" } ], "title": "Project notes", "type": "document" }
Content representation: full, matched excerpt, partial preview, or omitted. Absent on reads that do not yet report this status.
full, excerpt, preview, omitted Human-readable document title.
Indexing status of the document.
pending, processing, completed, failed, pending_review, skipped, filtered, cancelled The document's collection, if any.
Filterable custom metadata attached to the document.
When Hyperspell first indexed the document.
When the source document was last modified, if supplied by the source.
The document's own date (e.g. email sent date, event date).
Extracted memories (chunks with summaries) for this document, in document order. Present only when explicitly requested via include_chunks; omitted otherwise.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?