Migrates a source record into a fresh community, cloning its structure and importing its members. The 'kind' discriminator selects the migration; today only legacy communities are supported, but the endpoint is designed to host future migrations. Provisioning mirrors community.create (managed when no PDS credentials are supplied, bring-your-own otherwise).
Parameters
description
string
Optional
No description available.
identifier
string
Optional
Bring-your-own DID or handle.
kind
string
Required
The migration to run. 'legacy-community' migrates a pre-rework community record.
name
string
Optional
No description available.
password
string
Optional
Bring-your-own account password.
pds
string
Optional
Bring-your-own PDS endpoint.
requiresApprovalToJoin
boolean
Optional
No description available.
source
stringat-uri
Required
The record being migrated (e.g. the legacy community).
Input
multipart/form-dataAccepts raw binary data
Output
application/jsonchannelMap
array
Required
Maps each cloned channel from its old AT-URI to its new AT-URI.
community
stringat-uri
Required
An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).
did
stringdid
Required
A decentralized identifier (DID).
Errors
AuthRequired
Missing, malformed, or unverifiable service auth. Forbidden
The caller lacks the permission this method requires. InvalidRequest
A parameter or body field was missing or malformed. NotFound
The referenced record does not exist. UpstreamFailure
A service outside this AppView failed. Try It
Requests are sent directly from your browser. Some servers may block requests due to CORS.
View raw schema
{
"type": "procedure",
"input": {
"encoding": "multipart/form-data",
"description": "Optional replacement community picture blob, as a `picture` part. Migrated communities have no banner."
},
"errors": [
{
"name": "AuthRequired",
"description": "Missing, malformed, or unverifiable service auth."
},
{
"name": "Forbidden",
"description": "The caller lacks the permission this method requires."
},
{
"name": "InvalidRequest",
"description": "A parameter or body field was missing or malformed."
},
{
"name": "NotFound",
"description": "The referenced record does not exist."
},
{
"name": "UpstreamFailure",
"description": "A service outside this AppView failed."
}
],
"output": {
"schema": {
"type": "object",
"required": [
"did",
"community",
"channelMap"
],
"properties": {
"did": {
"type": "string",
"format": "did"
},
"community": {
"type": "string",
"format": "at-uri"
},
"channelMap": {
"type": "array",
"items": {
"ref": "lex:social.colibri.community.migrate#channelMapping",
"type": "ref"
},
"description": "Maps each cloned channel from its old AT-URI to its new AT-URI."
}
}
},
"encoding": "application/json"
},
"parameters": {
"type": "params",
"required": [
"kind",
"source"
],
"properties": {
"pds": {
"type": "string",
"description": "Bring-your-own PDS endpoint."
},
"kind": {
"type": "string",
"description": "The migration to run. 'legacy-community' migrates a pre-rework community record.",
"knownValues": [
"legacy-community"
]
},
"name": {
"type": "string"
},
"source": {
"type": "string",
"format": "at-uri",
"description": "The record being migrated (e.g. the legacy community)."
},
"password": {
"type": "string",
"description": "Bring-your-own account password."
},
"identifier": {
"type": "string",
"description": "Bring-your-own DID or handle."
},
"description": {
"type": "string"
},
"requiresApprovalToJoin": {
"type": "boolean"
}
}
},
"description": "Migrates a source record into a fresh community, cloning its structure and importing its members. The 'kind' discriminator selects the migration; today only legacy communities are supported, but the endpoint is designed to host future migrations. Provisioning mirrors community.create (managed when no PDS credentials are supplied, bring-your-own otherwise)."
}