town.delve.contact.importContacts
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Import contacts for securely matching with other users. This follows the protocol explained in https://docs.bsky.app/blog/contact-import-rfc. Requires authentication.",
"errors": [
{
"name": "InvalidDid"
},
{
"name": "InvalidContacts"
},
{
"name": "TooManyContacts"
},
{
"name": "InvalidToken"
},
{
"name": "InternalError"
}
],
"input": {
"encoding": "application/json",
"schema": {
"properties": {
"contacts": {
"description": "List of phone numbers in global E.164 format (e.g., '+12125550123'). Phone numbers that cannot be normalized into a valid phone number will be discarded. Should not repeat the 'phone' input used in `app.bsky.contact.verifyPhone`.",
"items": {
"type": "string"
},
"maxLength": 1000,
"minLength": 1,
"type": "array"
},
"token": {
"description": "JWT to authenticate the call. Use the JWT received as a response to the call to `app.bsky.contact.verifyPhone`.",
"type": "string"
}
},
"required": [
"token",
"contacts"
],
"type": "object"
}
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"matchesAndContactIndexes": {
"description": "The users that matched during import and their indexes on the input contacts, so the client can correlate with its local list.",
"items": {
"ref": "town.delve.contact.defs#matchAndContactIndex",
"type": "ref"
},
"type": "array"
}
},
"required": [
"matchesAndContactIndexes"
],
"type": "object"
}
},
"type": "procedure"
}
},
"id": "town.delve.contact.importContacts",
"lexicon": 1
}
Metadata
- DID
-
did:plc:qzqct2rrq4u2gmy5g3mjxske - CID
-
bafyreidmgbcpclbjqbhhamvzhlehhce37qpzt5m74tqhtthyvddwkqbyke - Indexed At
- 2026-09-11 20:04 UTC
- AT-URI
-
at://did:plc:qzqct2rrq4u2gmy5g3mjxske/com.atproto.lexicon.schema/town.delve.contact.importContacts
Referenced Schemas (1)
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
app.bsky.contact.importContacts procedure
Import contacts for securely matching with other users. This follows the protocol explained in https://docs.bsky.app/blog/contact-import-rfc. Requires authentication.
-
Verifies control over a phone number with a code received via SMS and starts a contact import session. Requires authentication.
-
app.bsky.contact.verifyPhone procedure
Verifies control over a phone number with a code received via SMS and starts a contact import session. Requires authentication.
-
town.delve.contact.defs not from the namespace authority
Associates a profile with the positional index of the contact import input in the call to `app.bsky.contact.importContacts`, so clients can know which phone caused a particular match.