{
"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"
]
}
}
}
}