# REST API

> Plain HTTPS with a bearer key. Every endpoint, generated from the API's own spec.

Every call is plain HTTPS with a bearer key, so any language that can make a web request can use
Geniffy. The Python and TypeScript SDKs are thin layers over these calls.

## Base address

```text
https://api.geniffy.com
```

## Authentication

Send your key in the `Authorization` header. Make keys under **API keys** in the Geniffy app; see
[Keys and spaces](https://docs.geniffy.com/keys-and-spaces).

```text
Authorization: Bearer gnf_live_...
```

## Spaces

Name one of your users in the `X-Geniffy-Space` header, or as `space` in the body or the query string.
What a request spells out beats the header. Leave both out for your own memory.

## Responses

Responses are JSON. Every response carries an `X-Request-ID` header; see [Request ids](https://docs.geniffy.com/request-ids).
An error carries a code you can branch on and a sentence written for a person; see
[Errors and limits](https://docs.geniffy.com/errors).

## Endpoints

- [Memories](https://docs.geniffy.com/api/memories): Add notes, pages, conversations and files; list, read, correct and forget.
- [Recall](https://docs.geniffy.com/api/recall): context for your prompt, ask for an answer, search for ranked memories.
- [People](https://docs.geniffy.com/api/people): profile, brief and graph.
- [Sources](https://docs.geniffy.com/api/sources): What was added, how learning went, and deleting a source.
- [Spaces](https://docs.geniffy.com/api/spaces): Which of your users have memory, and forgetting one.
- [Your key](https://docs.geniffy.com/api/key): Whose key this is, and which memory a call reaches.

The spec itself is at `https://api.geniffy.com/v1/openapi.json`, for generating a client of your own.

Source: https://docs.geniffy.com/api
