Create a note
const url = 'https://api.hyperresearch.ai/v1/vault/notes';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"id":"example","title":"example","body":"example","tags":["example"],"aliases":["example"],"status":"example","type":"example","tier":"example","content_type":"example","source":"example","summary":"example","doi":"example","parent":"example","raw_r2_key":"example","fetched_at":"example","fetch_provider":"example","utility_score":1,"authority_score":1,"centrality_score":1,"quality_score":1,"independence":1,"is_retracted":true,"run_id":"example","reused_from_run":"example","rights":{"license":"example","infer":true,"excerpt":true,"external_report":true,"cache":true,"embed":true,"export":true,"retain":true,"inference_only":true,"exportable":true},"rights_overlay":{"license":"example","infer":true,"excerpt":true,"external_report":true,"cache":true,"embed":true,"export":true,"retain":true,"inference_only":true,"exportable":true}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.hyperresearch.ai/v1/vault/notes \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "id": "example", "title": "example", "body": "example", "tags": [ "example" ], "aliases": [ "example" ], "status": "example", "type": "example", "tier": "example", "content_type": "example", "source": "example", "summary": "example", "doi": "example", "parent": "example", "raw_r2_key": "example", "fetched_at": "example", "fetch_provider": "example", "utility_score": 1, "authority_score": 1, "centrality_score": 1, "quality_score": 1, "independence": 1, "is_retracted": true, "run_id": "example", "reused_from_run": "example", "rights": { "license": "example", "infer": true, "excerpt": true, "external_report": true, "cache": true, "embed": true, "export": true, "retain": true, "inference_only": true, "exportable": true }, "rights_overlay": { "license": "example", "infer": true, "excerpt": true, "external_report": true, "cache": true, "embed": true, "export": true, "retain": true, "inference_only": true, "exportable": true } }'Write a note into the workspace vault. title is required; everything else (body, tags, source URL, scores, rights) is optional. Returns the note id; pass id to choose it yourself.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
object
object
Examplegenerated
{ "id": "example", "title": "example", "body": "example", "tags": [ "example" ], "aliases": [ "example" ], "status": "example", "type": "example", "tier": "example", "content_type": "example", "source": "example", "summary": "example", "doi": "example", "parent": "example", "raw_r2_key": "example", "fetched_at": "example", "fetch_provider": "example", "utility_score": 1, "authority_score": 1, "centrality_score": 1, "quality_score": 1, "independence": 1, "is_retracted": true, "run_id": "example", "reused_from_run": "example", "rights": { "license": "example", "infer": true, "excerpt": true, "external_report": true, "cache": true, "embed": true, "export": true, "retain": true, "inference_only": true, "exportable": true }, "rights_overlay": { "license": "example", "infer": true, "excerpt": true, "external_report": true, "cache": true, "embed": true, "export": true, "retain": true, "inference_only": true, "exportable": true }}Responses
Section titled “ Responses ”Created
object
Examplegenerated
{ "id": "example"}Headers
Section titled “Headers”Example
"reads";q=60;w=60The quota policy this request was counted against (draft-ietf-httpapi-ratelimit-headers): "<bucket>";q=<requests>;w=<window seconds>, e.g. "reads";q=60;w=60. Buckets: reads 60/min, status 600/min, creates 10/min, writes 20/min per credential; public 300/min per network on keyless routes.
Example
"reads";r=57;t=41Remaining quota in the current window: "<bucket>";r=<remaining>;t=<seconds until reset>, e.g. "reads";r=57;t=41.
Requests allowed per window in this bucket (legacy form of RateLimit-Policy).
Requests left in this window (legacy form of RateLimit).
Unix time (seconds) when the window resets.
Which bucket counted the request: reads, status, creates, writes or public.
Invalid request
object
object
Example
{ "error": { "type": "invalid_request", "code": "missing_api_key", "request_id": "req_01J9ZQ7V6H0000000000000000" }}Authentication failed
object
object
Example
{ "error": { "type": "invalid_request", "code": "missing_api_key", "request_id": "req_01J9ZQ7V6H0000000000000000" }}Insufficient scope or plan
object
object
Example
{ "error": { "type": "invalid_request", "code": "missing_api_key", "request_id": "req_01J9ZQ7V6H0000000000000000" }}Not found
object
object
Example
{ "error": { "type": "invalid_request", "code": "missing_api_key", "request_id": "req_01J9ZQ7V6H0000000000000000" }}Rate limited or over quota
object
object
Example
{ "error": { "type": "invalid_request", "code": "missing_api_key", "request_id": "req_01J9ZQ7V6H0000000000000000" }}Headers
Section titled “Headers”Seconds to wait before retrying. Always present on a 429.
Example
"reads";q=60;w=60The quota policy this request was counted against (draft-ietf-httpapi-ratelimit-headers): "<bucket>";q=<requests>;w=<window seconds>, e.g. "reads";q=60;w=60. Buckets: reads 60/min, status 600/min, creates 10/min, writes 20/min per credential; public 300/min per network on keyless routes.
Example
"reads";r=57;t=41Remaining quota in the current window: "<bucket>";r=<remaining>;t=<seconds until reset>, e.g. "reads";r=57;t=41.
Requests allowed per window in this bucket (legacy form of RateLimit-Policy).
Requests left in this window (legacy form of RateLimit).
Unix time (seconds) when the window resets.
Which bucket counted the request: reads, status, creates, writes or public.
Internal error
object
object
Example
{ "error": { "type": "invalid_request", "code": "missing_api_key", "request_id": "req_01J9ZQ7V6H0000000000000000" }}