Backfill in-progress. Some lexicons and records may be missing or incomplete.

app.bsky.contact.importContacts

bsky-lexicons.bsky.social

Documentation

main 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.

Input

Encodingapplication/json
contacts array Required

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`.

maxLength: 1000 bytesminLength: 1 bytes
token string Required

JWT to authenticate the call. Use the JWT received as a response to the call to `app.bsky.contact.verifyPhone`.

Output

Encodingapplication/json
matchesAndContactIndexes array Required

The users that matched during import and their indexes on the input contacts, so the client can correlate with its local list.

Errors

InvalidDid
InvalidContacts
TooManyContacts
InvalidToken
InternalError
Try It

Requests are sent directly from your browser. Some servers may block requests due to CORS.

Base URL for XRPC calls (e.g., https://bsky.social)
Enter valid JSON for the request body
View raw schema
{
  "type": "procedure",
  "input": {
    "schema": {
      "type": "object",
      "required": [
        "token",
        "contacts"
      ],
      "properties": {
        "token": {
          "type": "string",
          "description": "JWT to authenticate the call. Use the JWT received as a response to the call to `app.bsky.contact.verifyPhone`."
        },
        "contacts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxLength": 1000,
          "minLength": 1,
          "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`."
        }
      }
    },
    "encoding": "application/json"
  },
  "errors": [
    {
      "name": "InvalidDid"
    },
    {
      "name": "InvalidContacts"
    },
    {
      "name": "TooManyContacts"
    },
    {
      "name": "InvalidToken"
    },
    {
      "name": "InternalError"
    }
  ],
  "output": {
    "schema": {
      "type": "object",
      "required": [
        "matchesAndContactIndexes"
      ],
      "properties": {
        "matchesAndContactIndexes": {
          "type": "array",
          "items": {
            "ref": "app.bsky.contact.defs#matchAndContactIndex",
            "type": "ref"
          },
          "description": "The users that matched during import and their indexes on the input contacts, so the client can correlate with its local list."
        }
      }
    },
    "encoding": "application/json"
  },
  "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."
}

Lexicon Garden

@