Skip to main content
The Animus REST API lets you programmatically manage your content library. Save content, search across everything you’ve collected, and organize items into collections — all with simple HTTP requests.

Base URL

https://api.animus.so/api/v1

Authentication

All API requests require an API key sent as a Bearer token:
curl https://api.animus.so/api/v1/content/stats \
  -H "Authorization: Bearer anm_your_api_key_here"
API keys are created in the Animus app under Integrations > API Keys. See the authentication guide for details.

Available endpoints

Content

Save, retrieve, and manage content items in your library.

Collections

Create and manage collections to organize your content.

Search

Full-text and semantic search across your saved content.

Authentication

Create and manage API keys, scopes, and permissions.

Quick start

Save a URL to your library:
curl -X POST https://api.animus.so/api/v1/content \
  -H "Authorization: Bearer anm_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/article"}'
Search your library:
curl "https://api.animus.so/api/v1/search?q=pricing+strategies" \
  -H "Authorization: Bearer anm_your_api_key_here"
Get library statistics:
curl https://api.animus.so/api/v1/content/stats \
  -H "Authorization: Bearer anm_your_api_key_here"
{
  "data": {
    "totalItems": 142,
    "collectionsCount": 8,
    "uncategorizedCount": 23,
    "archivedCount": 5,
    "deletedCount": 2,
    "bookmarkCount": 31
  },
  "statusCode": 200,
  "timestamp": "2025-01-15T10:30:00.000Z"
}

Response format

All API responses are wrapped in a standard envelope:
{
  "data": { ... },
  "statusCode": 200,
  "timestamp": "2025-01-15T10:30:00.000Z"
}
FieldTypeDescription
dataanyThe endpoint-specific response payload
statusCodeintegerHTTP status code
timestampstringISO 8601 timestamp of the response
All response examples in this documentation show the contents of the data field.

Rate limits

API key requests are rate-limited per endpoint. If you exceed the limit, you’ll receive a 429 Too Many Requests response. Wait and retry after the period resets.
EndpointLimit
Search60 requests/minute
Content ingestion10 requests/minute
Other read endpoints60 requests/minute

Errors

The API uses standard HTTP status codes:
CodeDescription
200Success
201Created
204No content (successful delete)
400Bad request — check your parameters
401Unauthorized — invalid or missing API key
403Forbidden — endpoint not available via API key, or missing scope
404Not found
429Rate limit exceeded
500Server error