{ "id": "app.bsky.contact.importContacts", "defs": { "main": { "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." } }, "$type": "com.atproto.lexicon.schema", "lexicon": 1 }