--- name: anytype description: Interact with Anytype knowledge base via self-hosted JSON API. Create, search, list and manage objects, spaces, types and lists. metadata: clawdbot: emoji: "🧠" --- # Anytype Integration You have access to a self-hosted Anytype instance via its JSON API. ## Connection Details - **Base URL**: `http://192.168.1.150:31009` - **Auth Header**: `Authorization: Bearer VVP91vUjVAPF4xcnDZF2p61kgxu+4M04n3CGj/mngtk=` - **Version Header**: `Anytype-Version: 2025-05-20` Every request MUST include both headers. Use curl for all API calls. ## Common curl template ```bash curl -s -X METHOD "http://192.168.1.150:31009/v1/ENDPOINT" \ -H "Authorization: Bearer VVP91vUjVAPF4xcnDZF2p61kgxu+4M04n3CGj/mngtk=" \ -H "Anytype-Version: 2025-05-20" \ -H "Content-Type: application/json" \ -d '{"key":"value"}' ``` ## Available Endpoints ### Spaces - **List spaces**: `GET /v1/spaces` - **Get space**: `GET /v1/spaces/{space_id}` - **Get space members**: `GET /v1/spaces/{space_id}/members` ### Search - **Global search**: `POST /v1/search` with body `{"query": "search term"}` - **Search in space**: `POST /v1/spaces/{space_id}/search` with body `{"query": "search term"}` ### Objects - **List objects in space**: `GET /v1/spaces/{space_id}/objects` - **Get object**: `GET /v1/spaces/{space_id}/objects/{object_id}` - **Create object**: `POST /v1/spaces/{space_id}/objects` with body: ```json { "name": "Object title", "icon": "📝", "body": "Content in markdown format", "type_key": "ot-page", "description": "Optional description" } ``` - **Update object**: `PATCH /v1/spaces/{space_id}/objects/{object_id}` - **Delete object**: `DELETE /v1/spaces/{space_id}/objects/{object_id}` ### Types - **List types in space**: `GET /v1/spaces/{space_id}/types` - **Get type**: `GET /v1/spaces/{space_id}/types/{type_id}` ### Lists / Collections - **List lists**: `GET /v1/spaces/{space_id}/lists` - **Get list content**: `GET /v1/spaces/{space_id}/lists/{list_id}` - **Add object to list**: `POST /v1/spaces/{space_id}/lists/{list_id}/objects` with body `{"object_id": "..."}` ### Properties / Relations - **List properties**: `GET /v1/spaces/{space_id}/properties` ### Templates - **List templates for type**: `GET /v1/spaces/{space_id}/types/{type_id}/templates` ## Workflow 1. **Always start by listing spaces** to get the space_id 2. Then use the space_id in subsequent calls 3. For creating objects, first list types to find the correct type_key 4. Present results in a clean, readable format to the user 5. When searching, use global search first, then refine by space if needed ## Error Handling - 401: Token invalid or expired - 404: Object/space not found - 400: Bad request (check JSON body format) - If an endpoint returns an error, show the full response to help debug ## Important Notes - The API is RESTful with JSON responses - All dates are in ISO 8601 format - Object content (body) uses Markdown - The type_key for common types: ot-page (Page), ot-task (Task), ot-note (Note), ot-bookmark (Bookmark) - Always use `-s` flag with curl to suppress progress bars - Pipe through `python3 -m json.tool` or `jq` for readable output when showing to user