Created
May 15, 2023 16:49
-
-
Save trozzelle/497433b87f31ab54d6221558faa006ca to your computer and use it in GitHub Desktop.
Bluesky OpenAPI Spec for ChatGPT
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| openapi: 3.0.0 | |
| info: | |
| description: Unofficial OpenAPI specification for the Bluesky API endpoints. | |
| version: '1.0' | |
| title: Bluesky API | |
| contact: | |
| email: [email protected] | |
| license: | |
| name: MIT | |
| url: 'https://opensource.org/license/mit/' | |
| paths: | |
| /getProfile: | |
| get: | |
| tags: | |
| - app.bsky.actor | |
| summary: Get a detailed profile view of an actor. | |
| operationId: getProfile | |
| parameters: | |
| - name: actor | |
| in: query | |
| description: Identifier of the actor to get the profile for. | |
| required: true | |
| schema: | |
| type: string | |
| format: at-identifier | |
| responses: | |
| '200': | |
| description: successful operation | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/ProfileViewDetailed' | |
| /getProfiles: | |
| get: | |
| tags: | |
| - app.bsky.actor | |
| summary: Get detailed profile views of multiple actors. | |
| operationId: getProfiles | |
| parameters: | |
| - name: actors | |
| in: query | |
| description: Identifiers of the actors to get the profiles for. | |
| required: true | |
| style: form | |
| explode: true | |
| schema: | |
| type: array | |
| items: | |
| type: string | |
| format: at-identifier | |
| maxItems: 25 | |
| responses: | |
| '200': | |
| description: successful operation | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| required: | |
| - profiles | |
| properties: | |
| profiles: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/ProfileViewDetailed' | |
| /getSuggestions: | |
| get: | |
| tags: | |
| - app.bsky.actor | |
| summary: Get a list of actors suggested for following. | |
| description: Used in discovery UIs. | |
| operationId: getSuggestions | |
| parameters: | |
| - name: limit | |
| in: query | |
| description: The maximum number of suggested actors to return. | |
| required: false | |
| schema: | |
| type: integer | |
| minimum: 1 | |
| maximum: 100 | |
| default: 50 | |
| - name: cursor | |
| in: query | |
| description: A cursor for pagination. | |
| required: false | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: successful operation | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| required: | |
| - actors | |
| properties: | |
| cursor: | |
| type: string | |
| actors: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/ProfileView' | |
| /searchActors: | |
| get: | |
| tags: | |
| - app.bsky.actor | |
| summary: Find actors matching search criteria. | |
| operationId: searchActors | |
| parameters: | |
| - in: query | |
| name: term | |
| schema: | |
| type: string | |
| required: false | |
| - in: query | |
| name: limit | |
| schema: | |
| type: integer | |
| minimum: 1 | |
| maximum: 100 | |
| default: 50 | |
| required: false | |
| - in: query | |
| name: cursor | |
| schema: | |
| type: string | |
| required: false | |
| responses: | |
| '200': | |
| description: Successful operation | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| required: | |
| - actors | |
| properties: | |
| cursor: | |
| type: string | |
| actors: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/ProfileView' | |
| /searchActorsTypeahead: | |
| get: | |
| tags: | |
| - app.bsky.actor | |
| summary: Find actor suggestions for a search term. | |
| operationId: searchActorsTypeahead | |
| parameters: | |
| - in: query | |
| name: term | |
| schema: | |
| type: string | |
| required: false | |
| - in: query | |
| name: limit | |
| schema: | |
| type: integer | |
| minimum: 1 | |
| maximum: 100 | |
| default: 50 | |
| required: false | |
| responses: | |
| '200': | |
| description: Successful operation | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| required: | |
| - actors | |
| properties: | |
| actors: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/ProfileViewBasic' | |
| /getLikes: | |
| get: | |
| tags: | |
| - app.bsky.feed | |
| parameters: | |
| - name: uri | |
| in: query | |
| required: true | |
| schema: | |
| type: string | |
| format: at-uri | |
| - name: cid | |
| in: query | |
| schema: | |
| type: string | |
| format: cid | |
| - name: limit | |
| in: query | |
| schema: | |
| type: integer | |
| minimum: 1 | |
| maximum: 100 | |
| default: 50 | |
| - name: cursor | |
| in: query | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: A list of likes for a specific post | |
| 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/Like' | |
| /getPostThread: | |
| get: | |
| tags: | |
| - app.bsky.feed | |
| parameters: | |
| - name: uri | |
| in: query | |
| required: true | |
| schema: | |
| type: string | |
| format: at-uri | |
| - name: depth | |
| in: query | |
| schema: | |
| type: integer | |
| responses: | |
| '200': | |
| description: The post thread for a specific post | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| required: | |
| - thread | |
| properties: | |
| thread: | |
| anyOf: | |
| - $ref: '#/components/schemas/ThreadViewPost' | |
| - $ref: '#/components/schemas/NotFoundPost' | |
| - $ref: '#/components/schemas/BlockedPost' | |
| '404': | |
| description: Post not found | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| properties: | |
| name: | |
| type: string | |
| description: NotFound | |
| /getPosts: | |
| get: | |
| tags: | |
| - app.bsky.feed | |
| parameters: | |
| - name: uris | |
| in: query | |
| required: true | |
| schema: | |
| type: array | |
| items: | |
| type: string | |
| format: at-uri | |
| maxLength: 25 | |
| responses: | |
| '200': | |
| description: A batch of specific posts | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| required: | |
| - posts | |
| properties: | |
| posts: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/PostView' | |
| /repostedBy: | |
| get: | |
| tags: | |
| - app.bsky.feed | |
| parameters: | |
| - name: uri | |
| in: query | |
| required: true | |
| schema: | |
| type: string | |
| format: at-uri | |
| - name: cid | |
| in: query | |
| schema: | |
| type: string | |
| format: cid | |
| - name: limit | |
| in: query | |
| schema: | |
| type: integer | |
| minimum: 1 | |
| maximum: 100 | |
| default: 50 | |
| - name: cursor | |
| in: query | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: The list of actors who have reposted a specific post | |
| 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: 'app.bsky.actor.defs.yaml#/components/schemas/ProfileView' | |
| /getFollowers: | |
| get: | |
| summary: "Who is following an actor?" | |
| operationId: getFollowers | |
| tags: | |
| - app.bsky.graph | |
| parameters: | |
| - in: query | |
| name: actor | |
| schema: | |
| type: string | |
| format: at-identifier | |
| required: true | |
| - in: query | |
| name: limit | |
| schema: | |
| type: integer | |
| minimum: 1 | |
| maximum: 100 | |
| default: 50 | |
| - in: query | |
| name: cursor | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: Successful operation | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| properties: | |
| subject: | |
| $ref: '#/components/schemas/ProfileView' | |
| cursor: | |
| type: string | |
| followers: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/ProfileView' | |
| '400': | |
| description: Invalid input | |
| '500': | |
| description: Unexpected error | |
| /getFollows: | |
| get: | |
| summary: "Who is an actor following?" | |
| operationId: getFollows | |
| tags: | |
| - app.bsky.graph | |
| parameters: | |
| - in: query | |
| name: actor | |
| schema: | |
| type: string | |
| format: at-identifier | |
| required: true | |
| - in: query | |
| name: limit | |
| schema: | |
| type: integer | |
| minimum: 1 | |
| maximum: 100 | |
| default: 50 | |
| - in: query | |
| name: cursor | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: Successful operation | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| properties: | |
| subject: | |
| $ref: '#/components/schemas/ProfileView' | |
| cursor: | |
| type: string | |
| follows: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/ProfileView' | |
| '400': | |
| description: Invalid input | |
| '500': | |
| description: Unexpected error | |
| /getList: | |
| get: | |
| summary: "Fetch a list of actors" | |
| operationId: getList | |
| tags: | |
| - app.bsky.graph | |
| parameters: | |
| - in: query | |
| name: list | |
| schema: | |
| type: string | |
| format: at-uri | |
| required: true | |
| - in: query | |
| name: limit | |
| schema: | |
| type: integer | |
| minimum: 1 | |
| maximum: 100 | |
| default: 50 | |
| - in: query | |
| name: cursor | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: Successful operation | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| properties: | |
| cursor: | |
| type: string | |
| list: | |
| $ref: '#/components/schemas/ListView' | |
| items: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/ListItemView' | |
| '400': | |
| description: Invalid input | |
| '500': | |
| description: Unexpected error | |
| /getRecord: | |
| get: | |
| tags: | |
| - com.atproto.admin | |
| summary: View details about a record. | |
| parameters: | |
| - name: uri | |
| in: query | |
| required: true | |
| schema: | |
| type: string | |
| format: at-uri | |
| - name: cid | |
| in: query | |
| schema: | |
| type: string | |
| format: cid | |
| responses: | |
| '200': | |
| description: Successful operation | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/RecordViewDetail' | |
| '400': | |
| description: Invalid input | |
| /getRepo: | |
| get: | |
| tags: | |
| - com.atproto.admin | |
| summary: View details about a repository. | |
| parameters: | |
| - name: did | |
| in: query | |
| required: true | |
| schema: | |
| type: string | |
| format: did | |
| responses: | |
| '200': | |
| description: Successful operation | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/RepoViewDetail' | |
| '400': | |
| description: Invalid input | |
| /searchRepos: | |
| get: | |
| tags: | |
| - com.atproto.admin | |
| summary: Find repositories based on a search term. | |
| parameters: | |
| - in: query | |
| name: term | |
| schema: | |
| type: string | |
| - in: query | |
| name: invitedBy | |
| schema: | |
| type: string | |
| - in: query | |
| name: limit | |
| schema: | |
| type: integer | |
| minimum: 1 | |
| maximum: 100 | |
| default: 50 | |
| - in: query | |
| name: cursor | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: Successful operation | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| required: | |
| - repos | |
| properties: | |
| cursor: | |
| type: string | |
| repos: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/RepoView' | |
| '400': | |
| description: Invalid input | |
| /resolveHandle: | |
| get: | |
| tags: | |
| - com.atproto.identity | |
| summary: Provides the DID of a repo. | |
| description: Provides the DID of a repo. | |
| operationId: com.atproto.identity.resolveHandle | |
| parameters: | |
| - in: query | |
| name: handle | |
| schema: | |
| type: string | |
| format: handle | |
| description: The handle to resolve. If not supplied, will resolve the host's own handle. | |
| responses: | |
| '200': | |
| description: Successful operation | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/ResolveHandleOutput' | |
| /queryLabels: | |
| get: | |
| tags: | |
| - com.atproto.label | |
| summary: Find labels relevant to the provided URI patterns. | |
| operationId: queryLabels | |
| parameters: | |
| - in: query | |
| name: uriPatterns | |
| required: true | |
| description: List of AT URI patterns to match (boolean 'OR'). Each may be a prefix (ending with '*'; will match inclusive of the string leading to '*'), or a full URI | |
| schema: | |
| type: array | |
| items: | |
| type: string | |
| - in: query | |
| name: sources | |
| description: Optional list of label sources (DIDs) to filter on | |
| schema: | |
| type: array | |
| items: | |
| type: string | |
| format: did | |
| - in: query | |
| name: limit | |
| description: The maximum number of results to return | |
| schema: | |
| type: integer | |
| minimum: 1 | |
| maximum: 250 | |
| default: 50 | |
| - in: query | |
| name: cursor | |
| description: Cursor for pagination | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: successful operation | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| required: | |
| - labels | |
| properties: | |
| cursor: | |
| type: string | |
| labels: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Label' | |
| /listRecords: | |
| get: | |
| tags: | |
| - com.atproto.repo | |
| summary: List a range of records in a collection | |
| description: List a range of records in a collection. | |
| operationId: com.atproto.repo.listRecords | |
| parameters: | |
| - name: repo | |
| in: query | |
| required: true | |
| schema: | |
| type: string | |
| format: at-identifier | |
| description: The handle or DID of the repo. | |
| - name: collection | |
| in: query | |
| required: true | |
| schema: | |
| type: string | |
| format: nsid | |
| description: The NSID of the record type. | |
| - name: limit | |
| in: query | |
| schema: | |
| type: integer | |
| minimum: 1 | |
| maximum: 100 | |
| default: 50 | |
| description: The number of records to return. | |
| - name: cursor | |
| in: query | |
| schema: | |
| type: string | |
| - name: reverse | |
| in: query | |
| schema: | |
| type: boolean | |
| description: Reverse the order of the returned records? | |
| responses: | |
| '200': | |
| description: Successful operation | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| required: | |
| - records | |
| properties: | |
| cursor: | |
| type: string | |
| records: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Record' | |
| /describeRepo: | |
| get: | |
| tags: | |
| - com.atproto.repo | |
| summary: Get information about the repo, including the list of collections. | |
| description: Get information about the repo, including the list of collections. | |
| operationId: com.atproto.repo.describeRepo | |
| parameters: | |
| - name: repo | |
| in: query | |
| required: true | |
| schema: | |
| type: string | |
| format: at-identifier | |
| description: The handle or DID of the repo. | |
| responses: | |
| '200': | |
| description: Successful operation | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/RepoDescription' | |
| /describeServer: | |
| get: | |
| tags: | |
| - com.atproto.server | |
| summary: Get a document describing the service's accounts configuration | |
| responses: | |
| '200': | |
| description: Document describing the service's accounts configuration | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| required: | |
| - availableUserDomains | |
| properties: | |
| inviteCodeRequired: | |
| type: boolean | |
| availableUserDomains: | |
| type: array | |
| items: | |
| type: string | |
| links: | |
| $ref: '#/components/schemas/Links' | |
| components: | |
| schemas: | |
| 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/ViewerState' | |
| labels: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Label' | |
| 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/ViewerState' | |
| labels: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Label' | |
| 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 | |
| indexedAt: | |
| type: string | |
| format: date-time | |
| viewer: | |
| $ref: '#/components/schemas/ViewerState' | |
| labels: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Label' | |
| ViewerState: | |
| type: object | |
| properties: | |
| muted: | |
| type: boolean | |
| mutedByList: | |
| $ref: '#/components/schemas/ListViewBasic' | |
| blockedBy: | |
| type: boolean | |
| blocking: | |
| type: string | |
| format: at-uri | |
| following: | |
| type: string | |
| format: at-uri | |
| followedBy: | |
| type: string | |
| format: at-uri | |
| Label: | |
| type: object | |
| description: Metadata tag on an atproto resource (eg, repo or record) | |
| required: | |
| - src | |
| - uri | |
| - val | |
| - cts | |
| properties: | |
| src: | |
| type: string | |
| format: did | |
| description: DID of the actor who created this label | |
| uri: | |
| type: string | |
| format: uri | |
| description: AT URI of the record, repository (account), or other resource which this label applies to | |
| cid: | |
| type: string | |
| format: cid | |
| description: optionally, CID specifying the specific version of 'uri' resource this label applies to | |
| val: | |
| type: string | |
| maxLength: 128 | |
| description: the short string name of the value or type of this label | |
| neg: | |
| type: boolean | |
| description: if true, this is a negation label, overwriting a previous label | |
| cts: | |
| type: string | |
| format: datetime | |
| description: timestamp when this label was created | |
| ListViewBasic: | |
| type: object | |
| ExternalEmbed: | |
| type: object | |
| required: | |
| - external | |
| properties: | |
| external: | |
| $ref: '#/components/schemas/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 | |
| ExternalEmbedView: | |
| type: object | |
| required: | |
| - external | |
| properties: | |
| external: | |
| $ref: '#/components/schemas/ExternalView' | |
| ExternalView: | |
| type: object | |
| required: | |
| - uri | |
| - title | |
| - description | |
| properties: | |
| uri: | |
| type: string | |
| format: uri | |
| title: | |
| type: string | |
| description: | |
| type: string | |
| thumb: | |
| type: string | |
| ImagesEmbed: | |
| type: object | |
| required: | |
| - images | |
| properties: | |
| images: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Image' | |
| maxItems: 4 | |
| Image: | |
| type: object | |
| required: | |
| - image | |
| - alt | |
| properties: | |
| image: | |
| type: string | |
| format: binary | |
| maxLength: 1000000 | |
| alt: | |
| type: string | |
| ImagesEmbedView: | |
| type: object | |
| required: | |
| - images | |
| properties: | |
| images: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/ImageView' | |
| maxItems: 4 | |
| ImageView: | |
| type: object | |
| required: | |
| - thumb | |
| - fullsize | |
| - alt | |
| properties: | |
| thumb: | |
| type: string | |
| fullsize: | |
| type: string | |
| alt: | |
| type: string | |
| RecordEmbed: | |
| type: object | |
| required: | |
| - record | |
| properties: | |
| record: | |
| $ref: '#/components/schemas/StrongRef' | |
| RecordEmbedView: | |
| type: object | |
| required: | |
| - record | |
| properties: | |
| record: | |
| type: object | |
| properties: | |
| oneOf: | |
| - $ref: '#/components/schemas/ViewRecord' | |
| - $ref: '#/components/schemas/ViewNotFound' | |
| - $ref: '#/components/schemas/ViewBlocked' | |
| 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/ProfileViewBasic' | |
| value: | |
| type: string | |
| labels: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Label' | |
| embeds: | |
| type: array | |
| items: | |
| oneOf: | |
| - $ref: '#/components/schemas/ImagesEmbedView' | |
| - $ref: '#/components/schemas/ExternalEmbedView' | |
| - $ref: '#/components/schemas/RecordEmbedView' | |
| - $ref: '#/components/schemas/RecordWithMediaEmbedView' | |
| indexedAt: | |
| type: string | |
| format: date-time | |
| ViewNotFound: | |
| type: object | |
| required: | |
| - uri | |
| properties: | |
| uri: | |
| type: string | |
| format: at-uri | |
| ViewBlocked: | |
| type: object | |
| required: | |
| - uri | |
| properties: | |
| uri: | |
| type: string | |
| format: at-uri | |
| RecordWithMediaEmbed: | |
| type: object | |
| required: | |
| - record | |
| - media | |
| properties: | |
| record: | |
| $ref: '#/components/schemas/RecordEmbed' | |
| media: | |
| oneOf: | |
| - $ref: '#/components/schemas/ImagesEmbed' | |
| - $ref: '#/components/schemas/ExternalEmbed' | |
| RecordWithMediaEmbedView: | |
| type: object | |
| required: | |
| - record | |
| - media | |
| properties: | |
| record: | |
| $ref: '#/components/schemas/RecordEmbedView' | |
| media: | |
| oneOf: | |
| - $ref: '#/components/schemas/ImagesEmbedView' | |
| - $ref: '#/components/schemas/ExternalEmbedView' | |
| 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/ProfileViewBasic' | |
| record: | |
| type: object | |
| embed: | |
| oneOf: | |
| - $ref: '#/components/schemas/ImagesEmbedView' | |
| - $ref: '#/components/schemas/ExternalEmbedView' | |
| - $ref: 'l#/components/schemas/RecordEmbedView' | |
| - $ref: '#/components/schemas/RecordWithMediaEmbedView' | |
| replyCount: | |
| type: integer | |
| repostCount: | |
| type: integer | |
| likeCount: | |
| type: integer | |
| indexedAt: | |
| type: string | |
| format: datetime | |
| viewer: | |
| $ref: '#/components/schemas/ViewerState' | |
| labels: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Label' | |
| Post: | |
| type: object | |
| required: | |
| - text | |
| - createdAt | |
| properties: | |
| text: | |
| type: string | |
| maxLength: 3000 | |
| description: 'text' | |
| entities: | |
| type: array | |
| description: deprecated - replaced by app.bsky.richtext.facet. | |
| items: | |
| $ref: '#/components/schemas/Entity' | |
| facets: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Facet' | |
| reply: | |
| $ref: '#/components/schemas/ReplyRef' | |
| embed: | |
| $ref: 'Embed' | |
| createdAt: | |
| type: string | |
| format: datetime | |
| ReplyRef: | |
| type: object | |
| required: | |
| - root | |
| - parent | |
| properties: | |
| root: | |
| $ref: '#/components/schemas/StrongRef' | |
| parent: | |
| $ref: '#/components/schemas/StrongRef' | |
| Entity: | |
| type: object | |
| description: Deprecated - use facets instead. | |
| required: | |
| - index | |
| - type | |
| - value | |
| properties: | |
| index: | |
| $ref: '#/components/schemas/TextSlice' | |
| type: | |
| type: string | |
| description: Expected values are 'mention' and 'link'. | |
| value: | |
| type: string | |
| 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 | |
| Repost: | |
| type: object | |
| required: | |
| - subject | |
| - createdAt | |
| properties: | |
| subject: | |
| $ref: '#/components/schemas/StrongRef' | |
| createdAt: | |
| type: string | |
| format: datetime | |
| ListRecord: | |
| type: object | |
| required: | |
| - name | |
| - purpose | |
| - createdAt | |
| properties: | |
| purpose: | |
| $ref: '#/components/schemas/ListPurpose' | |
| name: | |
| type: string | |
| maxLength: 64 | |
| minLength: 1 | |
| description: | |
| type: string | |
| maxLength: 3000 | |
| descriptionFacets: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/RichTextFacet' | |
| avatar: | |
| type: string | |
| format: binary | |
| description: "A binary file with a maximum size of 1,000,000 bytes. Accepts image/png or image/jpeg file types." | |
| createdAt: | |
| type: string | |
| format: date-time | |
| ListItemRecord: | |
| type: object | |
| required: | |
| - subject | |
| - list | |
| - createdAt | |
| properties: | |
| subject: | |
| type: string | |
| description: "Decentralized identifier (DID)" | |
| format: uri | |
| list: | |
| type: string | |
| description: "Unique identifier of the list" | |
| format: uri | |
| createdAt: | |
| type: string | |
| description: "Creation date of the list item" | |
| format: date-time | |
| Notification: | |
| type: object | |
| required: | |
| - uri | |
| - cid | |
| - author | |
| - reason | |
| - record | |
| - isRead | |
| - indexedAt | |
| properties: | |
| uri: | |
| type: string | |
| format: uri | |
| cid: | |
| type: string | |
| author: | |
| $ref: '#/components/schemas/ProfileView' | |
| reason: | |
| type: string | |
| enum: [ "like", "repost", "follow", "mention", "reply", "quote" ] | |
| reasonSubject: | |
| type: string | |
| format: uri | |
| record: | |
| type: object | |
| isRead: | |
| type: boolean | |
| indexedAt: | |
| type: string | |
| format: date-time | |
| labels: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Label' | |
| Facet: | |
| type: object | |
| required: | |
| - index | |
| - features | |
| properties: | |
| index: | |
| $ref: '#/components/schemas/ByteSlice' | |
| features: | |
| type: array | |
| items: | |
| oneOf: | |
| - $ref: '#/components/schemas/Mention' | |
| - $ref: '#/components/schemas/Link' | |
| Mention: | |
| type: object | |
| description: "A facet feature for actor mentions." | |
| required: | |
| - did | |
| properties: | |
| did: | |
| type: string | |
| format: did | |
| Link: | |
| type: object | |
| description: "A facet feature for links." | |
| required: | |
| - uri | |
| properties: | |
| uri: | |
| type: string | |
| format: uri | |
| Like: | |
| type: object | |
| required: | |
| - indexedAt | |
| - createdAt | |
| - actor | |
| properties: | |
| indexedAt: | |
| type: string | |
| format: datetime | |
| createdAt: | |
| type: string | |
| format: datetime | |
| actor: | |
| $ref: '#/components/schemas/ProfileView' | |
| ByteSlice: | |
| type: object | |
| description: "A text segment. Start is inclusive, end is exclusive. Indices are for utf8-encoded strings." | |
| required: | |
| - byteStart | |
| - byteEnd | |
| properties: | |
| byteStart: | |
| type: integer | |
| minimum: 0 | |
| byteEnd: | |
| type: integer | |
| minimum: 0 | |
| FeedViewPost: | |
| type: object | |
| required: | |
| - post | |
| properties: | |
| post: | |
| $ref: '#/components/schemas/PostView' | |
| reply: | |
| $ref: '#/components/schemas/ReplyRef' | |
| reason: | |
| oneOf: | |
| - $ref: '#/components/schemas/ReasonRepost' | |
| ReasonRepost: | |
| type: object | |
| required: | |
| - by | |
| - indexedAt | |
| properties: | |
| by: | |
| $ref: '#/components/schemas/ProfileViewBasic' | |
| indexedAt: | |
| type: string | |
| format: datetime | |
| ThreadViewPost: | |
| type: object | |
| required: | |
| - post | |
| properties: | |
| post: | |
| $ref: '#/components/schemas/PostView' | |
| parent: | |
| oneOf: | |
| - $ref: '#/components/schemas/ThreadViewPost' | |
| - $ref: '#/components/schemas/NotFoundPost' | |
| - $ref: '#/components/schemas/BlockedPost' | |
| replies: | |
| type: array | |
| items: | |
| oneOf: | |
| - $ref: '#/components/schemas/ThreadViewPost' | |
| - $ref: '#/components/schemas/NotFoundPost' | |
| - $ref: '#/components/schemas/BlockedPost' | |
| NotFoundPost: | |
| type: object | |
| required: | |
| - uri | |
| - notFound | |
| properties: | |
| uri: | |
| type: string | |
| format: at-uri | |
| notFound: | |
| type: boolean | |
| default: true | |
| BlockedPost: | |
| type: object | |
| required: | |
| - uri | |
| - blocked | |
| properties: | |
| uri: | |
| type: string | |
| format: at-uri | |
| blocked: | |
| type: boolean | |
| default: true | |
| ListView: | |
| type: object | |
| required: | |
| - uri | |
| - creator | |
| - name | |
| - purpose | |
| - indexedAt | |
| properties: | |
| uri: | |
| type: string | |
| format: at-uri | |
| creator: | |
| $ref: '#/components/schemas/ProfileView' | |
| name: | |
| type: string | |
| maxLength: 64 | |
| minLength: 1 | |
| purpose: | |
| $ref: '#/components/schemas/ListPurpose' | |
| description: | |
| type: string | |
| description: Max graphemes 300, maxLength 3000 | |
| descriptionFacets: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/RichTextFacet' | |
| avatar: | |
| type: string | |
| viewer: | |
| $ref: '#/components/schemas/ListViewerState' | |
| indexedAt: | |
| type: string | |
| format: datetime | |
| ListItemView: | |
| type: object | |
| required: | |
| - subject | |
| properties: | |
| subject: | |
| $ref: '#/components/schemas/ProfileView' | |
| ListPurpose: | |
| type: string | |
| enum: | |
| - modlist | |
| Modlist: | |
| type: string | |
| description: A list of actors to apply an aggregate moderation action (mute/block) on | |
| ListViewerState: | |
| type: object | |
| properties: | |
| muted: | |
| type: boolean | |
| StrongRef: | |
| type: object | |
| description: A URI with a content-hash fingerprint. | |
| required: | |
| - uri | |
| - cid | |
| properties: | |
| uri: | |
| type: string | |
| format: at-uri | |
| cid: | |
| type: string | |
| format: cid | |
| RichTextFacet: | |
| type: object | |
| required: | |
| - index | |
| - features | |
| properties: | |
| index: | |
| $ref: '#/components/schemas/ByteSlice' | |
| features: | |
| type: array | |
| items: | |
| oneOf: | |
| - $ref: '#/components/schemas/Mention' | |
| - $ref: '#/components/schemas/Link' | |
| ActionType: | |
| type: string | |
| enum: | |
| - takedown | |
| - flag | |
| - acknowledge | |
| - escalate | |
| description: Type of moderation action | |
| ActionView: | |
| type: object | |
| required: | |
| - id | |
| - action | |
| - subject | |
| - subjectBlobCids | |
| - reason | |
| - createdBy | |
| - createdAt | |
| - resolvedReportIds | |
| properties: | |
| id: | |
| type: integer | |
| action: | |
| $ref: '#/components/schemas/ActionType' | |
| subject: | |
| oneOf: # assuming '#repoRef' and 'com.atproto.repo.strongRef' are other defined schemas | |
| - $ref: '#/components/schemas/RepoRef' | |
| - $ref: '#/components/schemas/StrongRef' | |
| subjectBlobCids: | |
| type: array | |
| items: | |
| type: string | |
| createLabelVals: | |
| type: array | |
| items: | |
| type: string | |
| negateLabelVals: | |
| type: array | |
| items: | |
| type: string | |
| reason: | |
| type: string | |
| createdBy: | |
| type: string | |
| format: did | |
| createdAt: | |
| type: string | |
| format: datetime | |
| reversal: | |
| $ref: '#/components/schemas/ActionReversal' | |
| resolvedReportIds: | |
| type: array | |
| items: | |
| type: integer | |
| ActionViewCurrent: | |
| type: object | |
| required: | |
| - id | |
| - action | |
| properties: | |
| id: | |
| type: integer | |
| action: | |
| $ref: '#/components/schemas/ActionType' | |
| ActionViewDetail: | |
| type: object | |
| required: | |
| - id | |
| - action | |
| - subject | |
| - subjectBlobs | |
| - reason | |
| - createdBy | |
| - createdAt | |
| - resolvedReports | |
| properties: | |
| id: | |
| type: integer | |
| action: | |
| $ref: '#/components/schemas/ActionType' | |
| subject: | |
| oneOf: # assuming '#repoView' and '#recordView' are other defined schemas | |
| - $ref: '#/components/schemas/RepoView' | |
| - $ref: '#/components/schemas/RecordView' | |
| subjectBlobs: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/BlobView' | |
| createLabelVals: | |
| type: array | |
| items: | |
| type: string | |
| negateLabelVals: | |
| type: array | |
| items: | |
| type: string | |
| reason: | |
| type: string | |
| createdBy: | |
| type: string | |
| format: did | |
| createdAt: | |
| type: string | |
| format: datetime | |
| reversal: | |
| $ref: '#/components/schemas/ActionReversal' | |
| resolvedReports: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/ReportView' | |
| ActionReversal: | |
| type: object | |
| required: | |
| - id | |
| - action | |
| - subject | |
| - subjectBlobCids | |
| - createdBy | |
| - createdAt | |
| properties: | |
| id: | |
| type: integer | |
| action: | |
| $ref: '#/components/schemas/ActionType' | |
| subject: | |
| oneOf: # assuming '#repoRef' and 'com.atproto.repo.strongRef' are other defined schemas | |
| - $ref: '#/components/schemas/RepoRef' | |
| - $ref: '#/components/schemas/StrongRef' | |
| subjectBlobCids: | |
| type: array | |
| items: | |
| type: string | |
| createdBy: | |
| type: string | |
| format: did | |
| createdAt: | |
| type: string | |
| format: datetime | |
| ReportType: | |
| type: string | |
| enum: | |
| - spam | |
| - harassment | |
| - harmfulDangerousActs | |
| - violentExtremistContent | |
| - childEndangerment | |
| - unwantedSexualContent | |
| - hatefulAbusiveContent | |
| - other | |
| description: Type of report | |
| ReportStatus: | |
| type: string | |
| enum: | |
| - open | |
| - inProgress | |
| - resolved | |
| description: Status of the report | |
| ReportView: | |
| type: object | |
| required: | |
| - id | |
| - reportType | |
| - status | |
| - subject | |
| - subjectBlobCids | |
| - reason | |
| - createdBy | |
| - createdAt | |
| - resolvedByActionId | |
| properties: | |
| id: | |
| type: integer | |
| reportType: | |
| $ref: '#/components/schemas/ReportType' | |
| status: | |
| $ref: '#/components/schemas/ReportStatus' | |
| subject: | |
| oneOf: # assuming '#repoRef' and 'com.atproto.repo.strongRef' are other defined schemas | |
| - $ref: '#/components/schemas/RepoRef' | |
| - $ref: '#/components/schemas/StrongRef' | |
| subjectBlobCids: | |
| type: array | |
| items: | |
| type: string | |
| reason: | |
| type: string | |
| createdBy: | |
| type: string | |
| format: did | |
| createdAt: | |
| type: string | |
| format: datetime | |
| resolvedByActionId: | |
| type: integer | |
| ReportViewDetail: | |
| type: object | |
| required: | |
| - id | |
| - reportType | |
| - status | |
| - subject | |
| - subjectBlobs | |
| - reason | |
| - createdBy | |
| - createdAt | |
| - resolvedByAction | |
| properties: | |
| id: | |
| type: integer | |
| reportType: | |
| $ref: '#/components/schemas/ReportType' | |
| status: | |
| $ref: '#/components/schemas/ReportStatus' | |
| subject: | |
| oneOf: # assuming '#repoView' and '#recordView' are other defined schemas | |
| - $ref: '#/components/schemas/RepoView' | |
| - $ref: '#/components/schemas/RecordView' | |
| subjectBlobs: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Blob' | |
| reason: | |
| type: string | |
| createdBy: | |
| type: string | |
| format: did | |
| createdAt: | |
| type: string | |
| format: datetime | |
| resolvedByAction: | |
| $ref: '#/components/schemas/ActionViewDetail' | |
| RepoView: | |
| type: object | |
| required: | |
| - did | |
| - handle | |
| - relatedRecords | |
| - indexedAt | |
| - moderation | |
| properties: | |
| did: | |
| type: string | |
| handle: | |
| type: string | |
| email: | |
| type: string | |
| relatedRecords: | |
| type: array | |
| items: | |
| type: string | |
| indexedAt: | |
| type: string | |
| format: date-time | |
| moderation: | |
| $ref: '#/components/schemas/Moderation' | |
| invitedBy: | |
| $ref: '#/components/schemas/InviteCode' | |
| invitesDisabled: | |
| type: boolean | |
| RepoViewDetail: | |
| allOf: | |
| - $ref: '#/components/schemas/RepoView' | |
| - type: object | |
| required: | |
| - labels | |
| - invites | |
| properties: | |
| moderation: | |
| $ref: '#/components/schemas/ModerationDetail' | |
| labels: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Label' | |
| invites: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/InviteCode' | |
| RepoRef: | |
| type: object | |
| required: | |
| - did | |
| properties: | |
| did: | |
| type: string | |
| RecordView: | |
| type: object | |
| required: | |
| - uri | |
| - cid | |
| - value | |
| - blobCids | |
| - indexedAt | |
| - moderation | |
| - repo | |
| properties: | |
| uri: | |
| type: string | |
| cid: | |
| type: string | |
| value: | |
| type: string | |
| blobCids: | |
| type: array | |
| items: | |
| type: string | |
| indexedAt: | |
| type: string | |
| format: date-time | |
| moderation: | |
| $ref: '#/components/schemas/Moderation' | |
| repo: | |
| $ref: '#/components/schemas/RepoView' | |
| RecordViewDetail: | |
| allOf: | |
| - $ref: '#/components/schemas/RecordView' | |
| - type: object | |
| required: | |
| - blobs | |
| - labels | |
| properties: | |
| blobs: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/BlobView' | |
| labels: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Label' | |
| moderation: | |
| $ref: '#/components/schemas/ModerationDetail' | |
| Moderation: | |
| type: object | |
| properties: | |
| currentAction: | |
| $ref: '#/components/schemas/ActionViewCurrent' | |
| ModerationDetail: | |
| allOf: | |
| - $ref: '#/components/schemas/Moderation' | |
| - type: object | |
| required: | |
| - actions | |
| - reports | |
| properties: | |
| actions: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/ActionView' | |
| reports: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/ReportView' | |
| BlobView: | |
| type: object | |
| required: | |
| - cid | |
| - mimeType | |
| - size | |
| - createdAt | |
| properties: | |
| cid: | |
| type: string | |
| mimeType: | |
| type: string | |
| size: | |
| type: integer | |
| createdAt: | |
| type: string | |
| format: date-time | |
| details: | |
| oneOf: | |
| - $ref: '#/components/schemas/ImageDetails' | |
| - $ref: '#/components/schemas/VideoDetails' | |
| moderation: | |
| $ref: '#/components/schemas/Moderation' | |
| ImageDetails: | |
| type: object | |
| required: | |
| - width | |
| - height | |
| properties: | |
| width: | |
| type: integer | |
| height: | |
| type: integer | |
| VideoDetails: | |
| type: object | |
| required: | |
| - width | |
| - height | |
| - length | |
| properties: | |
| width: | |
| type: integer | |
| height: | |
| type: integer | |
| length: | |
| type: integer | |
| ResolveHandleOutput: | |
| type: object | |
| required: | |
| - did | |
| properties: | |
| did: | |
| type: string | |
| format: did | |
| Record: | |
| type: object | |
| required: | |
| - uri | |
| - cid | |
| - value | |
| properties: | |
| uri: | |
| type: string | |
| format: at-uri | |
| cid: | |
| type: string | |
| format: cid | |
| value: | |
| type: string # 'unknown' is not a valid OpenAPI data type, so 'string' is used as a placeholder | |
| RepoDescription: | |
| type: object | |
| required: | |
| - handle | |
| - did | |
| - didDoc | |
| - collections | |
| - handleIsCorrect | |
| properties: | |
| handle: | |
| type: string | |
| format: handle | |
| did: | |
| type: string | |
| format: did | |
| didDoc: | |
| type: string # 'unknown' is not a valid OpenAPI data type, so 'string' is used as a placeholder | |
| collections: | |
| type: array | |
| items: | |
| type: string | |
| format: nsid | |
| handleIsCorrect: | |
| type: boolean | |
| Links: | |
| type: object | |
| properties: | |
| privacyPolicy: | |
| type: string | |
| termsOfService: | |
| type: string | |
| 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: "datetime" } | |
| uses: | |
| type: "array" | |
| items: | |
| type: object | |
| required: [ "usedBy", "usedAt" ] | |
| properties: | |
| usedBy: { type: "string", format: "did" } | |
| usedAt: { type: "string", format: "datetime" } | |
| Error: | |
| type: object | |
| properties: | |
| error: | |
| type: string |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment