{ "openapi": "3.0.1", "info": { "title": "Manyfold API", "version": "0", "description": "This document describes the REST API for this [Manyfold](https://manyfold.app) instance.\n\nWarning! This API...\n\n* ... is not complete! Functionality is limited for now, but future releases will add more capabilities.\n* ... is not yet at v1! It's subject to breaking changes at any time.\n* ... is only valid for this host! Other Manyfold instances running different software versions may expose a different set of API functionality.\n" }, "paths": { "/.well-known/nodeinfo": { "get": { "summary": "Discovery URL for NodeInfo protocol", "tags": [ "NodeInfo" ], "responses": { "200": { "description": "Success", "content": { "application/json; profile=\"http://nodeinfo.diaspora.software/ns/schema/2.0#\"": { "schema": { "type": "object", "properties": { "links": { "type": "array", "items": { "type": "object", "properties": { "rel": { "type": "string", "example": "https://nodeinfo.diaspora.software/ns/schema/2.0" }, "href": { "type": "string", "example": "/nodeinfo/2.0", "description": "The URL to the full NodeInfo document" } } } } }, "required": [ "links" ] } } } } } } }, "/nodeinfo/2.0": { "get": { "summary": "Get server metadata in NodeInfo 2.0 format", "tags": [ "NodeInfo" ], "responses": { "200": { "description": "Success", "content": { "application/json; profile=\"http://nodeinfo.diaspora.software/ns/schema/2.0#\"": { "schema": { "type": "object", "properties": { "version": { "type": "string", "example": "2.0" }, "software": { "type": "object", "properties": { "name": { "type": "string", "example": "Manyfold" }, "version": { "type": "string", "example": "v0.103.0" } } }, "protocols": { "type": "array", "items": { "type": "string", "example": "activitypub" } }, "services": { "type": "object", "properties": { "inbound": { "type": "array", "items": { "type": "string" }, "example": [] }, "outbound": { "type": "array", "items": { "type": "string" }, "example": [] } } }, "openRegistrations": { "type": "boolean" }, "usage": { "type": "object", "properties": { "users": { "type": "object", "properties": { "total": { "type": "integer" }, "activeMonth": { "type": "integer" }, "activeHalfyear": { "type": "integer" } } } } }, "metadata": { "type": "object" } }, "required": [ "version", "software", "protocols", "openRegistrations" ] } } } } } } }, "/oembed": { "get": { "summary": "generic oEmbed API endpoint", "tags": [ "oEmbed" ], "parameters": [ { "name": "url", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "maxwidth", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "maxheight", "in": "query", "required": false, "schema": { "type": "integer" } } ], "responses": { "303": { "description": "Redirect to oembed version of the provided URL" } } } }, "/collections/{id}.oembed": { "get": { "summary": "oEmbed response for Collections", "tags": [ "oEmbed" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "maxwidth", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "maxheight", "in": "query", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "Success", "content": { "application/json+oembed": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/oembed_rich" }, { "$ref": "#/components/schemas/oembed_photo" }, { "$ref": "#/components/schemas/oembed_video" }, { "$ref": "#/components/schemas/oembed_link" } ], "discriminator": { "propertyName": "type", "mapping": { "rich": "#/components/schemas/oembed_rich", "photo": "#/components/schemas/oembed_photo", "video": "#/components/schemas/oembed_video", "link": "#/components/schemas/oembed_link" } } } } } }, "401": { "description": "Unauthorized" } } } }, "/creators/{id}.oembed": { "get": { "summary": "oEmbed response for Creators", "tags": [ "oEmbed" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "maxwidth", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "maxheight", "in": "query", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "Success", "content": { "application/json+oembed": { "schema": { "$ref": "#/components/schemas/oembed_link" } } } }, "401": { "description": "Unauthorized" } } } }, "/models/{id}.oembed": { "get": { "summary": "oEmbed response for Models", "tags": [ "oEmbed" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "maxwidth", "in": "query", "required": false, "schema": { "type": "integer" } }, { "name": "maxheight", "in": "query", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "Success", "content": { "application/json+oembed": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/oembed_rich" }, { "$ref": "#/components/schemas/oembed_photo" }, { "$ref": "#/components/schemas/oembed_video" }, { "$ref": "#/components/schemas/oembed_link" } ], "discriminator": { "propertyName": "type", "mapping": { "rich": "#/components/schemas/oembed_rich", "photo": "#/components/schemas/oembed_photo", "video": "#/components/schemas/oembed_video", "link": "#/components/schemas/oembed_link" } } } } } }, "401": { "description": "Unauthorized" } } } } }, "servers": [ { "url": "https://try.manyfold.app" } ], "components": { "schemas": { "oembed_link": { "type": "object", "properties": { "version": { "type": "string", "example": "1.0" }, "type": { "type": "string", "example": "link" }, "title": { "type": "string", "example": "Model Title" }, "author_name": { "type": "string", "example": "Creator Name" }, "author_url": { "type": "string", "example": "https://example.com/creators/bob" }, "provider_name": { "type": "string", "example": "Manyfold" }, "provider_url": { "type": "string", "example": "https://example.com" }, "cache_age": { "type": "integer", "example": 86400 } }, "required": [ "version", "type" ] }, "oembed_photo": { "type": "object", "properties": { "version": { "type": "string", "example": "1.0" }, "type": { "type": "string", "example": "photo" }, "url": { "type": "string", "example": "https://example.com/models/123/model_files/456.png" }, "width": { "type": "integer", "example": "256" }, "height": { "type": "integer", "example": "256" }, "title": { "type": "string", "example": "Model Title" }, "author_name": { "type": "string", "example": "Creator Name" }, "author_url": { "type": "string", "example": "https://example.com/creators/bob" }, "provider_name": { "type": "string", "example": "Manyfold" }, "provider_url": { "type": "string", "example": "https://example.com" }, "cache_age": { "type": "integer", "example": 86400 } }, "required": [ "version", "type", "url", "width", "height" ] }, "oembed_video": { "type": "object", "properties": { "version": { "type": "string", "example": "1.0" }, "type": { "type": "string", "example": "video" }, "html": { "type": "string", "example": "" }, "width": { "type": "integer", "example": "256" }, "height": { "type": "integer", "example": "256" }, "title": { "type": "string", "example": "Model Title" }, "author_name": { "type": "string", "example": "Creator Name" }, "author_url": { "type": "string", "example": "https://example.com/creators/bob" }, "provider_name": { "type": "string", "example": "Manyfold" }, "provider_url": { "type": "string", "example": "https://example.com" }, "cache_age": { "type": "integer", "example": 86400 } }, "required": [ "version", "type", "html", "width", "height" ] }, "oembed_rich": { "type": "object", "properties": { "version": { "type": "string", "example": "1.0" }, "type": { "type": "string", "example": "rich" }, "html": { "type": "string", "example": "" }, "width": { "type": "integer", "example": "256" }, "height": { "type": "integer", "example": "256" }, "title": { "type": "string", "example": "Model Title" }, "author_name": { "type": "string", "example": "Creator Name" }, "author_url": { "type": "string", "example": "https://example.com/creators/bob" }, "provider_name": { "type": "string", "example": "Manyfold" }, "provider_url": { "type": "string", "example": "https://example.com" }, "cache_age": { "type": "integer", "example": 86400 } }, "required": [ "version", "type", "html", "width", "height" ] } } } }