Save content
The URL to save. Supports articles, tweets, YouTube videos, Reddit posts, and more.
Optional collection ID to add the content to after saving.
Optional tags to attach to the content. Tags are normalized to lowercase with dashes replacing spaces.
Save a URL to your library. Animus automatically processes and analyzes the content.
Scope: write
curl -X POST https://api.animus.so/api/v1/content \
-H "Authorization: Bearer anm_your_key" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/article"}'
Response 200
{
"success": true,
"message": "Processing content...",
"userContentId": "550e8400-e29b-41d4-a716-446655440000"
}
If the URL was already saved, the response includes "duplicate": true. If you don’t have enough credits, the content may be saved as a bookmark without AI analysis — the response will include "savedAsBookmark": true with a "bookmarkReason": "no_credits".
List recent content
GET /api/v1/content/recent
Returns your most recently saved content, ordered by save date.
Scope: read
| Parameter | Type | Default | Description |
|---|
limit | integer | 20 | Items per page (1-50) |
offset | integer | 0 | Offset for pagination (0-10000) |
sort | string | created_at | Sort by: created_at, updated_at, or title |
curl "https://api.animus.so/api/v1/content/recent?limit=10" \
-H "Authorization: Bearer anm_your_key"
Response 200
{
"items": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"url": "https://example.com/article",
"thumbnailUrl": null,
"platform": "web",
"savedAt": "2025-01-15T10:30:00.000Z",
"tags": ["technology"],
"isFavorite": false,
"isArchived": false,
"deletedAt": null,
"status": "ready",
"title": "Article Title",
"summary": "A brief summary...",
"creator": null
}
],
"total": 142,
"offset": 0,
"limit": 10,
"hasMore": true
}
total is only included on the first page (when offset is 0). Use hasMore for subsequent pagination.
Get content detail
Returns full details for a specific content item, including AI-generated summary, key takeaways, entities, topics, and metadata.
Scope: read
| Parameter | Type | Description |
|---|
id | string | The content item ID (path parameter) |
curl https://api.animus.so/api/v1/content/CONTENT_ID \
-H "Authorization: Bearer anm_your_key"
Response 200
{
"content": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"url": "https://example.com/article",
"thumbnailUrl": null,
"platform": "web",
"savedAt": "2025-01-15T10:30:00.000Z",
"tags": ["technology", "ai"],
"isFavorite": false,
"isArchived": false,
"deletedAt": null,
"status": "ready",
"processingMode": "full",
"title": "Article Title",
"summary": "A brief summary of the article...",
"fullSummary": "A detailed multi-paragraph summary...",
"keyTakeaways": ["Key point 1", "Key point 2"],
"creator": null,
"notes": null,
"qualityScore": 0.85,
"characteristics": ["informative", "technical"],
"entities": [
{ "text": "OpenAI", "type": "organization", "salience": 0.9 }
],
"sentiment": { "score": 0.2, "magnitude": 0.5 },
"topics": [
{ "name": "Artificial Intelligence", "confidence": 0.95 }
],
"links": ["https://example.com/related"],
"specializedContent": null,
"viewCount": 3,
"lastViewedAt": "2025-01-16T08:00:00.000Z",
"collections": [
{ "id": "uuid", "title": "Research", "icon": null }
]
},
"specializedContent": null
}
The response is wrapped in a content object. AI-analyzed fields (summary, keyTakeaways, entities, etc.) are null while content is still processing or if it was saved as a bookmark.
Get library statistics
GET /api/v1/content/stats
Returns aggregate statistics about your library.
Scope: read
curl https://api.animus.so/api/v1/content/stats \
-H "Authorization: Bearer anm_your_key"
Response 200
{
"totalItems": 142,
"collectionsCount": 8,
"uncategorizedCount": 23,
"archivedCount": 5,
"deletedCount": 2,
"bookmarkCount": 31
}
List deleted content
GET /api/v1/content/deleted
Returns content items in your trash. Same response shape as list recent content.
Scope: read
curl https://api.animus.so/api/v1/content/deleted \
-H "Authorization: Bearer anm_your_key"
Delete content
DELETE /api/v1/content/:id
Moves a content item to the trash (soft delete). Can be restored within 30 days.
Scope: write
| Parameter | Type | Description |
|---|
id | string | The content item ID (path parameter) |
curl -X DELETE https://api.animus.so/api/v1/content/CONTENT_ID \
-H "Authorization: Bearer anm_your_key"
Response: 204 No Content