An object is any item you've saved to your mind — a URL, note, image, or document. Every object has a type, optional content, and metadata like tags, spaces, and AI-generated fields.
Actions
List objects
Returns all objects belonging to the authenticated user. Objects outside the access key's content scope are silently omitted from results.
Query parameters
| Parameter |
Type |
Default |
Description |
| q |
string |
— |
Search query. See syntax. |
| id |
Uid |
— |
Object IDs to fetch. Repeatable: ?id=…&id=…. |
| spaceId |
Uid |
— |
Restrict results to objects belonging to the given space. |
| similarTo Mastermind |
Uid |
— |
Return objects related to the given object ID, ranked by similarity. |
| contentAs |
string |
native |
Format for content body. Currently text/markdown. |
| limit |
integer |
10000 |
Max results. Capped at 10000 — the cap is removed when streaming with Accept: application/jsonl. |
When q is provided, results are capped at 1000 and search costs apply. The cap is lifted in streaming mode.
Headers
| Header |
Description |
| Accept required |
Either application/json (returns a single array) or application/jsonl (streaming mode — every matching object as newline-delimited JSON). |
[
{
"id": "a1B2c3D4e5F6g7H8i9J0k1",
"title": "The Art of Plain Text",
"url": "https://example.com/plain-text",
"content": {
"type": "text/markdown",
"body": "# The Art of Plain Text\n\nPlain text is the most portable, future-proof format..."
},
"tags": [
{ "name": "writing" },
{ "name": "tools" }
],
"created": "2024-03-01T12:00:00Z",
"modified": "2024-03-01T12:00:00Z",
"bumped": "2024-03-01T12:00:00Z"
}
]
{"id":"a1B2c3D4e5F6g7H8i9J0k1","title":"The Art of Plain Text",…}
{"id":"z9Y8x7W6v5U4t3S2r1Q0p9","title":"Meeting notes",…}
{"id":"m5N6o7P8q9R0s1T2u3V4w5","title":"Reading list",…}
Create an object
Creates a new object from a URL, inline content, or uploaded file.
Request body
| Property |
Type |
Description |
| title |
string |
Display title. If omitted, it's extracted from the url or content. |
| spaces |
ObjectSpace[] |
Spaces to add the object to on creation. |
| tags |
ObjectTag[] |
Tags to attach on creation. |
|
One of
provide exactly one — combining them returns 400
|
| blob multipart only |
binary |
Raw file bytes sent alongside the metadata. Only valid when the request is multipart/form-data — encode the metadata JSON as the metadata part and the bytes as the blob part. The filename parameter of the blob part's Content-Disposition header is captured as the blob's name. Capped at 64 MB. See supported formats. |
| content |
string | Content |
The content body. Pass a plain string or a structured Content object. |
| url |
string |
A remote URL to save. |
{
"id": "a1B2c3D4e5F6g7H8i9J0k1",
"title": "Example Article",
"url": "https://example.com/article",
"tags": [
{ "name": "reading" }
],
"created": "2024-04-08T09:00:00Z",
"modified": "2024-04-08T09:00:00Z",
"bumped": "2024-04-08T09:00:00Z"
}
{
"id": "a1B2c3D4e5F6g7H8i9J0k1",
"title": "Example Article",
"url": "https://example.com/article",
"tags": [
{ "name": "reading" }
],
"created": "2024-04-08T09:00:00Z",
"modified": "2024-04-08T09:00:00Z",
"bumped": "2024-04-08T15:30:00Z"
}
If the request body resolves to a blob that already exists in your mind — the same URL, the same content body, or a byte-identical upload — the API returns the existing object instead of creating a duplicate, refreshes its bumped timestamp, and responds with 200 OK rather than 201 Created.
Get an object
Retrieves a single object by its ID.
Path parameters
| Parameter |
Type |
Description |
| id |
Uid |
Object to retrieve. |
Query parameters
| Parameter |
Type |
Default |
Description |
| contentAs |
string |
native |
Format for content body. Currently text/markdown. |
{
"id": "a1B2c3D4e5F6g7H8i9J0k1",
"title": "The Art of Plain Text",
"url": "https://example.com/plain-text",
"content": {
"type": "text/markdown",
"body": "# The Art of Plain Text\n\nPlain text is the most portable, future-proof format..."
},
"tags": [
{ "name": "writing" },
{ "name": "tools" }
],
"created": "2024-03-01T12:00:00Z",
"modified": "2024-03-01T12:00:00Z",
"bumped": "2024-03-01T12:00:00Z"
}
Get object blob
Returns the original blob that was uploaded to the object — no transcoded or derived variants. Only works for objects with a single uploaded attachment (e.g. an image, video, or PDF); returns 422 otherwise. The response may be a 302 redirect to a CDN URL, so your client must follow redirects.
Path parameters
| Parameter |
Type |
Description |
| id |
Uid |
Object to fetch. |
Location: https://mymind.media/...
Get object content
Returns the content of a text-based object. Set the Accept header to pick a format, or omit it to receive the content in its native format. Only works for text-based objects (e.g. article, note). Returns 422 for non-text types, and 406 if the requested format isn't supported.
Path parameters
| Parameter |
Type |
Description |
| id |
Uid |
Object to read. |
Headers
| Header |
Description |
| Accept |
One of text/markdown, application/prose+json, or text/html. Omit to receive the content in its native format. |
# The Art of Plain Text
Plain text is the most portable, future-proof format for writing...
Get object screenshot
Returns the screenshot captured at save time — typically the rendered view of a saved web page or article. Returns 422 for objects without a screenshot. The response may be a 302 redirect to a CDN URL, so your client must follow redirects.
Path parameters
| Parameter |
Type |
Description |
| id |
Uid |
Object to fetch. |
Location: https://mymind.media/...
Get object thumbnail
Returns a thumbnail image for the object. Useful for previews, lists, and grids. Available for any object with a renderable thumbnail (images, videos, articles with cover images, etc.).
Path parameters
| Parameter |
Type |
Description |
| id |
Uid |
Object to preview. |
Query parameters
| Parameter |
Type |
Default |
Description |
| size |
string |
full |
Containment box as WxH (e.g. 100x100). The thumbnail is scaled to fit inside this box, preserving aspect ratio — equivalent to CSS object-fit: contain. Omit for the default, pre-rendered thumbnail. |
Location: https://mymind.media/...
// signed URL, valid for ~5 minutes
Update an object
Updates an object's metadata. Only include the fields you want to change — omitted fields are left untouched.
Path parameters
| Parameter |
Type |
Description |
| id |
Uid |
Object to update. |
Request body
| Property |
Type |
Description |
| title |
string |
New display title for the object. |
| summary |
string |
New summary for the object. |
Create an object note
Appends a new note to the object's notes array and returns its assigned id. Send Markdown for a simple note, or Prose to preserve rich formatting.
UI support
Objects can hold up to 100 notes via the API, but the mymind app currently surfaces only the first one (notes[0]). Additional notes are stored and returned by the API, but won't be visible in the app until multi-note UI ships.
Path parameters
| Parameter |
Type |
Description |
| objectId |
Uid |
Object to attach the note to. |
Headers
| Header |
Description |
| Content-Type required |
Either text/markdown or application/prose+json. |
Request body
The note body, in the format declared by Content-Type.
Reminders for later:
- [ ] Follow up with Sam
- [ ] Check on the proofs
{
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [{ "type": "text", "text": "Reminders for later:" }]
},
{
"type": "taskList",
"content": [
{
"type": "taskItem",
"attrs": { "checked": false },
"content": [
{
"type": "paragraph",
"content": [{ "type": "text", "text": "Follow up with Sam" }]
}
]
},
{
"type": "taskItem",
"attrs": { "checked": false },
"content": [
{
"type": "paragraph",
"content": [{ "type": "text", "text": "Check on the proofs" }]
}
]
}
]
}
]
}
{
"id": "n4K8m2N6p9Q3r5T7v1X0z2"
}
Update an object note
Replaces the body of an existing note. Returns 404 if the note doesn't exist on the object. This is a full replace — not a patch.
Path parameters
| Parameter |
Type |
Description |
| objectId |
Uid |
Object the note belongs to. |
| noteId |
Uid |
Note to update. |
Headers
| Header |
Description |
| Content-Type required |
Either text/markdown or application/prose+json. |
Delete an object note
Removes a note from the object's notes array. Idempotent — deleting a note that's already gone is a no-op.
Path parameters
| Parameter |
Type |
Description |
| objectId |
Uid |
Object the note belongs to. |
| noteId |
Uid |
Note to delete. |
Update object content
Replaces the entire content body of a Note. Returns 422 for any other object type. This is a full replace — not a patch. Send Markdown for a simple rewrite, or Prose to preserve rich formatting.
Path parameters
| Parameter |
Type |
Description |
| id |
Uid |
Object to update. |
Headers
| Header |
Description |
| Content-Type required |
Either text/markdown or application/prose+json. |
Add tags to an object
Adds tags to an object.
Path parameters
| Parameter |
Type |
Description |
| objectId |
Uid |
Object to tag. |
Request body
| Property |
Type |
Description |
| tags |
ObjectTag[] |
Tags to add to the object. |
{
"tags": [
{ "name": "design" },
{ "name": "inspiration" }
]
}
Remove tags from an object
Removes one or more tags from an object. Tags can be referenced by name or by id — mix and match within the same request. Removing a tag that isn't on the object is a no-op.
Path parameters
| Parameter |
Type |
Description |
| objectId |
Uid |
Object to untag. |
Request body
An array of tag references. Each entry must contain either name or id.
[
{ "name": "design" },
{ "name": "inspiration" }
]
[
{ "id": "t8R3p9K2m5N7q1V4x6L0z8" }
]
Add an object to spaces
Adds an object to one or more spaces. Objects may belong to a maximum of 100 spaces.
Path parameters
| Parameter |
Type |
Description |
| objectId |
Uid |
Object to add. |
Request body
[
{ "id": "j5K6l7M8n9O0p1Q2r3S4t5" }
]
Pin an object
Pins an object to your top of mind. Pass an optional position in the body to control ordering — omit it to append to the end.
Path parameters
| Parameter |
Type |
Description |
| id |
Uid |
Object to pin. |
Request body
| Property |
Type |
Description |
| position |
number |
Zero-based slot in your top of mind. Omit to append to the end. |
Unpin an object
Removes an object from your top of mind. Idempotent — unpinning an object that isn't pinned is a no-op.
Path parameters
| Parameter |
Type |
Description |
| id |
Uid |
Object to unpin. |
Delete an object
Soft-deletes an object. Deleted objects are recoverable for 30 days, after which they are permanently destroyed.
Path parameters
| Parameter |
Type |
Description |
| id |
Uid |
Object to delete. |
Restore an object
Restores a deleted object. Objects can be restored within 30 days of deletion.
Path parameters
| Parameter |
Type |
Description |
| id |
Uid |
Object to restore. |