15458 lines
424 KiB
JSON
15458 lines
424 KiB
JSON
{
|
|
"openapi": "3.1.0",
|
|
"info": {
|
|
"title": "AT Protocol XRPC API",
|
|
"summary": "An unofficial conversion of AT Protocol's lexicons to OpenAPI's schema format.",
|
|
"version": "0.0.0",
|
|
"license": {
|
|
"name": "MIT License",
|
|
"identifier": "MIT"
|
|
}
|
|
},
|
|
"servers": [
|
|
{
|
|
"url": "https://bsky.social/xrpc/",
|
|
"description": "AT Protocol PDS XRPC server"
|
|
},
|
|
{
|
|
"url": "https://api.bsky.app/xrpc/",
|
|
"description": "AT Protocol AppView XRPC server"
|
|
},
|
|
{
|
|
"url": "https://syu.is/xrpc/",
|
|
"description": "self-host server pds"
|
|
},
|
|
{
|
|
"url": "https://api.syu.is/xrpc/",
|
|
"description": "self-host server bsky"
|
|
}
|
|
],
|
|
"paths": {
|
|
"/app.bsky.actor.getPreferences": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.actor"
|
|
],
|
|
"summary": "Get private preferences attached to the current account. Expected use is synchronization between multiple devices, and import/export during account migration. Requires auth.",
|
|
"operationId": "app.bsky.actor.getPreferences",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"preferences"
|
|
],
|
|
"properties": {
|
|
"preferences": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.preferences"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.actor.getProfile": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.actor"
|
|
],
|
|
"summary": "Get detailed profile view of an actor. Does not require auth, but contains relevant metadata with auth.",
|
|
"operationId": "app.bsky.actor.getProfile",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "actor",
|
|
"in": "query",
|
|
"description": "Handle or DID of account to fetch profile of.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Handle or DID of account to fetch profile of.",
|
|
"format": "at-identifier"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileViewDetailed"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.actor.getProfiles": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.actor"
|
|
],
|
|
"summary": "Get detailed profile views of multiple actors.",
|
|
"operationId": "app.bsky.actor.getProfiles",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "actors",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "at-identifier"
|
|
},
|
|
"maxItems": 25
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"profiles"
|
|
],
|
|
"properties": {
|
|
"profiles": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileViewDetailed"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.actor.getSuggestions": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.actor"
|
|
],
|
|
"summary": "Get a list of suggested actors. Expected use is discovery of accounts to follow during new account onboarding.",
|
|
"operationId": "app.bsky.actor.getSuggestions",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"actors"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"actors": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileView"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.actor.putPreferences": {
|
|
"post": {
|
|
"tags": [
|
|
"app.bsky.actor"
|
|
],
|
|
"summary": "Set the private preferences attached to the account.",
|
|
"operationId": "app.bsky.actor.putPreferences",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"preferences"
|
|
],
|
|
"properties": {
|
|
"preferences": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.preferences"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.actor.searchActors": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.actor"
|
|
],
|
|
"summary": "Find actors (profiles) matching search criteria. Does not require auth.",
|
|
"operationId": "app.bsky.actor.searchActors",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "term",
|
|
"in": "query",
|
|
"description": "DEPRECATED: use 'q' instead.",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "DEPRECATED: use 'q' instead."
|
|
}
|
|
},
|
|
{
|
|
"name": "q",
|
|
"in": "query",
|
|
"description": "Search query string. Syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended.",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Search query string. Syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended."
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 25
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"actors"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"actors": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileView"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.actor.searchActorsTypeahead": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.actor"
|
|
],
|
|
"summary": "Find actor suggestions for a prefix search term. Expected use is for auto-completion during text field entry. Does not require auth.",
|
|
"operationId": "app.bsky.actor.searchActorsTypeahead",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "term",
|
|
"in": "query",
|
|
"description": "DEPRECATED: use 'q' instead.",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "DEPRECATED: use 'q' instead."
|
|
}
|
|
},
|
|
{
|
|
"name": "q",
|
|
"in": "query",
|
|
"description": "Search query prefix; not a full query string.",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Search query prefix; not a full query string."
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 10
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"actors"
|
|
],
|
|
"properties": {
|
|
"actors": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileViewBasic"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.feed.getActorFeeds": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.feed"
|
|
],
|
|
"summary": "Get a list of feeds (feed generator records) created by the actor (in the actor's repo).",
|
|
"operationId": "app.bsky.feed.getActorFeeds",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "actor",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "at-identifier"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"feeds"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"feeds": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.generatorView"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.feed.getActorLikes": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.feed"
|
|
],
|
|
"summary": "Get a list of posts liked by an actor. Does not require auth.",
|
|
"operationId": "app.bsky.feed.getActorLikes",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "actor",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "at-identifier"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"feed"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"feed": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.feedViewPost"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
},
|
|
{
|
|
"const": "BlockedActor"
|
|
},
|
|
{
|
|
"const": "BlockedByActor"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.feed.getAuthorFeed": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.feed"
|
|
],
|
|
"summary": "Get a view of an actor's 'author feed' (post and reposts by the author). Does not require auth.",
|
|
"operationId": "app.bsky.feed.getAuthorFeed",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "actor",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "at-identifier"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "filter",
|
|
"in": "query",
|
|
"description": "Combinations of post/repost types to include in response.",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Combinations of post/repost types to include in response.",
|
|
"default": "posts_with_replies",
|
|
"enum": [
|
|
"posts_with_replies",
|
|
"posts_no_replies",
|
|
"posts_with_media",
|
|
"posts_and_author_threads"
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"feed"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"feed": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.feedViewPost"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
},
|
|
{
|
|
"const": "BlockedActor"
|
|
},
|
|
{
|
|
"const": "BlockedByActor"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.feed.getFeed": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.feed"
|
|
],
|
|
"summary": "Get a hydrated feed from an actor's selected feed generator. Implemented by App View.",
|
|
"operationId": "app.bsky.feed.getFeed",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "feed",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"feed"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"feed": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.feedViewPost"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
},
|
|
{
|
|
"const": "UnknownFeed"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.feed.getFeedGenerator": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.feed"
|
|
],
|
|
"summary": "Get information about a feed generator. Implemented by AppView.",
|
|
"operationId": "app.bsky.feed.getFeedGenerator",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "feed",
|
|
"in": "query",
|
|
"description": "AT-URI of the feed generator record.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "AT-URI of the feed generator record.",
|
|
"format": "at-uri"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"view",
|
|
"isOnline",
|
|
"isValid"
|
|
],
|
|
"properties": {
|
|
"view": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.generatorView"
|
|
},
|
|
"isOnline": {
|
|
"type": "boolean",
|
|
"description": "Indicates whether the feed generator service has been online recently, or else seems to be inactive."
|
|
},
|
|
"isValid": {
|
|
"type": "boolean",
|
|
"description": "Indicates whether the feed generator service is compatible with the record declaration."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.feed.getFeedGenerators": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.feed"
|
|
],
|
|
"summary": "Get information about a list of feed generators.",
|
|
"operationId": "app.bsky.feed.getFeedGenerators",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "feeds",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"feeds"
|
|
],
|
|
"properties": {
|
|
"feeds": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.generatorView"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.feed.getLikes": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.feed"
|
|
],
|
|
"summary": "Get like records which reference a subject (by AT-URI and CID).",
|
|
"operationId": "app.bsky.feed.getLikes",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "uri",
|
|
"in": "query",
|
|
"description": "AT-URI of the subject (eg, a post record).",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "AT-URI of the subject (eg, a post record).",
|
|
"format": "at-uri"
|
|
}
|
|
},
|
|
{
|
|
"name": "cid",
|
|
"in": "query",
|
|
"description": "CID of the subject record (aka, specific version of record), to filter likes.",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "CID of the subject record (aka, specific version of record), to filter likes.",
|
|
"format": "cid"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"likes"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
},
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"likes": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.getLikes.like"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.feed.getListFeed": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.feed"
|
|
],
|
|
"summary": "Get a feed of recent posts from a list (posts and reposts from any actors on the list). Does not require auth.",
|
|
"operationId": "app.bsky.feed.getListFeed",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "list",
|
|
"in": "query",
|
|
"description": "Reference (AT-URI) to the list record.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Reference (AT-URI) to the list record.",
|
|
"format": "at-uri"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"feed"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"feed": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.feedViewPost"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
},
|
|
{
|
|
"const": "UnknownList"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.feed.getPostThread": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.feed"
|
|
],
|
|
"summary": "Get posts in a thread. Does not require auth, but additional metadata and filtering will be applied for authed requests.",
|
|
"operationId": "app.bsky.feed.getPostThread",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "uri",
|
|
"in": "query",
|
|
"description": "Reference (AT-URI) to post record.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Reference (AT-URI) to post record.",
|
|
"format": "at-uri"
|
|
}
|
|
},
|
|
{
|
|
"name": "depth",
|
|
"in": "query",
|
|
"description": "How many levels of reply depth should be included in response.",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 1000,
|
|
"default": 6
|
|
}
|
|
},
|
|
{
|
|
"name": "parentHeight",
|
|
"in": "query",
|
|
"description": "How many levels of parent (and grandparent, etc) post to include.",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 1000,
|
|
"default": 80
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"thread"
|
|
],
|
|
"properties": {
|
|
"thread": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.threadViewPost"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.notFoundPost"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.blockedPost"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
},
|
|
{
|
|
"const": "NotFound"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.feed.getPosts": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.feed"
|
|
],
|
|
"summary": "Gets post views for a specified list of posts (by AT-URI). This is sometimes referred to as 'hydrating' a 'feed skeleton'.",
|
|
"operationId": "app.bsky.feed.getPosts",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "uris",
|
|
"in": "query",
|
|
"description": "List of post AT-URIs to return hydrated views for.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"maxItems": 25
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"posts"
|
|
],
|
|
"properties": {
|
|
"posts": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.postView"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.feed.getRepostedBy": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.feed"
|
|
],
|
|
"summary": "Get a list of reposts for a given post.",
|
|
"operationId": "app.bsky.feed.getRepostedBy",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "uri",
|
|
"in": "query",
|
|
"description": "Reference (AT-URI) of post record",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Reference (AT-URI) of post record",
|
|
"format": "at-uri"
|
|
}
|
|
},
|
|
{
|
|
"name": "cid",
|
|
"in": "query",
|
|
"description": "If supplied, filters to reposts of specific version (by CID) of the post record.",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "If supplied, filters to reposts of specific version (by CID) of the post record.",
|
|
"format": "cid"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"repostedBy"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
},
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"repostedBy": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileView"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.feed.getSuggestedFeeds": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.feed"
|
|
],
|
|
"summary": "Get a list of suggested feeds (feed generators) for the requesting account.",
|
|
"operationId": "app.bsky.feed.getSuggestedFeeds",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"feeds"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"feeds": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.generatorView"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.feed.getTimeline": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.feed"
|
|
],
|
|
"summary": "Get a view of the requesting account's home timeline. This is expected to be some form of reverse-chronological feed.",
|
|
"operationId": "app.bsky.feed.getTimeline",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "algorithm",
|
|
"in": "query",
|
|
"description": "Variant 'algorithm' for timeline. Implementation-specific. NOTE: most feed flexibility has been moved to feed generator mechanism.",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Variant 'algorithm' for timeline. Implementation-specific. NOTE: most feed flexibility has been moved to feed generator mechanism."
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"feed"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"feed": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.feedViewPost"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.feed.searchPosts": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.feed"
|
|
],
|
|
"summary": "Find posts matching search criteria, returning views of those posts.",
|
|
"operationId": "app.bsky.feed.searchPosts",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "q",
|
|
"in": "query",
|
|
"description": "Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended."
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 25
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"description": "Optional pagination mechanism; may not necessarily allow scrolling through entire result set.",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Optional pagination mechanism; may not necessarily allow scrolling through entire result set."
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"posts"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"hitsTotal": {
|
|
"type": "integer"
|
|
},
|
|
"posts": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.postView"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
},
|
|
{
|
|
"const": "BadQueryString"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.graph.getBlocks": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.graph"
|
|
],
|
|
"summary": "Enumerates which accounts the requesting account is currently blocking. Requires auth.",
|
|
"operationId": "app.bsky.graph.getBlocks",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"blocks"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"blocks": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileView"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.graph.getFollowers": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.graph"
|
|
],
|
|
"summary": "Enumerates accounts which follow a specified account (actor).",
|
|
"operationId": "app.bsky.graph.getFollowers",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "actor",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "at-identifier"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"subject",
|
|
"followers"
|
|
],
|
|
"properties": {
|
|
"subject": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileView"
|
|
},
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"followers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileView"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.graph.getFollows": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.graph"
|
|
],
|
|
"summary": "Enumerates accounts which a specified account (actor) follows.",
|
|
"operationId": "app.bsky.graph.getFollows",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "actor",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "at-identifier"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"subject",
|
|
"follows"
|
|
],
|
|
"properties": {
|
|
"subject": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileView"
|
|
},
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"follows": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileView"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.graph.getList": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.graph"
|
|
],
|
|
"summary": "Gets a 'view' (with additional context) of a specified list.",
|
|
"operationId": "app.bsky.graph.getList",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "list",
|
|
"in": "query",
|
|
"description": "Reference (AT-URI) of the list record to hydrate.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Reference (AT-URI) of the list record to hydrate.",
|
|
"format": "at-uri"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"list",
|
|
"items"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"list": {
|
|
"$ref": "#/components/schemas/app.bsky.graph.defs.listView"
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.graph.defs.listItemView"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.graph.getListBlocks": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.graph"
|
|
],
|
|
"summary": "Get mod lists that the requesting account (actor) is blocking. Requires auth.",
|
|
"operationId": "app.bsky.graph.getListBlocks",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"lists"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"lists": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.graph.defs.listView"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.graph.getListMutes": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.graph"
|
|
],
|
|
"summary": "Enumerates mod lists that the requesting account (actor) currently has muted. Requires auth.",
|
|
"operationId": "app.bsky.graph.getListMutes",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"lists"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"lists": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.graph.defs.listView"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.graph.getLists": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.graph"
|
|
],
|
|
"summary": "Enumerates the lists created by a specified account (actor).",
|
|
"operationId": "app.bsky.graph.getLists",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "actor",
|
|
"in": "query",
|
|
"description": "The account (actor) to enumerate lists from.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The account (actor) to enumerate lists from.",
|
|
"format": "at-identifier"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"lists"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"lists": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.graph.defs.listView"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.graph.getMutes": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.graph"
|
|
],
|
|
"summary": "Enumerates accounts that the requesting account (actor) currently has muted. Requires auth.",
|
|
"operationId": "app.bsky.graph.getMutes",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"mutes"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"mutes": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileView"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.graph.getSuggestedFollowsByActor": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.graph"
|
|
],
|
|
"summary": "Enumerates follows similar to a given account (actor). Expected use is to recommend additional accounts immediately after following one account.",
|
|
"operationId": "app.bsky.graph.getSuggestedFollowsByActor",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "actor",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "at-identifier"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"suggestions"
|
|
],
|
|
"properties": {
|
|
"suggestions": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileView"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.graph.muteActor": {
|
|
"post": {
|
|
"tags": [
|
|
"app.bsky.graph"
|
|
],
|
|
"summary": "Creates a mute relationship for the specified account. Mutes are private in Bluesky. Requires auth.",
|
|
"operationId": "app.bsky.graph.muteActor",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"actor"
|
|
],
|
|
"properties": {
|
|
"actor": {
|
|
"type": "string",
|
|
"format": "at-identifier"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.graph.muteActorList": {
|
|
"post": {
|
|
"tags": [
|
|
"app.bsky.graph"
|
|
],
|
|
"summary": "Creates a mute relationship for the specified list of accounts. Mutes are private in Bluesky. Requires auth.",
|
|
"operationId": "app.bsky.graph.muteActorList",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"list"
|
|
],
|
|
"properties": {
|
|
"list": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.graph.unmuteActor": {
|
|
"post": {
|
|
"tags": [
|
|
"app.bsky.graph"
|
|
],
|
|
"summary": "Unmutes the specified account. Requires auth.",
|
|
"operationId": "app.bsky.graph.unmuteActor",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"actor"
|
|
],
|
|
"properties": {
|
|
"actor": {
|
|
"type": "string",
|
|
"format": "at-identifier"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.graph.unmuteActorList": {
|
|
"post": {
|
|
"tags": [
|
|
"app.bsky.graph"
|
|
],
|
|
"summary": "Unmutes the specified list of accounts. Requires auth.",
|
|
"operationId": "app.bsky.graph.unmuteActorList",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"list"
|
|
],
|
|
"properties": {
|
|
"list": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.labeler.getServices": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.labeler"
|
|
],
|
|
"summary": "Get information about a list of labeler services.",
|
|
"operationId": "app.bsky.labeler.getServices",
|
|
"parameters": [
|
|
{
|
|
"name": "dids",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "did"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "detailed",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"views"
|
|
],
|
|
"properties": {
|
|
"views": {
|
|
"type": "array",
|
|
"items": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.labeler.defs.labelerView"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.labeler.defs.labelerViewDetailed"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.notification.getUnreadCount": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.notification"
|
|
],
|
|
"summary": "Count the number of unread notifications for the requesting account. Requires auth.",
|
|
"operationId": "app.bsky.notification.getUnreadCount",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "seenAt",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"count"
|
|
],
|
|
"properties": {
|
|
"count": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.notification.listNotifications": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.notification"
|
|
],
|
|
"summary": "Enumerate notifications for the requesting account. Requires auth.",
|
|
"operationId": "app.bsky.notification.listNotifications",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "seenAt",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"notifications"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"notifications": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.notification.listNotifications.notification"
|
|
}
|
|
},
|
|
"seenAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.notification.registerPush": {
|
|
"post": {
|
|
"tags": [
|
|
"app.bsky.notification"
|
|
],
|
|
"summary": "Register to receive push notifications, via a specified service, for the requesting account. Requires auth.",
|
|
"operationId": "app.bsky.notification.registerPush",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"serviceDid",
|
|
"token",
|
|
"platform",
|
|
"appId"
|
|
],
|
|
"properties": {
|
|
"serviceDid": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"token": {
|
|
"type": "string"
|
|
},
|
|
"platform": {
|
|
"type": "string",
|
|
"enum": [
|
|
"ios",
|
|
"android",
|
|
"web"
|
|
]
|
|
},
|
|
"appId": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.notification.updateSeen": {
|
|
"post": {
|
|
"tags": [
|
|
"app.bsky.notification"
|
|
],
|
|
"summary": "Notify server that the requesting account has seen notifications. Requires auth.",
|
|
"operationId": "app.bsky.notification.updateSeen",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"seenAt"
|
|
],
|
|
"properties": {
|
|
"seenAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.unspecced.applyLabels": {
|
|
"post": {
|
|
"tags": [
|
|
"app.bsky.unspecced"
|
|
],
|
|
"summary": "Allow a labeler to apply labels directly.",
|
|
"operationId": "app.bsky.unspecced.applyLabels",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"labels"
|
|
],
|
|
"properties": {
|
|
"labels": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.label"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.unspecced.getPopular": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.unspecced"
|
|
],
|
|
"summary": "DEPRECATED: will be removed soon. Use a feed generator alternative.",
|
|
"operationId": "app.bsky.unspecced.getPopular",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "includeNsfw",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"feed"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"feed": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.feedViewPost"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.unspecced.getPopularFeedGenerators": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.unspecced"
|
|
],
|
|
"summary": "An unspecced view of globally popular feed generators.",
|
|
"operationId": "app.bsky.unspecced.getPopularFeedGenerators",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "query",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"feeds"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"feeds": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.generatorView"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/app.bsky.unspecced.getTaggedSuggestions": {
|
|
"get": {
|
|
"tags": [
|
|
"app.bsky.unspecced"
|
|
],
|
|
"summary": "Get a list of suggestions (feeds and users) tagged with categories",
|
|
"operationId": "app.bsky.unspecced.getTaggedSuggestions",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"suggestions"
|
|
],
|
|
"properties": {
|
|
"suggestions": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.unspecced.getTaggedSuggestions.suggestion"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.identity.getRecommendedDidCredentials": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.identity"
|
|
],
|
|
"summary": "Describe the credentials that should be included in the DID doc of an account that is migrating to this service.",
|
|
"operationId": "com.atproto.identity.getRecommendedDidCredentials",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"rotationKeys": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"alsoKnownAs": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"verificationMethods": {},
|
|
"services": {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.identity.requestPlcOperationSignature": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.identity"
|
|
],
|
|
"summary": "Request an email with a code to in order to request a signed PLC operation. Requires Auth.",
|
|
"operationId": "com.atproto.identity.requestPlcOperationSignature",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.identity.resolveHandle": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.identity"
|
|
],
|
|
"summary": "Resolves a handle (domain name) to a DID.",
|
|
"operationId": "com.atproto.identity.resolveHandle",
|
|
"parameters": [
|
|
{
|
|
"name": "handle",
|
|
"in": "query",
|
|
"description": "The handle to resolve.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The handle to resolve.",
|
|
"format": "handle"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"did"
|
|
],
|
|
"properties": {
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.identity.signPlcOperation": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.identity"
|
|
],
|
|
"summary": "Signs a PLC operation to update some value(s) in the requesting DID's document.",
|
|
"operationId": "com.atproto.identity.signPlcOperation",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"token": {
|
|
"type": "string",
|
|
"description": "A token received through com.atproto.identity.requestPlcOperationSignature"
|
|
},
|
|
"rotationKeys": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"alsoKnownAs": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"verificationMethods": {},
|
|
"services": {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"operation"
|
|
],
|
|
"properties": {
|
|
"operation": {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.identity.submitPlcOperation": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.identity"
|
|
],
|
|
"summary": "Validates a PLC operation to ensure that it doesn't violate a service's constraints or get the identity into a bad state, then submits it to the PLC registry",
|
|
"operationId": "com.atproto.identity.submitPlcOperation",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"operation"
|
|
],
|
|
"properties": {
|
|
"operation": {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.identity.updateHandle": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.identity"
|
|
],
|
|
"summary": "Updates the current account's handle. Verifies handle validity, and updates did:plc document if necessary. Implemented by PDS, and requires auth.",
|
|
"operationId": "com.atproto.identity.updateHandle",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"handle"
|
|
],
|
|
"properties": {
|
|
"handle": {
|
|
"type": "string",
|
|
"description": "The new handle.",
|
|
"format": "handle"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.moderation.createReport": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.moderation"
|
|
],
|
|
"summary": "Submit a moderation report regarding an atproto account or record. Implemented by moderation services (with PDS proxying), and requires auth.",
|
|
"operationId": "com.atproto.moderation.createReport",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"reasonType",
|
|
"subject"
|
|
],
|
|
"properties": {
|
|
"reasonType": {
|
|
"$ref": "#/components/schemas/com.atproto.moderation.defs.reasonType"
|
|
},
|
|
"reason": {
|
|
"type": "string",
|
|
"description": "Additional context about the content and violation."
|
|
},
|
|
"subject": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.admin.defs.repoRef"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.repo.strongRef"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"reasonType",
|
|
"subject",
|
|
"reportedBy",
|
|
"createdAt"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer"
|
|
},
|
|
"reasonType": {
|
|
"$ref": "#/components/schemas/com.atproto.moderation.defs.reasonType"
|
|
},
|
|
"reason": {
|
|
"type": "string",
|
|
"maxLength": 20000
|
|
},
|
|
"subject": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.admin.defs.repoRef"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.repo.strongRef"
|
|
}
|
|
]
|
|
},
|
|
"reportedBy": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.repo.applyWrites": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.repo"
|
|
],
|
|
"summary": "Apply a batch transaction of repository creates, updates, and deletes. Requires auth, implemented by PDS.",
|
|
"operationId": "com.atproto.repo.applyWrites",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"repo",
|
|
"writes"
|
|
],
|
|
"properties": {
|
|
"repo": {
|
|
"type": "string",
|
|
"description": "The handle or DID of the repo (aka, current account).",
|
|
"format": "at-identifier"
|
|
},
|
|
"validate": {
|
|
"type": "boolean",
|
|
"description": "Can be set to 'false' to skip Lexicon schema validation of record data, for all operations.",
|
|
"default": true
|
|
},
|
|
"writes": {
|
|
"type": "array",
|
|
"items": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.repo.applyWrites.create"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.repo.applyWrites.update"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.repo.applyWrites.delete"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"swapCommit": {
|
|
"type": "string",
|
|
"description": "If provided, the entire operation will fail if the current repo commit CID does not match this value. Used to prevent conflicting repo mutations.",
|
|
"format": "cid"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
},
|
|
{
|
|
"const": "InvalidSwap"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.repo.createRecord": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.repo"
|
|
],
|
|
"summary": "Create a single new repository record. Requires auth, implemented by PDS.",
|
|
"operationId": "com.atproto.repo.createRecord",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"repo",
|
|
"collection",
|
|
"record"
|
|
],
|
|
"properties": {
|
|
"repo": {
|
|
"type": "string",
|
|
"description": "The handle or DID of the repo (aka, current account).",
|
|
"format": "at-identifier"
|
|
},
|
|
"collection": {
|
|
"type": "string",
|
|
"description": "The NSID of the record collection.",
|
|
"format": "nsid"
|
|
},
|
|
"rkey": {
|
|
"type": "string",
|
|
"description": "The Record Key.",
|
|
"maxLength": 15
|
|
},
|
|
"validate": {
|
|
"type": "boolean",
|
|
"description": "Can be set to 'false' to skip Lexicon schema validation of record data.",
|
|
"default": true
|
|
},
|
|
"record": {},
|
|
"swapCommit": {
|
|
"type": "string",
|
|
"description": "Compare and swap with the previous commit by CID.",
|
|
"format": "cid"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"cid"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
},
|
|
{
|
|
"const": "InvalidSwap"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.repo.deleteRecord": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.repo"
|
|
],
|
|
"summary": "Delete a repository record, or ensure it doesn't exist. Requires auth, implemented by PDS.",
|
|
"operationId": "com.atproto.repo.deleteRecord",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"repo",
|
|
"collection",
|
|
"rkey"
|
|
],
|
|
"properties": {
|
|
"repo": {
|
|
"type": "string",
|
|
"description": "The handle or DID of the repo (aka, current account).",
|
|
"format": "at-identifier"
|
|
},
|
|
"collection": {
|
|
"type": "string",
|
|
"description": "The NSID of the record collection.",
|
|
"format": "nsid"
|
|
},
|
|
"rkey": {
|
|
"type": "string",
|
|
"description": "The Record Key."
|
|
},
|
|
"swapRecord": {
|
|
"type": "string",
|
|
"description": "Compare and swap with the previous record by CID.",
|
|
"format": "cid"
|
|
},
|
|
"swapCommit": {
|
|
"type": "string",
|
|
"description": "Compare and swap with the previous commit by CID.",
|
|
"format": "cid"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
},
|
|
{
|
|
"const": "InvalidSwap"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.repo.describeRepo": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.repo"
|
|
],
|
|
"summary": "Get information about an account and repository, including the list of collections. Does not require auth.",
|
|
"operationId": "com.atproto.repo.describeRepo",
|
|
"parameters": [
|
|
{
|
|
"name": "repo",
|
|
"in": "query",
|
|
"description": "The handle or DID of the repo.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The handle or DID of the repo.",
|
|
"format": "at-identifier"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"handle",
|
|
"did",
|
|
"didDoc",
|
|
"collections",
|
|
"handleIsCorrect"
|
|
],
|
|
"properties": {
|
|
"handle": {
|
|
"type": "string",
|
|
"format": "handle"
|
|
},
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"didDoc": {},
|
|
"collections": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "nsid"
|
|
}
|
|
},
|
|
"handleIsCorrect": {
|
|
"type": "boolean",
|
|
"description": "Indicates if handle is currently valid (resolves bi-directionally)"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.repo.getRecord": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.repo"
|
|
],
|
|
"summary": "Get a single record from a repository. Does not require auth.",
|
|
"operationId": "com.atproto.repo.getRecord",
|
|
"parameters": [
|
|
{
|
|
"name": "repo",
|
|
"in": "query",
|
|
"description": "The handle or DID of the repo.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The handle or DID of the repo.",
|
|
"format": "at-identifier"
|
|
}
|
|
},
|
|
{
|
|
"name": "collection",
|
|
"in": "query",
|
|
"description": "The NSID of the record collection.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The NSID of the record collection.",
|
|
"format": "nsid"
|
|
}
|
|
},
|
|
{
|
|
"name": "rkey",
|
|
"in": "query",
|
|
"description": "The Record Key.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The Record Key."
|
|
}
|
|
},
|
|
{
|
|
"name": "cid",
|
|
"in": "query",
|
|
"description": "The CID of the version of the record. If not specified, then return the most recent version.",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The CID of the version of the record. If not specified, then return the most recent version.",
|
|
"format": "cid"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"value"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
},
|
|
"value": {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.repo.importRepo": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.repo"
|
|
],
|
|
"summary": "Import a repo in the form of a CAR file. Requires Content-Length HTTP header to be set.",
|
|
"operationId": "com.atproto.repo.importRepo",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/vnd.ipld.car": {}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.repo.listMissingBlobs": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.repo"
|
|
],
|
|
"summary": "Returns a list of missing blobs for the requesting account. Intended to be used in the account migration flow.",
|
|
"operationId": "com.atproto.repo.listMissingBlobs",
|
|
"parameters": [
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 1000,
|
|
"default": 500
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"blobs"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"blobs": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.repo.listMissingBlobs.recordBlob"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.repo.listRecords": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.repo"
|
|
],
|
|
"summary": "List a range of records in a repository, matching a specific collection. Does not require auth.",
|
|
"operationId": "com.atproto.repo.listRecords",
|
|
"parameters": [
|
|
{
|
|
"name": "repo",
|
|
"in": "query",
|
|
"description": "The handle or DID of the repo.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The handle or DID of the repo.",
|
|
"format": "at-identifier"
|
|
}
|
|
},
|
|
{
|
|
"name": "collection",
|
|
"in": "query",
|
|
"description": "The NSID of the record type.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The NSID of the record type.",
|
|
"format": "nsid"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"description": "The number of records to return.",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "rkeyStart",
|
|
"in": "query",
|
|
"description": "DEPRECATED: The lowest sort-ordered rkey to start from (exclusive)",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "DEPRECATED: The lowest sort-ordered rkey to start from (exclusive)"
|
|
}
|
|
},
|
|
{
|
|
"name": "rkeyEnd",
|
|
"in": "query",
|
|
"description": "DEPRECATED: The highest sort-ordered rkey to stop at (exclusive)",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "DEPRECATED: The highest sort-ordered rkey to stop at (exclusive)"
|
|
}
|
|
},
|
|
{
|
|
"name": "reverse",
|
|
"in": "query",
|
|
"description": "Flag to reverse the order of the returned records.",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"description": "Flag to reverse the order of the returned records."
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"records"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"records": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.repo.listRecords.record"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.repo.putRecord": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.repo"
|
|
],
|
|
"summary": "Write a repository record, creating or updating it as needed. Requires auth, implemented by PDS.",
|
|
"operationId": "com.atproto.repo.putRecord",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"repo",
|
|
"collection",
|
|
"rkey",
|
|
"record"
|
|
],
|
|
"properties": {
|
|
"repo": {
|
|
"type": "string",
|
|
"description": "The handle or DID of the repo (aka, current account).",
|
|
"format": "at-identifier"
|
|
},
|
|
"collection": {
|
|
"type": "string",
|
|
"description": "The NSID of the record collection.",
|
|
"format": "nsid"
|
|
},
|
|
"rkey": {
|
|
"type": "string",
|
|
"description": "The Record Key.",
|
|
"maxLength": 15
|
|
},
|
|
"validate": {
|
|
"type": "boolean",
|
|
"description": "Can be set to 'false' to skip Lexicon schema validation of record data.",
|
|
"default": true
|
|
},
|
|
"record": {},
|
|
"swapRecord": {
|
|
"type": "string",
|
|
"description": "Compare and swap with the previous record by CID. WARNING: nullable and optional field; may cause problems with golang implementation",
|
|
"format": "cid"
|
|
},
|
|
"swapCommit": {
|
|
"type": "string",
|
|
"description": "Compare and swap with the previous commit by CID.",
|
|
"format": "cid"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"cid"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
},
|
|
{
|
|
"const": "InvalidSwap"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.repo.rebaseRepo": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.repo"
|
|
],
|
|
"summary": "Simple rebase of repo that deletes history",
|
|
"operationId": "com.atproto.repo.rebaseRepo",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"repo"
|
|
],
|
|
"properties": {
|
|
"repo": {
|
|
"type": "string",
|
|
"description": "The handle or DID of the repo.",
|
|
"format": "at-identifier"
|
|
},
|
|
"swapCommit": {
|
|
"type": "string",
|
|
"description": "Compare and swap with the previous commit by cid.",
|
|
"format": "cid"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "InvalidSwap"
|
|
},
|
|
{
|
|
"const": "ConcurrentWrites"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.repo.uploadBlob": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.repo"
|
|
],
|
|
"summary": "Upload a new blob, to be referenced from a repository record. The blob will be deleted if it is not referenced within a time window (eg, minutes). Blob restrictions (mimetype, size, etc) are enforced when the reference is created. Requires auth, implemented by PDS.",
|
|
"operationId": "com.atproto.repo.uploadBlob",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"*/*": {}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"blob"
|
|
],
|
|
"properties": {
|
|
"blob": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.activateAccount": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Activates a currently deactivated account. Used to finalize account migration after the account's repo is imported and identity is setup.",
|
|
"operationId": "com.atproto.server.activateAccount",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.checkAccountStatus": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Returns the status of an account, especially as pertaining to import or recovery. Can be called many times over the course of an account migration. Requires auth and can only be called pertaining to oneself.",
|
|
"operationId": "com.atproto.server.checkAccountStatus",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"activated",
|
|
"validDid",
|
|
"repoCommit",
|
|
"repoRev",
|
|
"repoBlocks",
|
|
"indexedRecords",
|
|
"privateStateValues",
|
|
"expectedBlobs",
|
|
"importedBlobs"
|
|
],
|
|
"properties": {
|
|
"activated": {
|
|
"type": "boolean"
|
|
},
|
|
"validDid": {
|
|
"type": "boolean"
|
|
},
|
|
"repoCommit": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
},
|
|
"repoRev": {
|
|
"type": "string"
|
|
},
|
|
"repoBlocks": {
|
|
"type": "integer"
|
|
},
|
|
"indexedRecords": {
|
|
"type": "integer"
|
|
},
|
|
"privateStateValues": {
|
|
"type": "integer"
|
|
},
|
|
"expectedBlobs": {
|
|
"type": "integer"
|
|
},
|
|
"importedBlobs": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.confirmEmail": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Confirm an email using a token from com.atproto.server.requestEmailConfirmation.",
|
|
"operationId": "com.atproto.server.confirmEmail",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"email",
|
|
"token"
|
|
],
|
|
"properties": {
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"token": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
},
|
|
{
|
|
"const": "AccountNotFound"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
},
|
|
{
|
|
"const": "InvalidEmail"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.createAccount": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Create an account. Implemented by PDS.",
|
|
"operationId": "com.atproto.server.createAccount",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"handle"
|
|
],
|
|
"properties": {
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"handle": {
|
|
"type": "string",
|
|
"description": "Requested handle for the account.",
|
|
"format": "handle"
|
|
},
|
|
"did": {
|
|
"type": "string",
|
|
"description": "Pre-existing atproto DID, being imported to a new account.",
|
|
"format": "did"
|
|
},
|
|
"inviteCode": {
|
|
"type": "string"
|
|
},
|
|
"verificationCode": {
|
|
"type": "string"
|
|
},
|
|
"verificationPhone": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string",
|
|
"description": "Initial account password. May need to meet instance-specific password strength requirements."
|
|
},
|
|
"recoveryKey": {
|
|
"type": "string",
|
|
"description": "DID PLC rotation key (aka, recovery key) to be included in PLC creation operation."
|
|
},
|
|
"plcOp": {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"description": "Account login session returned on successful account creation.",
|
|
"required": [
|
|
"accessJwt",
|
|
"refreshJwt",
|
|
"handle",
|
|
"did"
|
|
],
|
|
"properties": {
|
|
"accessJwt": {
|
|
"type": "string"
|
|
},
|
|
"refreshJwt": {
|
|
"type": "string"
|
|
},
|
|
"handle": {
|
|
"type": "string",
|
|
"format": "handle"
|
|
},
|
|
"did": {
|
|
"type": "string",
|
|
"description": "The DID of the new account.",
|
|
"format": "did"
|
|
},
|
|
"didDoc": {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "InvalidHandle"
|
|
},
|
|
{
|
|
"const": "InvalidPassword"
|
|
},
|
|
{
|
|
"const": "InvalidInviteCode"
|
|
},
|
|
{
|
|
"const": "HandleNotAvailable"
|
|
},
|
|
{
|
|
"const": "UnsupportedDomain"
|
|
},
|
|
{
|
|
"const": "UnresolvableDid"
|
|
},
|
|
{
|
|
"const": "IncompatibleDidDoc"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.createAppPassword": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Create an App Password.",
|
|
"operationId": "com.atproto.server.createAppPassword",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"name"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "A short name for the App Password, to help distinguish them."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/com.atproto.server.createAppPassword.appPassword"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
},
|
|
{
|
|
"const": "AccountTakedown"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.createInviteCode": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Create an invite code.",
|
|
"operationId": "com.atproto.server.createInviteCode",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"useCount"
|
|
],
|
|
"properties": {
|
|
"useCount": {
|
|
"type": "integer"
|
|
},
|
|
"forAccount": {
|
|
"type": "string",
|
|
"format": "did"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"code"
|
|
],
|
|
"properties": {
|
|
"code": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.createInviteCodes": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Create invite codes.",
|
|
"operationId": "com.atproto.server.createInviteCodes",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"codeCount",
|
|
"useCount"
|
|
],
|
|
"properties": {
|
|
"codeCount": {
|
|
"type": "integer",
|
|
"default": 1
|
|
},
|
|
"useCount": {
|
|
"type": "integer"
|
|
},
|
|
"forAccounts": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "did"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"codes"
|
|
],
|
|
"properties": {
|
|
"codes": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.server.createInviteCodes.accountCodes"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.createSession": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Create an authentication session.",
|
|
"operationId": "com.atproto.server.createSession",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"identifier",
|
|
"password"
|
|
],
|
|
"properties": {
|
|
"identifier": {
|
|
"type": "string",
|
|
"description": "Handle or other identifier supported by the server for the authenticating user."
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"accessJwt",
|
|
"refreshJwt",
|
|
"handle",
|
|
"did"
|
|
],
|
|
"properties": {
|
|
"accessJwt": {
|
|
"type": "string"
|
|
},
|
|
"refreshJwt": {
|
|
"type": "string"
|
|
},
|
|
"handle": {
|
|
"type": "string",
|
|
"format": "handle"
|
|
},
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"didDoc": {},
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"emailConfirmed": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "AccountTakedown"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.deactivateAccount": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Deactivates a currently active account. Stops serving of repo, and future writes to repo until reactivated. Used to finalize account migration with the old host after the account has been activated on the new host.",
|
|
"operationId": "com.atproto.server.deactivateAccount",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"deleteAfter": {
|
|
"type": "string",
|
|
"description": "A recommendation to server as to how long they should hold onto the deactivated account before deleting.",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.deleteAccount": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Delete an actor's account with a token and password. Can only be called after requesting a deletion token. Requires auth.",
|
|
"operationId": "com.atproto.server.deleteAccount",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"did",
|
|
"password",
|
|
"token"
|
|
],
|
|
"properties": {
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"token": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.deleteSession": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Delete the current session. Requires auth.",
|
|
"operationId": "com.atproto.server.deleteSession",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.describeServer": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Describes the server's account creation requirements and capabilities. Implemented by PDS.",
|
|
"operationId": "com.atproto.server.describeServer",
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"did",
|
|
"availableUserDomains"
|
|
],
|
|
"properties": {
|
|
"inviteCodeRequired": {
|
|
"type": "boolean",
|
|
"description": "If true, an invite code must be supplied to create an account on this instance."
|
|
},
|
|
"phoneVerificationRequired": {
|
|
"type": "boolean",
|
|
"description": "If true, a phone verification token must be supplied to create an account on this instance."
|
|
},
|
|
"availableUserDomains": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"links": {
|
|
"$ref": "#/components/schemas/com.atproto.server.describeServer.links"
|
|
},
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.getAccountInviteCodes": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Get all invite codes for the current account. Requires auth.",
|
|
"operationId": "com.atproto.server.getAccountInviteCodes",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "includeUsed",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
},
|
|
{
|
|
"name": "createAvailable",
|
|
"in": "query",
|
|
"description": "Controls whether any new 'earned' but not 'created' invites should be created.",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"description": "Controls whether any new 'earned' but not 'created' invites should be created.",
|
|
"default": true
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"codes"
|
|
],
|
|
"properties": {
|
|
"codes": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.server.defs.inviteCode"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
},
|
|
{
|
|
"const": "DuplicateCreate"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.getServiceAuth": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Get a signed token on behalf of the requesting DID for the requested service.",
|
|
"operationId": "com.atproto.server.getServiceAuth",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "aud",
|
|
"in": "query",
|
|
"description": "The DID of the service that the token will be used to authenticate with",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The DID of the service that the token will be used to authenticate with",
|
|
"format": "did"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"token"
|
|
],
|
|
"properties": {
|
|
"token": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.getSession": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Get information about the current auth session. Requires auth.",
|
|
"operationId": "com.atproto.server.getSession",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"handle",
|
|
"did"
|
|
],
|
|
"properties": {
|
|
"handle": {
|
|
"type": "string",
|
|
"format": "handle"
|
|
},
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"emailConfirmed": {
|
|
"type": "boolean"
|
|
},
|
|
"didDoc": {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.listAppPasswords": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "List all App Passwords.",
|
|
"operationId": "com.atproto.server.listAppPasswords",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"passwords"
|
|
],
|
|
"properties": {
|
|
"passwords": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.server.listAppPasswords.appPassword"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
},
|
|
{
|
|
"const": "AccountTakedown"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.refreshSession": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Refresh an authentication session. Requires auth using the 'refreshJwt' (not the 'accessJwt').",
|
|
"operationId": "com.atproto.server.refreshSession",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"accessJwt",
|
|
"refreshJwt",
|
|
"handle",
|
|
"did"
|
|
],
|
|
"properties": {
|
|
"accessJwt": {
|
|
"type": "string"
|
|
},
|
|
"refreshJwt": {
|
|
"type": "string"
|
|
},
|
|
"handle": {
|
|
"type": "string",
|
|
"format": "handle"
|
|
},
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"didDoc": {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
},
|
|
{
|
|
"const": "AccountTakedown"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.requestAccountDelete": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Initiate a user account deletion via email.",
|
|
"operationId": "com.atproto.server.requestAccountDelete",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.requestEmailConfirmation": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Request an email with a code to confirm ownership of email.",
|
|
"operationId": "com.atproto.server.requestEmailConfirmation",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.requestEmailUpdate": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Request a token in order to update email.",
|
|
"operationId": "com.atproto.server.requestEmailUpdate",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"tokenRequired"
|
|
],
|
|
"properties": {
|
|
"tokenRequired": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.requestPasswordReset": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Initiate a user account password reset via email.",
|
|
"operationId": "com.atproto.server.requestPasswordReset",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"email"
|
|
],
|
|
"properties": {
|
|
"email": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.reserveSigningKey": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Reserve a repo signing key, for use with account creation. Necessary so that a DID PLC update operation can be constructed during an account migraiton. Public and does not require auth; implemented by PDS. NOTE: this endpoint may change when full account migration is implemented.",
|
|
"operationId": "com.atproto.server.reserveSigningKey",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"did": {
|
|
"type": "string",
|
|
"description": "The DID to reserve a key for.",
|
|
"format": "did"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"signingKey"
|
|
],
|
|
"properties": {
|
|
"signingKey": {
|
|
"type": "string",
|
|
"description": "The public key for the reserved signing key, in did:key serialization."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.resetPassword": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Reset a user account password using a token.",
|
|
"operationId": "com.atproto.server.resetPassword",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"token",
|
|
"password"
|
|
],
|
|
"properties": {
|
|
"token": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.revokeAppPassword": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Revoke an App Password by name.",
|
|
"operationId": "com.atproto.server.revokeAppPassword",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"name"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.server.updateEmail": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.server"
|
|
],
|
|
"summary": "Update an account's email.",
|
|
"operationId": "com.atproto.server.updateEmail",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"email"
|
|
],
|
|
"properties": {
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"token": {
|
|
"type": "string",
|
|
"description": "Requires a token from com.atproto.sever.requestEmailUpdate if the account's email has been confirmed."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
},
|
|
{
|
|
"const": "TokenRequired"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.sync.getBlob": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.sync"
|
|
],
|
|
"summary": "Get a blob associated with a given account. Returns the full blob as originally uploaded. Does not require auth; implemented by PDS.",
|
|
"operationId": "com.atproto.sync.getBlob",
|
|
"parameters": [
|
|
{
|
|
"name": "did",
|
|
"in": "query",
|
|
"description": "The DID of the account.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The DID of the account.",
|
|
"format": "did"
|
|
}
|
|
},
|
|
{
|
|
"name": "cid",
|
|
"in": "query",
|
|
"description": "The CID of the blob to fetch",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The CID of the blob to fetch",
|
|
"format": "cid"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"*/*": {}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.sync.getBlocks": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.sync"
|
|
],
|
|
"summary": "Get data blocks from a given repo, by CID. For example, intermediate MST nodes, or records. Does not require auth; implemented by PDS.",
|
|
"operationId": "com.atproto.sync.getBlocks",
|
|
"parameters": [
|
|
{
|
|
"name": "did",
|
|
"in": "query",
|
|
"description": "The DID of the repo.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The DID of the repo.",
|
|
"format": "did"
|
|
}
|
|
},
|
|
{
|
|
"name": "cids",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/vnd.ipld.car": {}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.sync.getCheckout": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.sync"
|
|
],
|
|
"summary": "DEPRECATED - please use com.atproto.sync.getRepo instead",
|
|
"operationId": "com.atproto.sync.getCheckout",
|
|
"parameters": [
|
|
{
|
|
"name": "did",
|
|
"in": "query",
|
|
"description": "The DID of the repo.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The DID of the repo.",
|
|
"format": "did"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/vnd.ipld.car": {}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.sync.getCommitPath": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.sync"
|
|
],
|
|
"summary": "Gets the path of repo commits",
|
|
"operationId": "com.atproto.sync.getCommitPath",
|
|
"parameters": [
|
|
{
|
|
"name": "did",
|
|
"in": "query",
|
|
"description": "The DID of the repo.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The DID of the repo.",
|
|
"format": "did"
|
|
}
|
|
},
|
|
{
|
|
"name": "latest",
|
|
"in": "query",
|
|
"description": "The most recent commit",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The most recent commit",
|
|
"format": "cid"
|
|
}
|
|
},
|
|
{
|
|
"name": "earliest",
|
|
"in": "query",
|
|
"description": "The earliest commit to start from",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The earliest commit to start from",
|
|
"format": "cid"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"commits"
|
|
],
|
|
"properties": {
|
|
"commits": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.sync.getHead": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.sync"
|
|
],
|
|
"summary": "DEPRECATED - please use com.atproto.sync.getLatestCommit instead",
|
|
"operationId": "com.atproto.sync.getHead",
|
|
"parameters": [
|
|
{
|
|
"name": "did",
|
|
"in": "query",
|
|
"description": "The DID of the repo.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The DID of the repo.",
|
|
"format": "did"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"root"
|
|
],
|
|
"properties": {
|
|
"root": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "HeadNotFound"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.sync.getLatestCommit": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.sync"
|
|
],
|
|
"summary": "Get the current commit CID & revision of the specified repo. Does not require auth.",
|
|
"operationId": "com.atproto.sync.getLatestCommit",
|
|
"parameters": [
|
|
{
|
|
"name": "did",
|
|
"in": "query",
|
|
"description": "The DID of the repo.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The DID of the repo.",
|
|
"format": "did"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"cid",
|
|
"rev"
|
|
],
|
|
"properties": {
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
},
|
|
"rev": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "RepoNotFound"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.sync.getRecord": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.sync"
|
|
],
|
|
"summary": "Get data blocks needed to prove the existence or non-existence of record in the current version of repo. Does not require auth.",
|
|
"operationId": "com.atproto.sync.getRecord",
|
|
"parameters": [
|
|
{
|
|
"name": "did",
|
|
"in": "query",
|
|
"description": "The DID of the repo.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The DID of the repo.",
|
|
"format": "did"
|
|
}
|
|
},
|
|
{
|
|
"name": "collection",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "nsid"
|
|
}
|
|
},
|
|
{
|
|
"name": "rkey",
|
|
"in": "query",
|
|
"description": "Record Key",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Record Key"
|
|
}
|
|
},
|
|
{
|
|
"name": "commit",
|
|
"in": "query",
|
|
"description": "An optional past commit CID.",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "An optional past commit CID.",
|
|
"format": "cid"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/vnd.ipld.car": {}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.sync.getRepo": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.sync"
|
|
],
|
|
"summary": "Download a repository export as CAR file. Optionally only a 'diff' since a previous revision. Does not require auth; implemented by PDS.",
|
|
"operationId": "com.atproto.sync.getRepo",
|
|
"parameters": [
|
|
{
|
|
"name": "did",
|
|
"in": "query",
|
|
"description": "The DID of the repo.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The DID of the repo.",
|
|
"format": "did"
|
|
}
|
|
},
|
|
{
|
|
"name": "since",
|
|
"in": "query",
|
|
"description": "The revision ('rev') of the repo to create a diff from.",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The revision ('rev') of the repo to create a diff from."
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/vnd.ipld.car": {}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.sync.listBlobs": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.sync"
|
|
],
|
|
"summary": "List blob CIDso for an account, since some repo revision. Does not require auth; implemented by PDS.",
|
|
"operationId": "com.atproto.sync.listBlobs",
|
|
"parameters": [
|
|
{
|
|
"name": "did",
|
|
"in": "query",
|
|
"description": "The DID of the repo.",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "The DID of the repo.",
|
|
"format": "did"
|
|
}
|
|
},
|
|
{
|
|
"name": "since",
|
|
"in": "query",
|
|
"description": "Optional revision of the repo to list blobs since.",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Optional revision of the repo to list blobs since."
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 1000,
|
|
"default": 500
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"cids"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"cids": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.sync.listRepos": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.sync"
|
|
],
|
|
"summary": "Enumerates all the DID, rev, and commit CID for all repos hosted by this service. Does not require auth; implemented by PDS and Relay.",
|
|
"operationId": "com.atproto.sync.listRepos",
|
|
"parameters": [
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 1000,
|
|
"default": 500
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"repos"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"repos": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.sync.listRepos.repo"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.temp.checkSignupQueue": {
|
|
"get": {
|
|
"tags": [
|
|
"com.atproto.temp"
|
|
],
|
|
"summary": "Check accounts location in signup queue.",
|
|
"operationId": "com.atproto.temp.checkSignupQueue",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"activated"
|
|
],
|
|
"properties": {
|
|
"activated": {
|
|
"type": "boolean"
|
|
},
|
|
"placeInQueue": {
|
|
"type": "integer"
|
|
},
|
|
"estimatedTimeMs": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.temp.requestPhoneVerification": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.temp"
|
|
],
|
|
"summary": "Request a verification code to be sent to the supplied phone number",
|
|
"operationId": "com.atproto.temp.requestPhoneVerification",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"phoneNumber"
|
|
],
|
|
"properties": {
|
|
"phoneNumber": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/com.atproto.temp.upgradeRepoVersion": {
|
|
"post": {
|
|
"tags": [
|
|
"com.atproto.temp"
|
|
],
|
|
"summary": "Upgrade a repo to v3",
|
|
"operationId": "com.atproto.temp.upgradeRepoVersion",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"did"
|
|
],
|
|
"properties": {
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"force": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/tools.ozone.communication.createTemplate": {
|
|
"post": {
|
|
"tags": [
|
|
"tools.ozone.communication"
|
|
],
|
|
"summary": "Administrative action to create a new, re-usable communication (email for now) template.",
|
|
"operationId": "tools.ozone.communication.createTemplate",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"subject",
|
|
"contentMarkdown",
|
|
"name"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "Name of the template."
|
|
},
|
|
"contentMarkdown": {
|
|
"type": "string",
|
|
"description": "Content of the template, markdown supported, can contain variable placeholders."
|
|
},
|
|
"subject": {
|
|
"type": "string",
|
|
"description": "Subject of the message, used in emails."
|
|
},
|
|
"createdBy": {
|
|
"type": "string",
|
|
"description": "DID of the user who is creating the template.",
|
|
"format": "did"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/tools.ozone.communication.defs.templateView"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/tools.ozone.communication.deleteTemplate": {
|
|
"post": {
|
|
"tags": [
|
|
"tools.ozone.communication"
|
|
],
|
|
"summary": "Delete a communication template.",
|
|
"operationId": "tools.ozone.communication.deleteTemplate",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"id"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/tools.ozone.communication.listTemplates": {
|
|
"get": {
|
|
"tags": [
|
|
"tools.ozone.communication"
|
|
],
|
|
"summary": "Get list of all communication templates.",
|
|
"operationId": "tools.ozone.communication.listTemplates",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"communicationTemplates"
|
|
],
|
|
"properties": {
|
|
"communicationTemplates": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/tools.ozone.communication.defs.templateView"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/tools.ozone.communication.updateTemplate": {
|
|
"post": {
|
|
"tags": [
|
|
"tools.ozone.communication"
|
|
],
|
|
"summary": "Administrative action to update an existing communication template. Allows passing partial fields to patch specific fields only.",
|
|
"operationId": "tools.ozone.communication.updateTemplate",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"id"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"description": "ID of the template to be updated."
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "Name of the template."
|
|
},
|
|
"contentMarkdown": {
|
|
"type": "string",
|
|
"description": "Content of the template, markdown supported, can contain variable placeholders."
|
|
},
|
|
"subject": {
|
|
"type": "string",
|
|
"description": "Subject of the message, used in emails."
|
|
},
|
|
"updatedBy": {
|
|
"type": "string",
|
|
"description": "DID of the user who is updating the template.",
|
|
"format": "did"
|
|
},
|
|
"disabled": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/tools.ozone.communication.defs.templateView"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/tools.ozone.moderation.emitEvent": {
|
|
"post": {
|
|
"tags": [
|
|
"tools.ozone.moderation"
|
|
],
|
|
"summary": "Take a moderation action on an actor.",
|
|
"operationId": "tools.ozone.moderation.emitEvent",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"event",
|
|
"subject",
|
|
"createdBy"
|
|
],
|
|
"properties": {
|
|
"event": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventTakedown"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventAcknowledge"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventEscalate"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventComment"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventLabel"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventReport"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventMute"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventReverseTakedown"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventUnmute"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventEmail"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventTag"
|
|
}
|
|
]
|
|
},
|
|
"subject": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.admin.defs.repoRef"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.repo.strongRef"
|
|
}
|
|
]
|
|
},
|
|
"subjectBlobCids": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
}
|
|
},
|
|
"createdBy": {
|
|
"type": "string",
|
|
"format": "did"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventView"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
},
|
|
{
|
|
"const": "SubjectHasAction"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/tools.ozone.moderation.getEvent": {
|
|
"get": {
|
|
"tags": [
|
|
"tools.ozone.moderation"
|
|
],
|
|
"summary": "Get details about a moderation event.",
|
|
"operationId": "tools.ozone.moderation.getEvent",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventViewDetail"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/tools.ozone.moderation.getRecord": {
|
|
"get": {
|
|
"tags": [
|
|
"tools.ozone.moderation"
|
|
],
|
|
"summary": "Get details about a record.",
|
|
"operationId": "tools.ozone.moderation.getRecord",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "uri",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
}
|
|
},
|
|
{
|
|
"name": "cid",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.recordViewDetail"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
},
|
|
{
|
|
"const": "RecordNotFound"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/tools.ozone.moderation.getRepo": {
|
|
"get": {
|
|
"tags": [
|
|
"tools.ozone.moderation"
|
|
],
|
|
"summary": "Get details about a repository.",
|
|
"operationId": "tools.ozone.moderation.getRepo",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "did",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "did"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.repoViewDetail"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
},
|
|
{
|
|
"const": "RepoNotFound"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/tools.ozone.moderation.queryEvents": {
|
|
"get": {
|
|
"tags": [
|
|
"tools.ozone.moderation"
|
|
],
|
|
"summary": "List moderation events related to a subject.",
|
|
"operationId": "tools.ozone.moderation.queryEvents",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "types",
|
|
"in": "query",
|
|
"description": "The types of events (fully qualified string in the format of tools.ozone.moderation.defs#modEvent<name>) to filter by. If not specified, all events are returned.",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "createdBy",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "did"
|
|
}
|
|
},
|
|
{
|
|
"name": "sortDirection",
|
|
"in": "query",
|
|
"description": "Sort direction for the events. Defaults to descending order of created at timestamp.",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Sort direction for the events. Defaults to descending order of created at timestamp.",
|
|
"default": "desc"
|
|
}
|
|
},
|
|
{
|
|
"name": "createdAfter",
|
|
"in": "query",
|
|
"description": "Retrieve events created after a given timestamp",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Retrieve events created after a given timestamp",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "createdBefore",
|
|
"in": "query",
|
|
"description": "Retrieve events created before a given timestamp",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Retrieve events created before a given timestamp",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "subject",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
}
|
|
},
|
|
{
|
|
"name": "includeAllUserRecords",
|
|
"in": "query",
|
|
"description": "If true, events on all record types (posts, lists, profile etc.) owned by the did are returned",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"description": "If true, events on all record types (posts, lists, profile etc.) owned by the did are returned"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "hasComment",
|
|
"in": "query",
|
|
"description": "If true, only events with comments are returned",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"description": "If true, only events with comments are returned"
|
|
}
|
|
},
|
|
{
|
|
"name": "comment",
|
|
"in": "query",
|
|
"description": "If specified, only events with comments containing the keyword are returned",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "If specified, only events with comments containing the keyword are returned"
|
|
}
|
|
},
|
|
{
|
|
"name": "addedLabels",
|
|
"in": "query",
|
|
"description": "If specified, only events where all of these labels were added are returned",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "removedLabels",
|
|
"in": "query",
|
|
"description": "If specified, only events where all of these labels were removed are returned",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "addedTags",
|
|
"in": "query",
|
|
"description": "If specified, only events where all of these tags were added are returned",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "removedTags",
|
|
"in": "query",
|
|
"description": "If specified, only events where all of these tags were removed are returned",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "reportTypes",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"events"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"events": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventView"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/tools.ozone.moderation.queryStatuses": {
|
|
"get": {
|
|
"tags": [
|
|
"tools.ozone.moderation"
|
|
],
|
|
"summary": "View moderation statuses of subjects (record or repo).",
|
|
"operationId": "tools.ozone.moderation.queryStatuses",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "subject",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
}
|
|
},
|
|
{
|
|
"name": "comment",
|
|
"in": "query",
|
|
"description": "Search subjects by keyword from comments",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Search subjects by keyword from comments"
|
|
}
|
|
},
|
|
{
|
|
"name": "reportedAfter",
|
|
"in": "query",
|
|
"description": "Search subjects reported after a given timestamp",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Search subjects reported after a given timestamp",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "reportedBefore",
|
|
"in": "query",
|
|
"description": "Search subjects reported before a given timestamp",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Search subjects reported before a given timestamp",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "reviewedAfter",
|
|
"in": "query",
|
|
"description": "Search subjects reviewed after a given timestamp",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Search subjects reviewed after a given timestamp",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "reviewedBefore",
|
|
"in": "query",
|
|
"description": "Search subjects reviewed before a given timestamp",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Search subjects reviewed before a given timestamp",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
{
|
|
"name": "includeMuted",
|
|
"in": "query",
|
|
"description": "By default, we don't include muted subjects in the results. Set this to true to include them.",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"description": "By default, we don't include muted subjects in the results. Set this to true to include them."
|
|
}
|
|
},
|
|
{
|
|
"name": "reviewState",
|
|
"in": "query",
|
|
"description": "Specify when fetching subjects in a certain state",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Specify when fetching subjects in a certain state"
|
|
}
|
|
},
|
|
{
|
|
"name": "ignoreSubjects",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "lastReviewedBy",
|
|
"in": "query",
|
|
"description": "Get all subject statuses that were reviewed by a specific moderator",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Get all subject statuses that were reviewed by a specific moderator",
|
|
"format": "did"
|
|
}
|
|
},
|
|
{
|
|
"name": "sortField",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"default": "lastReportedAt"
|
|
}
|
|
},
|
|
{
|
|
"name": "sortDirection",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"default": "desc"
|
|
}
|
|
},
|
|
{
|
|
"name": "takendown",
|
|
"in": "query",
|
|
"description": "Get subjects that were taken down",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"description": "Get subjects that were taken down"
|
|
}
|
|
},
|
|
{
|
|
"name": "appealed",
|
|
"in": "query",
|
|
"description": "Get subjects in unresolved appealed status",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"description": "Get subjects in unresolved appealed status"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "tags",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "excludeTags",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"subjectStatuses"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"subjectStatuses": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.subjectStatusView"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/tools.ozone.moderation.searchRepos": {
|
|
"get": {
|
|
"tags": [
|
|
"tools.ozone.moderation"
|
|
],
|
|
"summary": "Find repositories based on a search term.",
|
|
"operationId": "tools.ozone.moderation.searchRepos",
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "term",
|
|
"in": "query",
|
|
"description": "DEPRECATED: use 'q' instead",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "DEPRECATED: use 'q' instead"
|
|
}
|
|
},
|
|
{
|
|
"name": "q",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 100,
|
|
"default": 50
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"repos"
|
|
],
|
|
"properties": {
|
|
"cursor": {
|
|
"type": "string"
|
|
},
|
|
"repos": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.repoView"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"type": "string",
|
|
"oneOf": [
|
|
{
|
|
"const": "InvalidRequest"
|
|
},
|
|
{
|
|
"const": "ExpiredToken"
|
|
},
|
|
{
|
|
"const": "InvalidToken"
|
|
}
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"error",
|
|
"message"
|
|
],
|
|
"properties": {
|
|
"error": {
|
|
"const": "AuthMissing"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"components": {
|
|
"schemas": {
|
|
"app.bsky.actor.defs.profileViewBasic": {
|
|
"type": "object",
|
|
"required": [
|
|
"did",
|
|
"handle"
|
|
],
|
|
"properties": {
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"handle": {
|
|
"type": "string",
|
|
"format": "handle"
|
|
},
|
|
"displayName": {
|
|
"type": "string",
|
|
"maxLength": 640
|
|
},
|
|
"avatar": {
|
|
"type": "string"
|
|
},
|
|
"viewer": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.viewerState"
|
|
},
|
|
"labels": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.label"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.actor.defs.profileView": {
|
|
"type": "object",
|
|
"required": [
|
|
"did",
|
|
"handle"
|
|
],
|
|
"properties": {
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"handle": {
|
|
"type": "string",
|
|
"format": "handle"
|
|
},
|
|
"displayName": {
|
|
"type": "string",
|
|
"maxLength": 640
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"maxLength": 2560
|
|
},
|
|
"avatar": {
|
|
"type": "string"
|
|
},
|
|
"indexedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"viewer": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.viewerState"
|
|
},
|
|
"labels": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.label"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.actor.defs.profileViewDetailed": {
|
|
"type": "object",
|
|
"required": [
|
|
"did",
|
|
"handle"
|
|
],
|
|
"properties": {
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"handle": {
|
|
"type": "string",
|
|
"format": "handle"
|
|
},
|
|
"displayName": {
|
|
"type": "string",
|
|
"maxLength": 640
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"maxLength": 2560
|
|
},
|
|
"avatar": {
|
|
"type": "string"
|
|
},
|
|
"banner": {
|
|
"type": "string"
|
|
},
|
|
"followersCount": {
|
|
"type": "integer"
|
|
},
|
|
"followsCount": {
|
|
"type": "integer"
|
|
},
|
|
"postsCount": {
|
|
"type": "integer"
|
|
},
|
|
"associated": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileAssociated"
|
|
},
|
|
"indexedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"viewer": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.viewerState"
|
|
},
|
|
"labels": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.label"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.actor.defs.profileAssociated": {
|
|
"type": "object",
|
|
"properties": {
|
|
"lists": {
|
|
"type": "integer"
|
|
},
|
|
"feedgens": {
|
|
"type": "integer"
|
|
},
|
|
"labeler": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.actor.defs.viewerState": {
|
|
"type": "object",
|
|
"description": "Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests.",
|
|
"properties": {
|
|
"muted": {
|
|
"type": "boolean"
|
|
},
|
|
"mutedByList": {
|
|
"$ref": "#/components/schemas/app.bsky.graph.defs.listViewBasic"
|
|
},
|
|
"blockedBy": {
|
|
"type": "boolean"
|
|
},
|
|
"blocking": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"blockingByList": {
|
|
"$ref": "#/components/schemas/app.bsky.graph.defs.listViewBasic"
|
|
},
|
|
"following": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"followedBy": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.actor.defs.preferences": {
|
|
"type": "array",
|
|
"items": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.adultContentPref"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.contentLabelPref"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.savedFeedsPref"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.personalDetailsPref"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.feedViewPref"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.threadViewPref"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.interestsPref"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.mutedWordsPref"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.hiddenPostsPref"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"app.bsky.actor.defs.adultContentPref": {
|
|
"type": "object",
|
|
"required": [
|
|
"enabled"
|
|
],
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.actor.defs.contentLabelPref": {
|
|
"type": "object",
|
|
"required": [
|
|
"label",
|
|
"visibility"
|
|
],
|
|
"properties": {
|
|
"labelerDid": {
|
|
"type": "string",
|
|
"description": "Which labeler does this preference apply to? If undefined, applies globally.",
|
|
"format": "did"
|
|
},
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"visibility": {
|
|
"type": "string",
|
|
"enum": [
|
|
"ignore",
|
|
"show",
|
|
"warn",
|
|
"hide"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.actor.defs.savedFeedsPref": {
|
|
"type": "object",
|
|
"required": [
|
|
"pinned",
|
|
"saved"
|
|
],
|
|
"properties": {
|
|
"pinned": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
}
|
|
},
|
|
"saved": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
}
|
|
},
|
|
"timelineIndex": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.actor.defs.personalDetailsPref": {
|
|
"type": "object",
|
|
"properties": {
|
|
"birthDate": {
|
|
"type": "string",
|
|
"description": "The birth date of account owner.",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.actor.defs.feedViewPref": {
|
|
"type": "object",
|
|
"required": [
|
|
"feed"
|
|
],
|
|
"properties": {
|
|
"feed": {
|
|
"type": "string",
|
|
"description": "The URI of the feed, or an identifier which describes the feed."
|
|
},
|
|
"hideReplies": {
|
|
"type": "boolean",
|
|
"description": "Hide replies in the feed."
|
|
},
|
|
"hideRepliesByUnfollowed": {
|
|
"type": "boolean",
|
|
"description": "Hide replies in the feed if they are not by followed users.",
|
|
"default": true
|
|
},
|
|
"hideRepliesByLikeCount": {
|
|
"type": "integer"
|
|
},
|
|
"hideReposts": {
|
|
"type": "boolean",
|
|
"description": "Hide reposts in the feed."
|
|
},
|
|
"hideQuotePosts": {
|
|
"type": "boolean",
|
|
"description": "Hide quote posts in the feed."
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.actor.defs.threadViewPref": {
|
|
"type": "object",
|
|
"properties": {
|
|
"sort": {
|
|
"type": "string",
|
|
"description": "Sorting mode for threads.",
|
|
"enum": [
|
|
"oldest",
|
|
"newest",
|
|
"most-likes",
|
|
"random"
|
|
]
|
|
},
|
|
"prioritizeFollowedUsers": {
|
|
"type": "boolean",
|
|
"description": "Show followed users at the top of all replies."
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.actor.defs.interestsPref": {
|
|
"type": "object",
|
|
"required": [
|
|
"tags"
|
|
],
|
|
"properties": {
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"maxLength": 640
|
|
},
|
|
"maxItems": 100
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.actor.defs.mutedWordTarget": {
|
|
"type": "string",
|
|
"maxLength": 640,
|
|
"enum": [
|
|
"content",
|
|
"tag"
|
|
]
|
|
},
|
|
"app.bsky.actor.defs.mutedWord": {
|
|
"type": "object",
|
|
"description": "A word that the account owner has muted.",
|
|
"required": [
|
|
"value",
|
|
"targets"
|
|
],
|
|
"properties": {
|
|
"value": {
|
|
"type": "string",
|
|
"description": "The muted word itself.",
|
|
"maxLength": 10000
|
|
},
|
|
"targets": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.mutedWordTarget"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.actor.defs.mutedWordsPref": {
|
|
"type": "object",
|
|
"required": [
|
|
"items"
|
|
],
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.mutedWord"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.actor.defs.hiddenPostsPref": {
|
|
"type": "object",
|
|
"required": [
|
|
"items"
|
|
],
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.actor.defs.labelersPref": {
|
|
"type": "object",
|
|
"required": [
|
|
"labelers"
|
|
],
|
|
"properties": {
|
|
"labelers": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.labelerPrefItem"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.actor.defs.labelerPrefItem": {
|
|
"type": "object",
|
|
"required": [
|
|
"did"
|
|
],
|
|
"properties": {
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.actor.profile": {
|
|
"type": "object",
|
|
"properties": {
|
|
"displayName": {
|
|
"type": "string",
|
|
"maxLength": 640
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"description": "Free-form profile description text.",
|
|
"maxLength": 2560
|
|
},
|
|
"avatar": {
|
|
"type": "string",
|
|
"format": "binary",
|
|
"maxLength": 1000000
|
|
},
|
|
"banner": {
|
|
"type": "string",
|
|
"format": "binary",
|
|
"maxLength": 1000000
|
|
},
|
|
"labels": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.selfLabels"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.embed.external": {
|
|
"type": "object",
|
|
"description": "A representation of some externally linked content (eg, a URL and 'card'), embedded in a Bluesky record (eg, a post).",
|
|
"required": [
|
|
"external"
|
|
],
|
|
"properties": {
|
|
"external": {
|
|
"$ref": "#/components/schemas/app.bsky.embed.external.external"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.embed.external.external": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"title",
|
|
"description"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"thumb": {
|
|
"type": "string",
|
|
"format": "binary",
|
|
"maxLength": 1000000
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.embed.external.view": {
|
|
"type": "object",
|
|
"required": [
|
|
"external"
|
|
],
|
|
"properties": {
|
|
"external": {
|
|
"$ref": "#/components/schemas/app.bsky.embed.external.viewExternal"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.embed.external.viewExternal": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"title",
|
|
"description"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"thumb": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.embed.images": {
|
|
"type": "object",
|
|
"required": [
|
|
"images"
|
|
],
|
|
"properties": {
|
|
"images": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.embed.images.image"
|
|
},
|
|
"maxItems": 4
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.embed.images.image": {
|
|
"type": "object",
|
|
"required": [
|
|
"image",
|
|
"alt"
|
|
],
|
|
"properties": {
|
|
"image": {
|
|
"type": "string",
|
|
"format": "binary",
|
|
"maxLength": 1000000
|
|
},
|
|
"alt": {
|
|
"type": "string",
|
|
"description": "Alt text description of the image, for accessibility."
|
|
},
|
|
"aspectRatio": {
|
|
"$ref": "#/components/schemas/app.bsky.embed.images.aspectRatio"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.embed.images.aspectRatio": {
|
|
"type": "object",
|
|
"description": "width:height represents an aspect ratio. It may be approximate, and may not correspond to absolute dimensions in any given unit.",
|
|
"required": [
|
|
"width",
|
|
"height"
|
|
],
|
|
"properties": {
|
|
"width": {
|
|
"type": "integer",
|
|
"minimum": 1
|
|
},
|
|
"height": {
|
|
"type": "integer",
|
|
"minimum": 1
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.embed.images.view": {
|
|
"type": "object",
|
|
"required": [
|
|
"images"
|
|
],
|
|
"properties": {
|
|
"images": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.embed.images.viewImage"
|
|
},
|
|
"maxItems": 4
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.embed.images.viewImage": {
|
|
"type": "object",
|
|
"required": [
|
|
"thumb",
|
|
"fullsize",
|
|
"alt"
|
|
],
|
|
"properties": {
|
|
"thumb": {
|
|
"type": "string",
|
|
"description": "Fully-qualified URL where a thumbnail of the image can be fetched. For example, CDN location provided by the App View."
|
|
},
|
|
"fullsize": {
|
|
"type": "string",
|
|
"description": "Fully-qualified URL where a large version of the image can be fetched. May or may not be the exact original blob. For example, CDN location provided by the App View."
|
|
},
|
|
"alt": {
|
|
"type": "string",
|
|
"description": "Alt text description of the image, for accessibility."
|
|
},
|
|
"aspectRatio": {
|
|
"$ref": "#/components/schemas/app.bsky.embed.images.aspectRatio"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.embed.record": {
|
|
"type": "object",
|
|
"required": [
|
|
"record"
|
|
],
|
|
"properties": {
|
|
"record": {
|
|
"$ref": "#/components/schemas/com.atproto.repo.strongRef"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.embed.record.view": {
|
|
"type": "object",
|
|
"required": [
|
|
"record"
|
|
],
|
|
"properties": {
|
|
"record": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.embed.record.viewRecord"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.embed.record.viewNotFound"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.embed.record.viewBlocked"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.generatorView"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.graph.defs.listView"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.labeler.defs.labelerView"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.embed.record.viewRecord": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"cid",
|
|
"author",
|
|
"value",
|
|
"indexedAt"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
},
|
|
"author": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileViewBasic"
|
|
},
|
|
"value": {},
|
|
"labels": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.label"
|
|
}
|
|
},
|
|
"embeds": {
|
|
"type": "array",
|
|
"items": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.embed.images.view"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.embed.external.view"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.embed.record.view"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.embed.recordWithMedia.view"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"indexedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.embed.record.viewNotFound": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"notFound"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"notFound": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.embed.record.viewBlocked": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"blocked",
|
|
"author"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"blocked": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"author": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.blockedAuthor"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.embed.recordWithMedia": {
|
|
"type": "object",
|
|
"required": [
|
|
"record",
|
|
"media"
|
|
],
|
|
"properties": {
|
|
"record": {
|
|
"$ref": "#/components/schemas/app.bsky.embed.record"
|
|
},
|
|
"media": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.embed.images"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.embed.external"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.embed.recordWithMedia.view": {
|
|
"type": "object",
|
|
"required": [
|
|
"record",
|
|
"media"
|
|
],
|
|
"properties": {
|
|
"record": {
|
|
"$ref": "#/components/schemas/app.bsky.embed.record.view"
|
|
},
|
|
"media": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.embed.images.view"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.embed.external.view"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.defs.postView": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"cid",
|
|
"author",
|
|
"record",
|
|
"indexedAt"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
},
|
|
"author": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileViewBasic"
|
|
},
|
|
"record": {},
|
|
"embed": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.embed.images.view"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.embed.external.view"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.embed.record.view"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.embed.recordWithMedia.view"
|
|
}
|
|
]
|
|
},
|
|
"replyCount": {
|
|
"type": "integer"
|
|
},
|
|
"repostCount": {
|
|
"type": "integer"
|
|
},
|
|
"likeCount": {
|
|
"type": "integer"
|
|
},
|
|
"indexedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"viewer": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.viewerState"
|
|
},
|
|
"labels": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.label"
|
|
}
|
|
},
|
|
"threadgate": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.threadgateView"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.defs.viewerState": {
|
|
"type": "object",
|
|
"description": "Metadata about the requesting account's relationship with the subject content. Only has meaningful content for authed requests.",
|
|
"properties": {
|
|
"repost": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"like": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"replyDisabled": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.defs.feedViewPost": {
|
|
"type": "object",
|
|
"required": [
|
|
"post"
|
|
],
|
|
"properties": {
|
|
"post": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.postView"
|
|
},
|
|
"reply": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.replyRef"
|
|
},
|
|
"reason": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.reasonRepost"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.defs.replyRef": {
|
|
"type": "object",
|
|
"required": [
|
|
"root",
|
|
"parent"
|
|
],
|
|
"properties": {
|
|
"root": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.postView"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.notFoundPost"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.blockedPost"
|
|
}
|
|
]
|
|
},
|
|
"parent": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.postView"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.notFoundPost"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.blockedPost"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.defs.reasonRepost": {
|
|
"type": "object",
|
|
"required": [
|
|
"by",
|
|
"indexedAt"
|
|
],
|
|
"properties": {
|
|
"by": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileViewBasic"
|
|
},
|
|
"indexedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.defs.threadViewPost": {
|
|
"type": "object",
|
|
"required": [
|
|
"post"
|
|
],
|
|
"properties": {
|
|
"post": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.postView"
|
|
},
|
|
"parent": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.threadViewPost"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.notFoundPost"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.blockedPost"
|
|
}
|
|
]
|
|
},
|
|
"replies": {
|
|
"type": "array",
|
|
"items": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.threadViewPost"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.notFoundPost"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.blockedPost"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.defs.notFoundPost": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"notFound"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"notFound": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.defs.blockedPost": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"blocked",
|
|
"author"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"blocked": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"author": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.blockedAuthor"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.defs.blockedAuthor": {
|
|
"type": "object",
|
|
"required": [
|
|
"did"
|
|
],
|
|
"properties": {
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"viewer": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.viewerState"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.defs.generatorView": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"cid",
|
|
"did",
|
|
"creator",
|
|
"displayName",
|
|
"indexedAt"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
},
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"creator": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileView"
|
|
},
|
|
"displayName": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"maxLength": 3000
|
|
},
|
|
"descriptionFacets": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.richtext.facet"
|
|
}
|
|
},
|
|
"avatar": {
|
|
"type": "string"
|
|
},
|
|
"likeCount": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"labels": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.label"
|
|
}
|
|
},
|
|
"viewer": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.generatorViewerState"
|
|
},
|
|
"indexedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.defs.generatorViewerState": {
|
|
"type": "object",
|
|
"properties": {
|
|
"like": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.defs.skeletonFeedPost": {
|
|
"type": "object",
|
|
"required": [
|
|
"post"
|
|
],
|
|
"properties": {
|
|
"post": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"reason": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.feed.defs.skeletonReasonRepost"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.defs.skeletonReasonRepost": {
|
|
"type": "object",
|
|
"required": [
|
|
"repost"
|
|
],
|
|
"properties": {
|
|
"repost": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.defs.threadgateView": {
|
|
"type": "object",
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
},
|
|
"record": {},
|
|
"lists": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.graph.defs.listViewBasic"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.describeFeedGenerator.feed": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.describeFeedGenerator.links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"privacyPolicy": {
|
|
"type": "string"
|
|
},
|
|
"termsOfService": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.generator": {
|
|
"type": "object",
|
|
"required": [
|
|
"did",
|
|
"displayName",
|
|
"createdAt"
|
|
],
|
|
"properties": {
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"displayName": {
|
|
"type": "string",
|
|
"maxLength": 240
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"maxLength": 3000
|
|
},
|
|
"descriptionFacets": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.richtext.facet"
|
|
}
|
|
},
|
|
"avatar": {
|
|
"type": "string",
|
|
"format": "binary",
|
|
"maxLength": 1000000
|
|
},
|
|
"labels": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.selfLabels"
|
|
}
|
|
]
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.getLikes.like": {
|
|
"type": "object",
|
|
"required": [
|
|
"indexedAt",
|
|
"createdAt",
|
|
"actor"
|
|
],
|
|
"properties": {
|
|
"indexedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"actor": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileView"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.like": {
|
|
"type": "object",
|
|
"required": [
|
|
"subject",
|
|
"createdAt"
|
|
],
|
|
"properties": {
|
|
"subject": {
|
|
"$ref": "#/components/schemas/com.atproto.repo.strongRef"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.post": {
|
|
"type": "object",
|
|
"required": [
|
|
"text",
|
|
"createdAt"
|
|
],
|
|
"properties": {
|
|
"text": {
|
|
"type": "string",
|
|
"description": "The primary post content. May be an empty string, if there are embeds.",
|
|
"maxLength": 3000
|
|
},
|
|
"entities": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.post.entity"
|
|
}
|
|
},
|
|
"facets": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.richtext.facet"
|
|
}
|
|
},
|
|
"reply": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.post.replyRef"
|
|
},
|
|
"embed": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.embed.images"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.embed.external"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.embed.record"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.embed.recordWithMedia"
|
|
}
|
|
]
|
|
},
|
|
"langs": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "language"
|
|
},
|
|
"maxItems": 3
|
|
},
|
|
"labels": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.selfLabels"
|
|
}
|
|
]
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"maxLength": 640
|
|
},
|
|
"maxItems": 8
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"description": "Client-declared timestamp when this post was originally created.",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.post.replyRef": {
|
|
"type": "object",
|
|
"required": [
|
|
"root",
|
|
"parent"
|
|
],
|
|
"properties": {
|
|
"root": {
|
|
"$ref": "#/components/schemas/com.atproto.repo.strongRef"
|
|
},
|
|
"parent": {
|
|
"$ref": "#/components/schemas/com.atproto.repo.strongRef"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.post.entity": {
|
|
"type": "object",
|
|
"description": "Deprecated: use facets instead.",
|
|
"required": [
|
|
"index",
|
|
"type",
|
|
"value"
|
|
],
|
|
"properties": {
|
|
"index": {
|
|
"$ref": "#/components/schemas/app.bsky.feed.post.textSlice"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Expected values are 'mention' and 'link'."
|
|
},
|
|
"value": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.post.textSlice": {
|
|
"type": "object",
|
|
"description": "Deprecated. Use app.bsky.richtext instead -- A text segment. Start is inclusive, end is exclusive. Indices are for utf16-encoded strings.",
|
|
"required": [
|
|
"start",
|
|
"end"
|
|
],
|
|
"properties": {
|
|
"start": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"end": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.repost": {
|
|
"type": "object",
|
|
"required": [
|
|
"subject",
|
|
"createdAt"
|
|
],
|
|
"properties": {
|
|
"subject": {
|
|
"$ref": "#/components/schemas/com.atproto.repo.strongRef"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.threadgate": {
|
|
"type": "object",
|
|
"required": [
|
|
"post",
|
|
"createdAt"
|
|
],
|
|
"properties": {
|
|
"post": {
|
|
"type": "string",
|
|
"description": "Reference (AT-URI) to the post record.",
|
|
"format": "at-uri"
|
|
},
|
|
"allow": {
|
|
"type": "array",
|
|
"items": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.feed.threadgate.mentionRule"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.feed.threadgate.followingRule"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.feed.threadgate.listRule"
|
|
}
|
|
]
|
|
},
|
|
"maxItems": 5
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.feed.threadgate.mentionRule": {
|
|
"type": "object",
|
|
"description": "Allow replies from actors mentioned in your post.",
|
|
"properties": {}
|
|
},
|
|
"app.bsky.feed.threadgate.followingRule": {
|
|
"type": "object",
|
|
"description": "Allow replies from actors you follow.",
|
|
"properties": {}
|
|
},
|
|
"app.bsky.feed.threadgate.listRule": {
|
|
"type": "object",
|
|
"description": "Allow replies from actors on a list.",
|
|
"required": [
|
|
"list"
|
|
],
|
|
"properties": {
|
|
"list": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.graph.block": {
|
|
"type": "object",
|
|
"required": [
|
|
"subject",
|
|
"createdAt"
|
|
],
|
|
"properties": {
|
|
"subject": {
|
|
"type": "string",
|
|
"description": "DID of the account to be blocked.",
|
|
"format": "did"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.graph.defs.listViewBasic": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"cid",
|
|
"name",
|
|
"purpose"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 64
|
|
},
|
|
"purpose": {
|
|
"$ref": "#/components/schemas/app.bsky.graph.defs.listPurpose"
|
|
},
|
|
"avatar": {
|
|
"type": "string"
|
|
},
|
|
"labels": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.label"
|
|
}
|
|
},
|
|
"viewer": {
|
|
"$ref": "#/components/schemas/app.bsky.graph.defs.listViewerState"
|
|
},
|
|
"indexedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.graph.defs.listView": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"cid",
|
|
"creator",
|
|
"name",
|
|
"purpose",
|
|
"indexedAt"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
},
|
|
"creator": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileView"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 64
|
|
},
|
|
"purpose": {
|
|
"$ref": "#/components/schemas/app.bsky.graph.defs.listPurpose"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"maxLength": 3000
|
|
},
|
|
"descriptionFacets": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.richtext.facet"
|
|
}
|
|
},
|
|
"avatar": {
|
|
"type": "string"
|
|
},
|
|
"labels": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.label"
|
|
}
|
|
},
|
|
"viewer": {
|
|
"$ref": "#/components/schemas/app.bsky.graph.defs.listViewerState"
|
|
},
|
|
"indexedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.graph.defs.listItemView": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"subject"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"subject": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileView"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.graph.defs.listPurpose": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.graph.defs.modlist"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.graph.defs.curatelist"
|
|
}
|
|
]
|
|
},
|
|
"app.bsky.graph.defs.modlist": {
|
|
"type": "string",
|
|
"format": "token",
|
|
"description": "A list of actors to apply an aggregate moderation action (mute/block) on."
|
|
},
|
|
"app.bsky.graph.defs.curatelist": {
|
|
"type": "string",
|
|
"format": "token",
|
|
"description": "A list of actors used for curation purposes such as list feeds or interaction gating."
|
|
},
|
|
"app.bsky.graph.defs.listViewerState": {
|
|
"type": "object",
|
|
"properties": {
|
|
"muted": {
|
|
"type": "boolean"
|
|
},
|
|
"blocked": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.graph.defs.notFoundActor": {
|
|
"type": "object",
|
|
"description": "indicates that a handle or DID could not be resolved",
|
|
"required": [
|
|
"actor",
|
|
"notFound"
|
|
],
|
|
"properties": {
|
|
"actor": {
|
|
"type": "string",
|
|
"format": "at-identifier"
|
|
},
|
|
"notFound": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.graph.defs.relationship": {
|
|
"type": "object",
|
|
"description": "lists the bi-directional graph relationships between one actor (not indicated in the object), and the target actors (the DID included in the object)",
|
|
"required": [
|
|
"did"
|
|
],
|
|
"properties": {
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"following": {
|
|
"type": "string",
|
|
"description": "if the actor follows this DID, this is the AT-URI of the follow record",
|
|
"format": "at-uri"
|
|
},
|
|
"followedBy": {
|
|
"type": "string",
|
|
"description": "if the actor is followed by this DID, contains the AT-URI of the follow record",
|
|
"format": "at-uri"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.graph.follow": {
|
|
"type": "object",
|
|
"required": [
|
|
"subject",
|
|
"createdAt"
|
|
],
|
|
"properties": {
|
|
"subject": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.graph.list": {
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"purpose",
|
|
"createdAt"
|
|
],
|
|
"properties": {
|
|
"purpose": {
|
|
"$ref": "#/components/schemas/app.bsky.graph.defs.listPurpose"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "Display name for list; can not be empty.",
|
|
"minLength": 1,
|
|
"maxLength": 64
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"maxLength": 3000
|
|
},
|
|
"descriptionFacets": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/app.bsky.richtext.facet"
|
|
}
|
|
},
|
|
"avatar": {
|
|
"type": "string",
|
|
"format": "binary",
|
|
"maxLength": 1000000
|
|
},
|
|
"labels": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.selfLabels"
|
|
}
|
|
]
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.graph.listblock": {
|
|
"type": "object",
|
|
"required": [
|
|
"subject",
|
|
"createdAt"
|
|
],
|
|
"properties": {
|
|
"subject": {
|
|
"type": "string",
|
|
"description": "Reference (AT-URI) to the mod list record.",
|
|
"format": "at-uri"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.graph.listitem": {
|
|
"type": "object",
|
|
"required": [
|
|
"subject",
|
|
"list",
|
|
"createdAt"
|
|
],
|
|
"properties": {
|
|
"subject": {
|
|
"type": "string",
|
|
"description": "The account which is included on the list.",
|
|
"format": "did"
|
|
},
|
|
"list": {
|
|
"type": "string",
|
|
"description": "Reference (AT-URI) to the list record (app.bsky.graph.list).",
|
|
"format": "at-uri"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.labeler.defs.labelerView": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"cid",
|
|
"creator",
|
|
"indexedAt"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
},
|
|
"creator": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileView"
|
|
},
|
|
"likeCount": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"viewer": {
|
|
"$ref": "#/components/schemas/app.bsky.labeler.defs.labelerViewerState"
|
|
},
|
|
"indexedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"labels": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.label"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.labeler.defs.labelerViewDetailed": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"cid",
|
|
"creator",
|
|
"policies",
|
|
"indexedAt"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
},
|
|
"creator": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileView"
|
|
},
|
|
"policies": {
|
|
"$ref": "#/components/schemas/app.bsky.labeler.defs.labelerPolicies"
|
|
},
|
|
"likeCount": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"viewer": {
|
|
"$ref": "#/components/schemas/app.bsky.labeler.defs.labelerViewerState"
|
|
},
|
|
"indexedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"labels": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.label"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.labeler.defs.labelerViewerState": {
|
|
"type": "object",
|
|
"properties": {
|
|
"like": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.labeler.defs.labelerPolicies": {
|
|
"type": "object",
|
|
"required": [
|
|
"labelValues"
|
|
],
|
|
"properties": {
|
|
"labelValues": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.labelValue"
|
|
}
|
|
},
|
|
"labelValueDefinitions": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.labelValueDefinition"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.labeler.service": {
|
|
"type": "object",
|
|
"required": [
|
|
"policies",
|
|
"createdAt"
|
|
],
|
|
"properties": {
|
|
"policies": {
|
|
"$ref": "#/components/schemas/app.bsky.labeler.defs.labelerPolicies"
|
|
},
|
|
"labels": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.selfLabels"
|
|
}
|
|
]
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.notification.listNotifications.notification": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"cid",
|
|
"author",
|
|
"reason",
|
|
"record",
|
|
"isRead",
|
|
"indexedAt"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
},
|
|
"author": {
|
|
"$ref": "#/components/schemas/app.bsky.actor.defs.profileView"
|
|
},
|
|
"reason": {
|
|
"type": "string",
|
|
"description": "Expected values are 'like', 'repost', 'follow', 'mention', 'reply', and 'quote'.",
|
|
"enum": [
|
|
"like",
|
|
"repost",
|
|
"follow",
|
|
"mention",
|
|
"reply",
|
|
"quote"
|
|
]
|
|
},
|
|
"reasonSubject": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"record": {},
|
|
"isRead": {
|
|
"type": "boolean"
|
|
},
|
|
"indexedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"labels": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.label"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.richtext.facet": {
|
|
"type": "object",
|
|
"description": "Annotation of a sub-string within rich text.",
|
|
"required": [
|
|
"index",
|
|
"features"
|
|
],
|
|
"properties": {
|
|
"index": {
|
|
"$ref": "#/components/schemas/app.bsky.richtext.facet.byteSlice"
|
|
},
|
|
"features": {
|
|
"type": "array",
|
|
"items": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.richtext.facet.mention"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.richtext.facet.link"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/app.bsky.richtext.facet.tag"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.richtext.facet.mention": {
|
|
"type": "object",
|
|
"description": "Facet feature for mention of another account. The text is usually a handle, including a '@' prefix, but the facet reference is a DID.",
|
|
"required": [
|
|
"did"
|
|
],
|
|
"properties": {
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.richtext.facet.link": {
|
|
"type": "object",
|
|
"description": "Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL.",
|
|
"required": [
|
|
"uri"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.richtext.facet.tag": {
|
|
"type": "object",
|
|
"description": "Facet feature for a hashtag. The text usually includes a '#' prefix, but the facet reference should not (except in the case of 'double hash tags').",
|
|
"required": [
|
|
"tag"
|
|
],
|
|
"properties": {
|
|
"tag": {
|
|
"type": "string",
|
|
"maxLength": 640
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.richtext.facet.byteSlice": {
|
|
"type": "object",
|
|
"description": "Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets.",
|
|
"required": [
|
|
"byteStart",
|
|
"byteEnd"
|
|
],
|
|
"properties": {
|
|
"byteStart": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"byteEnd": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.unspecced.defs.skeletonSearchPost": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.unspecced.defs.skeletonSearchActor": {
|
|
"type": "object",
|
|
"required": [
|
|
"did"
|
|
],
|
|
"properties": {
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
}
|
|
}
|
|
},
|
|
"app.bsky.unspecced.getTaggedSuggestions.suggestion": {
|
|
"type": "object",
|
|
"required": [
|
|
"tag",
|
|
"subjectType",
|
|
"subject"
|
|
],
|
|
"properties": {
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"subjectType": {
|
|
"type": "string",
|
|
"enum": [
|
|
"actor",
|
|
"feed"
|
|
]
|
|
},
|
|
"subject": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.admin.defs.statusAttr": {
|
|
"type": "object",
|
|
"required": [
|
|
"applied"
|
|
],
|
|
"properties": {
|
|
"applied": {
|
|
"type": "boolean"
|
|
},
|
|
"ref": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.admin.defs.accountView": {
|
|
"type": "object",
|
|
"required": [
|
|
"did",
|
|
"handle",
|
|
"indexedAt"
|
|
],
|
|
"properties": {
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"handle": {
|
|
"type": "string",
|
|
"format": "handle"
|
|
},
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"relatedRecords": {
|
|
"type": "array",
|
|
"items": {}
|
|
},
|
|
"indexedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"invitedBy": {
|
|
"$ref": "#/components/schemas/com.atproto.server.defs.inviteCode"
|
|
},
|
|
"invites": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.server.defs.inviteCode"
|
|
}
|
|
},
|
|
"invitesDisabled": {
|
|
"type": "boolean"
|
|
},
|
|
"emailConfirmedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"inviteNote": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.admin.defs.repoRef": {
|
|
"type": "object",
|
|
"required": [
|
|
"did"
|
|
],
|
|
"properties": {
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.admin.defs.repoBlobRef": {
|
|
"type": "object",
|
|
"required": [
|
|
"did",
|
|
"cid"
|
|
],
|
|
"properties": {
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
},
|
|
"recordUri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.label.defs.label": {
|
|
"type": "object",
|
|
"description": "Metadata tag on an atproto resource (eg, repo or record).",
|
|
"required": [
|
|
"src",
|
|
"uri",
|
|
"val",
|
|
"cts"
|
|
],
|
|
"properties": {
|
|
"ver": {
|
|
"type": "integer"
|
|
},
|
|
"src": {
|
|
"type": "string",
|
|
"description": "DID of the actor who created this label.",
|
|
"format": "did"
|
|
},
|
|
"uri": {
|
|
"type": "string",
|
|
"description": "AT URI of the record, repository (account), or other resource that this label applies to.",
|
|
"format": "uri"
|
|
},
|
|
"cid": {
|
|
"type": "string",
|
|
"description": "Optionally, CID specifying the specific version of 'uri' resource this label applies to.",
|
|
"format": "cid"
|
|
},
|
|
"val": {
|
|
"type": "string",
|
|
"description": "The short string name of the value or type of this label.",
|
|
"maxLength": 128
|
|
},
|
|
"neg": {
|
|
"type": "boolean",
|
|
"description": "If true, this is a negation label, overwriting a previous label."
|
|
},
|
|
"cts": {
|
|
"type": "string",
|
|
"description": "Timestamp when this label was created.",
|
|
"format": "date-time"
|
|
},
|
|
"exp": {
|
|
"type": "string",
|
|
"description": "Timestamp at which this label expires (no longer applies).",
|
|
"format": "date-time"
|
|
},
|
|
"sig": {
|
|
"type": "string",
|
|
"format": "byte",
|
|
"description": "Signature of dag-cbor encoded label."
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.label.defs.selfLabels": {
|
|
"type": "object",
|
|
"description": "Metadata tags on an atproto record, published by the author within the record.",
|
|
"required": [
|
|
"values"
|
|
],
|
|
"properties": {
|
|
"values": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.selfLabel"
|
|
},
|
|
"maxItems": 10
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.label.defs.selfLabel": {
|
|
"type": "object",
|
|
"description": "Metadata tag on an atproto record, published by the author within the record. Note that schemas should use #selfLabels, not #selfLabel.",
|
|
"required": [
|
|
"val"
|
|
],
|
|
"properties": {
|
|
"val": {
|
|
"type": "string",
|
|
"description": "The short string name of the value or type of this label.",
|
|
"maxLength": 128
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.label.defs.labelValueDefinition": {
|
|
"type": "object",
|
|
"description": "Declares a label value and its expected interpertations and behaviors.",
|
|
"required": [
|
|
"identifier",
|
|
"severity",
|
|
"blurs",
|
|
"locales"
|
|
],
|
|
"properties": {
|
|
"identifier": {
|
|
"type": "string",
|
|
"description": "The value of the label being defined. Must only include lowercase ascii and the '-' character ([a-z-]+).",
|
|
"maxLength": 100
|
|
},
|
|
"severity": {
|
|
"type": "string",
|
|
"description": "How should a client visually convey this label? 'inform' means neutral and informational; 'alert' means negative and warning; 'none' means show nothing.",
|
|
"enum": [
|
|
"inform",
|
|
"alert",
|
|
"none"
|
|
]
|
|
},
|
|
"blurs": {
|
|
"type": "string",
|
|
"description": "What should this label hide in the UI, if applied? 'content' hides all of the target; 'media' hides the images/video/audio; 'none' hides nothing.",
|
|
"enum": [
|
|
"content",
|
|
"media",
|
|
"none"
|
|
]
|
|
},
|
|
"defaultSetting": {
|
|
"type": "string",
|
|
"description": "The default setting for this label.",
|
|
"default": "warn",
|
|
"enum": [
|
|
"ignore",
|
|
"warn",
|
|
"hide"
|
|
]
|
|
},
|
|
"adultOnly": {
|
|
"type": "boolean",
|
|
"description": "Does the user need to have adult content enabled in order to configure this label?"
|
|
},
|
|
"locales": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.labelValueDefinitionStrings"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.label.defs.labelValueDefinitionStrings": {
|
|
"type": "object",
|
|
"description": "Strings which describe the label in the UI, localized into a specific language.",
|
|
"required": [
|
|
"lang",
|
|
"name",
|
|
"description"
|
|
],
|
|
"properties": {
|
|
"lang": {
|
|
"type": "string",
|
|
"description": "The code of the language these strings are written in.",
|
|
"format": "language"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "A short human-readable name for the label.",
|
|
"maxLength": 640
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"description": "A longer description of what the label means and why it might be applied.",
|
|
"maxLength": 100000
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.label.defs.labelValue": {
|
|
"type": "string",
|
|
"enum": [
|
|
"!hide",
|
|
"!no-promote",
|
|
"!warn",
|
|
"!no-unauthenticated",
|
|
"dmca-violation",
|
|
"doxxing",
|
|
"porn",
|
|
"sexual",
|
|
"nudity",
|
|
"nsfl",
|
|
"gore"
|
|
]
|
|
},
|
|
"com.atproto.label.subscribeLabels.labels": {
|
|
"type": "object",
|
|
"required": [
|
|
"seq",
|
|
"labels"
|
|
],
|
|
"properties": {
|
|
"seq": {
|
|
"type": "integer"
|
|
},
|
|
"labels": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.label"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.label.subscribeLabels.info": {
|
|
"type": "object",
|
|
"required": [
|
|
"name"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"enum": [
|
|
"OutdatedCursor"
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.moderation.defs.reasonType": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.moderation.defs.reasonSpam"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.moderation.defs.reasonViolation"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.moderation.defs.reasonMisleading"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.moderation.defs.reasonSexual"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.moderation.defs.reasonRude"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.moderation.defs.reasonOther"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.moderation.defs.reasonAppeal"
|
|
}
|
|
]
|
|
},
|
|
"com.atproto.moderation.defs.reasonSpam": {
|
|
"type": "string",
|
|
"format": "token",
|
|
"description": "Spam: frequent unwanted promotion, replies, mentions"
|
|
},
|
|
"com.atproto.moderation.defs.reasonViolation": {
|
|
"type": "string",
|
|
"format": "token",
|
|
"description": "Direct violation of server rules, laws, terms of service"
|
|
},
|
|
"com.atproto.moderation.defs.reasonMisleading": {
|
|
"type": "string",
|
|
"format": "token",
|
|
"description": "Misleading identity, affiliation, or content"
|
|
},
|
|
"com.atproto.moderation.defs.reasonSexual": {
|
|
"type": "string",
|
|
"format": "token",
|
|
"description": "Unwanted or mislabeled sexual content"
|
|
},
|
|
"com.atproto.moderation.defs.reasonRude": {
|
|
"type": "string",
|
|
"format": "token",
|
|
"description": "Rude, harassing, explicit, or otherwise unwelcoming behavior"
|
|
},
|
|
"com.atproto.moderation.defs.reasonOther": {
|
|
"type": "string",
|
|
"format": "token",
|
|
"description": "Other: reports not falling under another report category"
|
|
},
|
|
"com.atproto.moderation.defs.reasonAppeal": {
|
|
"type": "string",
|
|
"format": "token",
|
|
"description": "Appeal: appeal a previously taken moderation action"
|
|
},
|
|
"com.atproto.repo.applyWrites.create": {
|
|
"type": "object",
|
|
"description": "Operation which creates a new record.",
|
|
"required": [
|
|
"collection",
|
|
"value"
|
|
],
|
|
"properties": {
|
|
"collection": {
|
|
"type": "string",
|
|
"format": "nsid"
|
|
},
|
|
"rkey": {
|
|
"type": "string",
|
|
"maxLength": 15
|
|
},
|
|
"value": {}
|
|
}
|
|
},
|
|
"com.atproto.repo.applyWrites.update": {
|
|
"type": "object",
|
|
"description": "Operation which updates an existing record.",
|
|
"required": [
|
|
"collection",
|
|
"rkey",
|
|
"value"
|
|
],
|
|
"properties": {
|
|
"collection": {
|
|
"type": "string",
|
|
"format": "nsid"
|
|
},
|
|
"rkey": {
|
|
"type": "string"
|
|
},
|
|
"value": {}
|
|
}
|
|
},
|
|
"com.atproto.repo.applyWrites.delete": {
|
|
"type": "object",
|
|
"description": "Operation which deletes an existing record.",
|
|
"required": [
|
|
"collection",
|
|
"rkey"
|
|
],
|
|
"properties": {
|
|
"collection": {
|
|
"type": "string",
|
|
"format": "nsid"
|
|
},
|
|
"rkey": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.repo.listMissingBlobs.recordBlob": {
|
|
"type": "object",
|
|
"required": [
|
|
"cid",
|
|
"recordUri"
|
|
],
|
|
"properties": {
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
},
|
|
"recordUri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.repo.listRecords.record": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"cid",
|
|
"value"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
},
|
|
"value": {}
|
|
}
|
|
},
|
|
"com.atproto.repo.strongRef": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"cid"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.server.createAppPassword.appPassword": {
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"password",
|
|
"createdAt"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.server.createInviteCodes.accountCodes": {
|
|
"type": "object",
|
|
"required": [
|
|
"account",
|
|
"codes"
|
|
],
|
|
"properties": {
|
|
"account": {
|
|
"type": "string"
|
|
},
|
|
"codes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.server.defs.inviteCode": {
|
|
"type": "object",
|
|
"required": [
|
|
"code",
|
|
"available",
|
|
"disabled",
|
|
"forAccount",
|
|
"createdBy",
|
|
"createdAt",
|
|
"uses"
|
|
],
|
|
"properties": {
|
|
"code": {
|
|
"type": "string"
|
|
},
|
|
"available": {
|
|
"type": "integer"
|
|
},
|
|
"disabled": {
|
|
"type": "boolean"
|
|
},
|
|
"forAccount": {
|
|
"type": "string"
|
|
},
|
|
"createdBy": {
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"uses": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.server.defs.inviteCodeUse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.server.defs.inviteCodeUse": {
|
|
"type": "object",
|
|
"required": [
|
|
"usedBy",
|
|
"usedAt"
|
|
],
|
|
"properties": {
|
|
"usedBy": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"usedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.server.describeServer.links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"privacyPolicy": {
|
|
"type": "string"
|
|
},
|
|
"termsOfService": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.server.listAppPasswords.appPassword": {
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"createdAt"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.sync.listRepos.repo": {
|
|
"type": "object",
|
|
"required": [
|
|
"did",
|
|
"head",
|
|
"rev"
|
|
],
|
|
"properties": {
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"head": {
|
|
"type": "string",
|
|
"description": "Current repo commit CID",
|
|
"format": "cid"
|
|
},
|
|
"rev": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.sync.subscribeRepos.commit": {
|
|
"type": "object",
|
|
"description": "Represents an update of repository state. Note that empty commits are allowed, which include no repo data changes, but an update to rev and signature.",
|
|
"required": [
|
|
"seq",
|
|
"rebase",
|
|
"tooBig",
|
|
"repo",
|
|
"commit",
|
|
"rev",
|
|
"since",
|
|
"blocks",
|
|
"ops",
|
|
"blobs",
|
|
"time"
|
|
],
|
|
"properties": {
|
|
"seq": {
|
|
"type": "integer"
|
|
},
|
|
"rebase": {
|
|
"type": "boolean",
|
|
"description": "DEPRECATED -- unused"
|
|
},
|
|
"tooBig": {
|
|
"type": "boolean",
|
|
"description": "Indicates that this commit contained too many ops, or data size was too large. Consumers will need to make a separate request to get missing data."
|
|
},
|
|
"repo": {
|
|
"type": "string",
|
|
"description": "The repo this event comes from.",
|
|
"format": "did"
|
|
},
|
|
"commit": {
|
|
"type": "string",
|
|
"format": "cid-link"
|
|
},
|
|
"prev": {
|
|
"type": "string",
|
|
"format": "cid-link"
|
|
},
|
|
"rev": {
|
|
"type": "string",
|
|
"description": "The rev of the emitted commit. Note that this information is also in the commit object included in blocks, unless this is a tooBig event."
|
|
},
|
|
"since": {
|
|
"type": "string",
|
|
"description": "The rev of the last emitted commit from this repo (if any)."
|
|
},
|
|
"blocks": {
|
|
"type": "string",
|
|
"format": "byte",
|
|
"description": "CAR file containing relevant blocks, as a diff since the previous repo state.",
|
|
"maxLength": 1000000
|
|
},
|
|
"ops": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.sync.subscribeRepos.repoOp"
|
|
},
|
|
"maxItems": 200
|
|
},
|
|
"blobs": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "cid-link"
|
|
}
|
|
},
|
|
"time": {
|
|
"type": "string",
|
|
"description": "Timestamp of when this message was originally broadcast.",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.sync.subscribeRepos.identity": {
|
|
"type": "object",
|
|
"description": "Represents a change to an account's identity. Could be an updated handle, signing key, or pds hosting endpoint. Serves as a prod to all downstream services to refresh their identity cache.",
|
|
"required": [
|
|
"seq",
|
|
"did",
|
|
"time"
|
|
],
|
|
"properties": {
|
|
"seq": {
|
|
"type": "integer"
|
|
},
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"time": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.sync.subscribeRepos.handle": {
|
|
"type": "object",
|
|
"description": "Represents an update of the account's handle, or transition to/from invalid state. NOTE: Will be deprecated in favor of #identity.",
|
|
"required": [
|
|
"seq",
|
|
"did",
|
|
"handle",
|
|
"time"
|
|
],
|
|
"properties": {
|
|
"seq": {
|
|
"type": "integer"
|
|
},
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"handle": {
|
|
"type": "string",
|
|
"format": "handle"
|
|
},
|
|
"time": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.sync.subscribeRepos.migrate": {
|
|
"type": "object",
|
|
"description": "Represents an account moving from one PDS instance to another. NOTE: not implemented; account migration uses #identity instead",
|
|
"required": [
|
|
"seq",
|
|
"did",
|
|
"migrateTo",
|
|
"time"
|
|
],
|
|
"properties": {
|
|
"seq": {
|
|
"type": "integer"
|
|
},
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"migrateTo": {
|
|
"type": "string"
|
|
},
|
|
"time": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.sync.subscribeRepos.tombstone": {
|
|
"type": "object",
|
|
"description": "Indicates that an account has been deleted. NOTE: may be deprecated in favor of #identity or a future #account event",
|
|
"required": [
|
|
"seq",
|
|
"did",
|
|
"time"
|
|
],
|
|
"properties": {
|
|
"seq": {
|
|
"type": "integer"
|
|
},
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"time": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.sync.subscribeRepos.info": {
|
|
"type": "object",
|
|
"required": [
|
|
"name"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"enum": [
|
|
"OutdatedCursor"
|
|
]
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"com.atproto.sync.subscribeRepos.repoOp": {
|
|
"type": "object",
|
|
"description": "A repo operation, ie a mutation of a single record.",
|
|
"required": [
|
|
"action",
|
|
"path",
|
|
"cid"
|
|
],
|
|
"properties": {
|
|
"action": {
|
|
"type": "string",
|
|
"enum": [
|
|
"create",
|
|
"update",
|
|
"delete"
|
|
]
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
},
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid-link"
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.communication.defs.templateView": {
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"contentMarkdown",
|
|
"disabled",
|
|
"lastUpdatedBy",
|
|
"createdAt",
|
|
"updatedAt"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "Name of the template."
|
|
},
|
|
"subject": {
|
|
"type": "string",
|
|
"description": "Content of the template, can contain markdown and variable placeholders."
|
|
},
|
|
"contentMarkdown": {
|
|
"type": "string",
|
|
"description": "Subject of the message, used in emails."
|
|
},
|
|
"disabled": {
|
|
"type": "boolean"
|
|
},
|
|
"lastUpdatedBy": {
|
|
"type": "string",
|
|
"description": "DID of the user who last updated the template.",
|
|
"format": "did"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.modEventView": {
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"event",
|
|
"subject",
|
|
"subjectBlobCids",
|
|
"createdBy",
|
|
"createdAt"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer"
|
|
},
|
|
"event": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventTakedown"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventReverseTakedown"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventComment"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventReport"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventLabel"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventAcknowledge"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventEscalate"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventMute"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventEmail"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventResolveAppeal"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventDivert"
|
|
}
|
|
]
|
|
},
|
|
"subject": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.admin.defs.repoRef"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.repo.strongRef"
|
|
}
|
|
]
|
|
},
|
|
"subjectBlobCids": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"createdBy": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"creatorHandle": {
|
|
"type": "string"
|
|
},
|
|
"subjectHandle": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.modEventViewDetail": {
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"event",
|
|
"subject",
|
|
"subjectBlobs",
|
|
"createdBy",
|
|
"createdAt"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer"
|
|
},
|
|
"event": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventTakedown"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventReverseTakedown"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventComment"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventReport"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventLabel"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventAcknowledge"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventEscalate"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventMute"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventEmail"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventResolveAppeal"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.modEventDivert"
|
|
}
|
|
]
|
|
},
|
|
"subject": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.repoView"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.repoViewNotFound"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.recordView"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.recordViewNotFound"
|
|
}
|
|
]
|
|
},
|
|
"subjectBlobs": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.blobView"
|
|
}
|
|
},
|
|
"createdBy": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.subjectStatusView": {
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"subject",
|
|
"createdAt",
|
|
"updatedAt",
|
|
"reviewState"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer"
|
|
},
|
|
"subject": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.admin.defs.repoRef"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/com.atproto.repo.strongRef"
|
|
}
|
|
]
|
|
},
|
|
"subjectBlobCids": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
}
|
|
},
|
|
"subjectRepoHandle": {
|
|
"type": "string"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"description": "Timestamp referencing when the last update was made to the moderation status of the subject",
|
|
"format": "date-time"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"description": "Timestamp referencing the first moderation status impacting event was emitted on the subject",
|
|
"format": "date-time"
|
|
},
|
|
"reviewState": {
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.subjectReviewState"
|
|
},
|
|
"comment": {
|
|
"type": "string",
|
|
"description": "Sticky comment on the subject."
|
|
},
|
|
"muteUntil": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"lastReviewedBy": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"lastReviewedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"lastReportedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"lastAppealedAt": {
|
|
"type": "string",
|
|
"description": "Timestamp referencing when the author of the subject appealed a moderation action",
|
|
"format": "date-time"
|
|
},
|
|
"takendown": {
|
|
"type": "boolean"
|
|
},
|
|
"appealed": {
|
|
"type": "boolean",
|
|
"description": "True indicates that the a previously taken moderator action was appealed against, by the author of the content. False indicates last appeal was resolved by moderators."
|
|
},
|
|
"suspendUntil": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.subjectReviewState": {
|
|
"type": "string",
|
|
"enum": [
|
|
"#reviewOpen",
|
|
"#reviewEscalated",
|
|
"#reviewClosed",
|
|
"#reviewNone"
|
|
]
|
|
},
|
|
"tools.ozone.moderation.defs.reviewOpen": {
|
|
"type": "string",
|
|
"format": "token",
|
|
"description": "Moderator review status of a subject: Open. Indicates that the subject needs to be reviewed by a moderator"
|
|
},
|
|
"tools.ozone.moderation.defs.reviewEscalated": {
|
|
"type": "string",
|
|
"format": "token",
|
|
"description": "Moderator review status of a subject: Escalated. Indicates that the subject was escalated for review by a moderator"
|
|
},
|
|
"tools.ozone.moderation.defs.reviewClosed": {
|
|
"type": "string",
|
|
"format": "token",
|
|
"description": "Moderator review status of a subject: Closed. Indicates that the subject was already reviewed and resolved by a moderator"
|
|
},
|
|
"tools.ozone.moderation.defs.reviewNone": {
|
|
"type": "string",
|
|
"format": "token",
|
|
"description": "Moderator review status of a subject: Unnecessary. Indicates that the subject does not need a review at the moment but there is probably some moderation related metadata available for it"
|
|
},
|
|
"tools.ozone.moderation.defs.modEventTakedown": {
|
|
"type": "object",
|
|
"description": "Take down a subject permanently or temporarily",
|
|
"properties": {
|
|
"comment": {
|
|
"type": "string"
|
|
},
|
|
"durationInHours": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.modEventReverseTakedown": {
|
|
"type": "object",
|
|
"description": "Revert take down action on a subject",
|
|
"properties": {
|
|
"comment": {
|
|
"type": "string",
|
|
"description": "Describe reasoning behind the reversal."
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.modEventResolveAppeal": {
|
|
"type": "object",
|
|
"description": "Resolve appeal on a subject",
|
|
"properties": {
|
|
"comment": {
|
|
"type": "string",
|
|
"description": "Describe resolution."
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.modEventComment": {
|
|
"type": "object",
|
|
"description": "Add a comment to a subject",
|
|
"required": [
|
|
"comment"
|
|
],
|
|
"properties": {
|
|
"comment": {
|
|
"type": "string"
|
|
},
|
|
"sticky": {
|
|
"type": "boolean",
|
|
"description": "Make the comment persistent on the subject"
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.modEventReport": {
|
|
"type": "object",
|
|
"description": "Report a subject",
|
|
"required": [
|
|
"reportType"
|
|
],
|
|
"properties": {
|
|
"comment": {
|
|
"type": "string"
|
|
},
|
|
"reportType": {
|
|
"$ref": "#/components/schemas/com.atproto.moderation.defs.reasonType"
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.modEventLabel": {
|
|
"type": "object",
|
|
"description": "Apply/Negate labels on a subject",
|
|
"required": [
|
|
"createLabelVals",
|
|
"negateLabelVals"
|
|
],
|
|
"properties": {
|
|
"comment": {
|
|
"type": "string"
|
|
},
|
|
"createLabelVals": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"negateLabelVals": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.modEventAcknowledge": {
|
|
"type": "object",
|
|
"properties": {
|
|
"comment": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.modEventEscalate": {
|
|
"type": "object",
|
|
"properties": {
|
|
"comment": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.modEventMute": {
|
|
"type": "object",
|
|
"description": "Mute incoming reports on a subject",
|
|
"required": [
|
|
"durationInHours"
|
|
],
|
|
"properties": {
|
|
"comment": {
|
|
"type": "string"
|
|
},
|
|
"durationInHours": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.modEventUnmute": {
|
|
"type": "object",
|
|
"description": "Unmute action on a subject",
|
|
"properties": {
|
|
"comment": {
|
|
"type": "string",
|
|
"description": "Describe reasoning behind the reversal."
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.modEventEmail": {
|
|
"type": "object",
|
|
"description": "Keep a log of outgoing email to a user",
|
|
"required": [
|
|
"subjectLine"
|
|
],
|
|
"properties": {
|
|
"subjectLine": {
|
|
"type": "string",
|
|
"description": "The subject line of the email sent to the user."
|
|
},
|
|
"content": {
|
|
"type": "string",
|
|
"description": "The content of the email sent to the user."
|
|
},
|
|
"comment": {
|
|
"type": "string",
|
|
"description": "Additional comment about the outgoing comm."
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.modEventDivert": {
|
|
"type": "object",
|
|
"description": "Divert a record's blobs to a 3rd party service for further scanning/tagging",
|
|
"properties": {
|
|
"comment": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.modEventTag": {
|
|
"type": "object",
|
|
"description": "Add/Remove a tag on a subject",
|
|
"required": [
|
|
"add",
|
|
"remove"
|
|
],
|
|
"properties": {
|
|
"add": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"remove": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"comment": {
|
|
"type": "string",
|
|
"description": "Additional comment about added/removed tags."
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.repoView": {
|
|
"type": "object",
|
|
"required": [
|
|
"did",
|
|
"handle",
|
|
"relatedRecords",
|
|
"indexedAt",
|
|
"moderation"
|
|
],
|
|
"properties": {
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"handle": {
|
|
"type": "string",
|
|
"format": "handle"
|
|
},
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"relatedRecords": {
|
|
"type": "array",
|
|
"items": {}
|
|
},
|
|
"indexedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"moderation": {
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.moderation"
|
|
},
|
|
"invitedBy": {
|
|
"$ref": "#/components/schemas/com.atproto.server.defs.inviteCode"
|
|
},
|
|
"invitesDisabled": {
|
|
"type": "boolean"
|
|
},
|
|
"inviteNote": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.repoViewDetail": {
|
|
"type": "object",
|
|
"required": [
|
|
"did",
|
|
"handle",
|
|
"relatedRecords",
|
|
"indexedAt",
|
|
"moderation"
|
|
],
|
|
"properties": {
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
},
|
|
"handle": {
|
|
"type": "string",
|
|
"format": "handle"
|
|
},
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"relatedRecords": {
|
|
"type": "array",
|
|
"items": {}
|
|
},
|
|
"indexedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"moderation": {
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.moderationDetail"
|
|
},
|
|
"labels": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.label"
|
|
}
|
|
},
|
|
"invitedBy": {
|
|
"$ref": "#/components/schemas/com.atproto.server.defs.inviteCode"
|
|
},
|
|
"invites": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.server.defs.inviteCode"
|
|
}
|
|
},
|
|
"invitesDisabled": {
|
|
"type": "boolean"
|
|
},
|
|
"inviteNote": {
|
|
"type": "string"
|
|
},
|
|
"emailConfirmedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.repoViewNotFound": {
|
|
"type": "object",
|
|
"required": [
|
|
"did"
|
|
],
|
|
"properties": {
|
|
"did": {
|
|
"type": "string",
|
|
"format": "did"
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.recordView": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"cid",
|
|
"value",
|
|
"blobCids",
|
|
"indexedAt",
|
|
"moderation",
|
|
"repo"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
},
|
|
"value": {},
|
|
"blobCids": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
}
|
|
},
|
|
"indexedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"moderation": {
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.moderation"
|
|
},
|
|
"repo": {
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.repoView"
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.recordViewDetail": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri",
|
|
"cid",
|
|
"value",
|
|
"blobs",
|
|
"indexedAt",
|
|
"moderation",
|
|
"repo"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
},
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
},
|
|
"value": {},
|
|
"blobs": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.blobView"
|
|
}
|
|
},
|
|
"labels": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/com.atproto.label.defs.label"
|
|
}
|
|
},
|
|
"indexedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"moderation": {
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.moderationDetail"
|
|
},
|
|
"repo": {
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.repoView"
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.recordViewNotFound": {
|
|
"type": "object",
|
|
"required": [
|
|
"uri"
|
|
],
|
|
"properties": {
|
|
"uri": {
|
|
"type": "string",
|
|
"format": "at-uri"
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.moderation": {
|
|
"type": "object",
|
|
"properties": {
|
|
"subjectStatus": {
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.subjectStatusView"
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.moderationDetail": {
|
|
"type": "object",
|
|
"properties": {
|
|
"subjectStatus": {
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.subjectStatusView"
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.blobView": {
|
|
"type": "object",
|
|
"required": [
|
|
"cid",
|
|
"mimeType",
|
|
"size",
|
|
"createdAt"
|
|
],
|
|
"properties": {
|
|
"cid": {
|
|
"type": "string",
|
|
"format": "cid"
|
|
},
|
|
"mimeType": {
|
|
"type": "string"
|
|
},
|
|
"size": {
|
|
"type": "integer"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"details": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.imageDetails"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.videoDetails"
|
|
}
|
|
]
|
|
},
|
|
"moderation": {
|
|
"$ref": "#/components/schemas/tools.ozone.moderation.defs.moderation"
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.imageDetails": {
|
|
"type": "object",
|
|
"required": [
|
|
"width",
|
|
"height"
|
|
],
|
|
"properties": {
|
|
"width": {
|
|
"type": "integer"
|
|
},
|
|
"height": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"tools.ozone.moderation.defs.videoDetails": {
|
|
"type": "object",
|
|
"required": [
|
|
"width",
|
|
"height",
|
|
"length"
|
|
],
|
|
"properties": {
|
|
"width": {
|
|
"type": "integer"
|
|
},
|
|
"height": {
|
|
"type": "integer"
|
|
},
|
|
"length": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"securitySchemes": {
|
|
"Bearer": {
|
|
"type": "http",
|
|
"scheme": "bearer"
|
|
}
|
|
}
|
|
},
|
|
"tags": [
|
|
{
|
|
"name": "app.bsky.actor"
|
|
},
|
|
{
|
|
"name": "app.bsky.embed"
|
|
},
|
|
{
|
|
"name": "app.bsky.feed"
|
|
},
|
|
{
|
|
"name": "app.bsky.graph"
|
|
},
|
|
{
|
|
"name": "app.bsky.labeler"
|
|
},
|
|
{
|
|
"name": "app.bsky.notification"
|
|
},
|
|
{
|
|
"name": "app.bsky.richtext"
|
|
},
|
|
{
|
|
"name": "app.bsky.unspecced"
|
|
},
|
|
{
|
|
"name": "com.atproto.admin"
|
|
},
|
|
{
|
|
"name": "com.atproto.identity"
|
|
},
|
|
{
|
|
"name": "com.atproto.label"
|
|
},
|
|
{
|
|
"name": "com.atproto.moderation"
|
|
},
|
|
{
|
|
"name": "com.atproto.repo"
|
|
},
|
|
{
|
|
"name": "com.atproto.server"
|
|
},
|
|
{
|
|
"name": "com.atproto.sync"
|
|
},
|
|
{
|
|
"name": "com.atproto.temp"
|
|
},
|
|
{
|
|
"name": "tools.ozone.communication"
|
|
},
|
|
{
|
|
"name": "tools.ozone.moderation"
|
|
}
|
|
]
|
|
}
|