// niantic_platform_internal_protos.proto // Reconstructed from com.nianticlabs.pokemongo 0.431.0 (versionCode 2026092402, arm64-v8a). // Field numbers were recovered from the compiled parsers; names come from the C# types, // so some may differ from Niantic's originals. Study material, not an official API. syntax = "proto3"; package niantic.platform.internal; import "google/protobuf/field_mask.proto"; message AcceptFriendInviteOutProto { Result result = 1; PlayerSummaryProto friend = 2; int32 added_friendship_score = 3; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_ERROR_INVITE_DOES_NOT_EXIST = 3; RESULT_ERROR_MAX_FRIENDS_LIMIT_REACHED_DELETED = 4; RESULT_ERROR_INVITE_HAS_BEEN_CANCELLED = 5; RESULT_ERROR_SENDER_HAS_MAX_FRIENDS = 6; RESULT_ERROR_RECEIVER_HAS_MAX_FRIENDS = 7; RESULT_ERROR_SENDER_IS_BLOCKED = 8; } } message AcceptFriendInviteProto { string player_id = 1; string nia_account_id = 2; } message AccountContactSettings { enum ConsentStatus { CONSENT_STATUS_UNKNOWN = 0; CONSENT_STATUS_OPT_IN = 1; CONSENT_STATUS_OPT_OUT = 2; } } message AccountSettingsProto { bool opt_out_social_graph_import = 1; SocialSettings.ConsentStatus online_status_consent = 2; SocialSettings.ConsentStatus last_played_date_consent = 3; SocialSettings.ConsentStatus codename_consent = 4; SocialSettings.ConsentStatus contact_list_consent = 5; string full_name = 100; } message AddLoginActionOutProto { bool success = 1; repeated LoginDetail login_detail = 2; Status status = 3; enum Status { STATUS_UNSET = 0; STATUS_AUTH_FAILURE = 1; STATUS_LOGIN_TAKEN = 2; STATUS_ERROR_UNKNOWN = 3; } } message AddLoginActionProto { int32 identity_provider = 1; bytes inner_message = 2; string auth_provider_id = 3; } message ApnToken { string registration_id = 1; string bundle_identifier = 2; int32 payload_byte_size = 3; } message AvatarImageMetadata { enum ImageSpec { IMAGE_SPEC_UNSET = 0; IMAGE_SPEC_AVATAR_HEADSHOT = 1; IMAGE_SPEC_AVATAR_FULL_BODY = 2; } } message CancelFriendInviteOutProto { Result result = 1; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_ERROR_INVITE_DOES_NOT_EXIST = 3; RESULT_ERROR_ALREADY_CANCELLED = 4; } } message CancelFriendInviteProto { string player_id = 1; string nia_account_id = 2; } message CheckAvatarImagesRequest { string avatar_hash = 1; repeated AvatarImageMetadata.ImageSpec image_specs = 2; } message CheckAvatarImagesResponse { Status status = 1; repeated AvatarImageInfo results = 2; message AvatarImageInfo { Status status = 1; AvatarImageMetadata.ImageSpec image_spec = 2; enum Status { STATUS_UNSET = 0; STATUS_SUCCESS = 1; STATUS_MISMATCH = 2; STATUS_NOT_FOUND = 3; } } enum Status { STATUS_UNSET = 0; STATUS_SUCCESS = 1; STATUS_UNKNOWN_ERROR = 2; } } message ClientInbox { repeated Notification notifications = 1; repeated TemplateVariable builtin_variables = 2; enum Label { LABEL_UNSET_LABEL = 0; LABEL_UNREAD = 1; LABEL_NEW = 2; LABEL_IMMEDIATE = 3; } message Notification { string notification_id = 1; string title_key = 2; string category = 3; int64 create_timestamp_ms = 4; repeated TemplateVariable variables = 5; repeated Label labels = 6; int64 expire_time_ms = 7; } } enum ClientOperatingSystem { CLIENT_OPERATING_SYSTEM_OS_UNKNOWN = 0; CLIENT_OPERATING_SYSTEM_OS_ANDROID = 1; CLIENT_OPERATING_SYSTEM_OS_IOS = 2; CLIENT_OPERATING_SYSTEM_OS_DESKTOP = 3; } message CreateSharedLoginTokenRequest { string device_id = 1; } message CreateSharedLoginTokenResponse { Status status = 1; bytes shared_login_token = 2; TokenMetaData token_meta_data = 3; enum Status { STATUS_UNSET = 0; STATUS_SUCCESS = 1; STATUS_ERROR_UNKNOWN = 2; } message TokenMetaData { string email = 1; int64 expiration_timestamp_ms = 2; } } message CrmProxyRequestProto { uint32 action = 1; bytes payload = 2; } message CrmProxyResponseProto { Status status = 1; string error_message = 2; bytes payload = 3; enum Status { STATUS_UNSET = 0; STATUS_OK = 1; STATUS_ERROR_UNKNOWN = 2; STATUS_ERROR_PERMISSION_DENIED = 3; STATUS_ERROR_UNAVAILABLE = 4; STATUS_ERROR_UNAUTHENTICATED = 5; } } message DataAccessRequest { string email = 1; string language_short_code = 2; } message DataAccessResponse { Status status = 1; string error_message = 2; enum Status { STATUS_UNSET = 0; STATUS_SUCCESS = 1; STATUS_ERROR_INVALIDEMAIL = 2; STATUS_ERROR_INVALIDLANGUAGE = 3; STATUS_ERROR_UNKNOWN = 4; } } message DebugInfoProto { double latitude = 1; double longitude = 2; } message DeclineFriendInviteOutProto { Result result = 1; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_ERROR_INVITE_DOES_NOT_EXIST = 3; RESULT_ERROR_INVITE_ALREADY_DECLINED = 4; } } message DeclineFriendInviteProto { string player_id = 1; string nia_account_id = 2; } message DeleteAccountEmailOnFileRequest { string language_short_code = 1; } message DeleteAccountEmailOnFileResponse { Status status = 1; string error_message = 2; string confirmation_email = 3; bool has_apple_provider = 4; enum Status { STATUS_UNSET = 0; STATUS_SUCCESS = 1; STATUS_ERROR_EMAIL_NOT_ON_FILE = 2; STATUS_ERROR_INVALID_LANGUAGE = 3; STATUS_ERROR_APP_NOT_SUPPORTED = 4; STATUS_ERROR_INVALID_PLAYER = 5; STATUS_ERROR_DUPLICATE_REQUEST = 6; STATUS_ERROR_HELPSHIFT_ERROR = 7; STATUS_ERROR_UNKNOWN = 8; STATUS_ERROR_CODENAME_NOT_ON_FILE = 9; } } message DeleteAccountRequest { string email = 1; string language_short_code = 2; bool is_dry_run = 3; } message DeleteAccountResponse { Status status = 1; string error_message = 2; enum Status { STATUS_UNSET = 0; STATUS_SUCCESS = 1; STATUS_ERROR_INVALIDEMAIL = 2; STATUS_ERROR_INVALIDLANGUAGE = 3; STATUS_ERROR_UNKNOWN = 4; STATUS_ERROR_APP_NOT_SUPPORTED = 5; STATUS_ERROR_INVALID_PLAYER = 6; STATUS_ERROR_DUPLICATE_REQUEST = 7; } } message DismissContactListUpdateRequest { } message DismissContactListUpdateResponse { Result result = 1; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; } } message DismissOutgoingGameInvitesRequest { string friend_id = 1; repeated string app_key = 2; string friend_nia_account_id = 3; } message DismissOutgoingGameInvitesResponse { Result result = 2; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; } } message DownloadSettingsActionProto { string sha1 = 1; } message DownloadSettingsResponseProto { string error = 1; string sha1 = 2; bytes values = 3; } message FriendDetailsProto { PlayerSummaryProto player = 1; bytes friend_visible_data = 2; int32 score = 3; bytes data_with_me = 4; OnlineStatus online_status = 5; int64 created_ms = 6; bytes shared_data = 7; bytes data_from_me = 8; bytes data_to_me = 9; LastPlayedDateRange last_played_date_range = 10; enum LastPlayedDateRange { LAST_PLAYED_DATE_RANGE_DATE_UNSET = 0; LAST_PLAYED_DATE_RANGE_TODAY = 1; LAST_PLAYED_DATE_RANGE_YESTERDAY = 2; LAST_PLAYED_DATE_RANGE_DAYS2_TO7_AGO = 3; LAST_PLAYED_DATE_RANGE_DAYS8_TO30_AGO = 4; LAST_PLAYED_DATE_RANGE_MORE_THAN30_DAYS_AGO = 5; } enum OnlineStatus { ONLINE_STATUS_UNSET = 0; ONLINE_STATUS_STATUS_UNKNOWN = 1; ONLINE_STATUS_STATUS_ONLINE = 2; ONLINE_STATUS_STATUS_OFFLINE = 3; } } message GarAccountInfoProto { string niantic_id = 1; string display_name = 2; } message GarProxyRequestProto { uint32 action = 1; bytes payload = 2; } message GarProxyResponseProto { Status status = 1; string error_message = 2; bytes payload = 3; enum Status { STATUS_OK = 0; STATUS_ERROR_UNKNOWN = 2; STATUS_ERROR_PERMISSION_DENIED = 7; STATUS_ERROR_UNAVAILABLE = 14; STATUS_ERROR_UNAUTHENTICATED = 16; } } message GcmToken { string registration_id = 1; ClientOperatingSystem client_operating_system = 2; } message GetAccountSettingsOutProto { Result result = 1; AccountSettingsProto settings = 2; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; } } message GetAccountSettingsProto { } message GetAppRequestTokenRedirectURLPlatformRequestProto { string service = 1; string state = 2; bool refresh_token_required = 3; string continue_url = 4; } message GetAppRequestTokenRedirectURLPlatformResponseProto { Status status = 1; string redirect_url = 2; enum Status { STATUS_UNSET = 0; STATUS_SUCCESS = 1; STATUS_ERROR = 2; STATUS_INVALID_REQUEST = 3; STATUS_UNKNOWN = 4; } } message GetClientFeatureFlagsRequest { string country_code = 1; } message GetClientFeatureFlagsResponse { SocialClientFeatures feature_flags = 1; SocialClientGlobalSettings global_settings = 2; } message GetClientSettingsRequest { string country_code = 1; } message GetClientSettingsResponse { PhoneNumberSettings phone_number_settings = 1; message PhoneNumberSettings { repeated PhoneNumberCountryProto country = 1; } } message GetContactListInfoRequest { } message GetContactListInfoResponse { bool has_new_account_matching = 1; } message GetFacebookFriendListOutProto { Result result = 1; repeated FacebookFriendProto friend = 2; string next_cursor = 3; message FacebookFriendProto { PlayerSummaryProto player = 1; string full_name = 2; } enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_ERROR_FACEBOOK_API = 3; RESULT_ERROR_FACEBOOK_PERMISSIONS = 4; RESULT_ERROR_NO_FACEBOOK_ID = 5; RESULT_ERROR_PLAYER_NOT_FOUND = 6; } } message GetFacebookFriendListProto { string fb_access_token = 1; int32 limit = 2; string cursor = 3; } message GetFriendCodeOutProto { Result result = 1; string friend_code = 2; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR = 2; } } message GetFriendCodeProto { bool force_generate_code = 1; } message GetFriendDetailsOutProto { Result result = 1; repeated FriendDetailsProto friend = 2; DebugProto friend_details_debug_info = 3; message DebugProto { int32 fetched_from_db = 1; int32 fetched_from_fanout = 2; int32 fetched_from_player_mapper = 3; int32 fetched_from_status_cache = 4; int32 failed_to_fetch = 5; repeated Callee callee_list = 6; int32 fetched_from_same_server_as_player = 7; message Callee { repeated int32 callee_id = 1; string player_id = 2; string nia_account_id = 3; } } enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_EXCEEDS_MAX_PLAYERS_PER_QUERY = 3; } } message GetFriendDetailsProto { repeated string player_id = 1; repeated string nia_account_id = 2; bool include_online_status = 3; } message GetFriendDetailsRequest { repeated string friend_id = 1; SocialClientFeatures.CrossGameSocialClientSettingsProto.FeatureType feature = 2; repeated string friend_nia_account_id = 3; } message GetFriendDetailsResponse { Result result = 1; repeated FriendDetailsEntryProto friend_details = 2; message FriendDetailsEntryProto { string player_id = 1; ProfileDetailsProto profile = 2; PlayerStatusDetailsProto player_status = 3; FriendDetailsProto calling_game_data = 4; repeated OutgoingGameInviteStatus outgoing_game_invite_status = 5; repeated string dismissed_outgoing_game_invite_app_keys = 6; string nia_account_id = 7; GarAccountInfoProto gar_account_info = 8; message OutgoingGameInviteStatus { string app_key = 1; SocialV2Enum.InvitationStatus invitation_status = 2; } } message PlayerStatusDetailsProto { Result result = 1; SocialV2Enum.OnlineStatus online_status = 4; string last_played_app_key = 5; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_ERROR_STATUS_UNKNOWN = 3; RESULT_ERROR_STALE_DATA = 4; } } enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_ERROR_EXCEEDS_MAX_FRIENDS_PER_QUERY = 3; RESULT_ERROR_FEATURE_DISABLED = 4; } } message GetFriendsListOutProto { Result result = 1; repeated FriendProto friend = 2; message FriendInviteSummaryProto { string invite_source = 1; bytes custom_data = 2; } message FriendProto { string player_id = 1; string codename = 2; string team = 3; int32 score = 4; bytes data_with_me = 5; int64 version = 6; int64 created_ms = 7; string fb_user_id = 8; bool is_facebook_friendship = 9; SharedFriendshipProto shared_data = 10; OnlineStatus online_status = 11; string nia_account_id = 12; string display_name = 13; FriendshipSourceType friendship_source_type = 14; FriendInviteSummaryProto invite_summary = 15; enum OnlineStatus { ONLINE_STATUS_UNSET = 0; ONLINE_STATUS_STATUS_UNKNOWN = 1; ONLINE_STATUS_STATUS_ONLINE = 2; ONLINE_STATUS_STATUS_OFFLINE = 3; } } enum FriendshipSourceType { FRIENDSHIP_SOURCE_TYPE_FRIENDSHIP_SOURCE_UNSET = 0; FRIENDSHIP_SOURCE_TYPE_FRIENDSHIP_SOURCE_FRIEND_INVITE = 1; FRIENDSHIP_SOURCE_TYPE_FRIENDSHIP_SOURCE_GAME_ACTION = 2; FRIENDSHIP_SOURCE_TYPE_FRIENDSHIP_SOURCE_FACEBOOK_IMPORT = 3; FRIENDSHIP_SOURCE_TYPE_FRIENDSHIP_SOURCE_FRIEND_GRAPH = 4; FRIENDSHIP_SOURCE_TYPE_FRIENDSHIP_SOURCE_ADDRESS_BOOK_IMPORT = 5; } enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; } message SharedFriendshipProto { bytes shared_data = 1; int64 version = 2; bytes data_from_me = 3; bytes data_to_me = 4; } } message GetFriendsListProto { SocialSettings.ListOption list_option = 1; } message GetInboxV2Proto { bool is_history = 1; bool is_reverse = 2; int64 not_before_ms = 3; } message GetIncomingFriendInvitesOutProto { Result result = 1; repeated IncomingFriendInviteDisplayProto invites = 2; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; } } message GetIncomingFriendInvitesProto { } message GetIncomingGameInvitesRequest { } message GetIncomingGameInvitesResponse { repeated IncomingGameInvite invites = 1; Result result = 2; message IncomingGameInvite { string app_key = 1; repeated string friend_profile_names = 2; Status status = 3; enum Status { STATUS_UNSET = 0; STATUS_NEW = 1; STATUS_SEEN = 2; } } enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_ERROR_FEATURE_DISABLED = 3; } } message GetMyAccountRequest { } message GetMyAccountResponse { Status status = 1; repeated ContactProto contact = 2; string full_name = 3; AccountContactSettings.ConsentStatus contact_import_discoverability_consent = 4; message ContactProto { string contact_id = 1; Type type = 2; string contact = 3; enum Type { TYPE_UNSET = 0; TYPE_MASKED_PHONE_NUMBER = 1; } } enum Status { STATUS_UNSET = 0; STATUS_SUCCESS = 1; STATUS_ERROR_UNKNOWN = 2; STATUS_ERROR_NOT_FOUND = 3; } } message GetNotificationInboxOutProto { Result result = 1; ClientInbox inbox = 2; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_FAILURE = 2; } } message GetOutgoingFriendInvitesOutProto { Result result = 1; repeated OutgoingFriendInviteDisplayProto invites = 2; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; } } message GetOutgoingFriendInvitesProto { } message GetPhotosOutProto { Result result = 1; repeated PhotoRecord photos = 2; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; } } message GetPhotosProto { repeated string photo_ids = 1; repeated PhotoSpec photo_specs = 2; message PhotoSpec { string photo_id = 1; GetPhotosMode mode = 2; enum GetPhotosMode { GET_PHOTOS_MODE_ORIGINAL = 0; GET_PHOTOS_MODE_SIZE64 = 1; GET_PHOTOS_MODE_SIZE256 = 2; GET_PHOTOS_MODE_SIZE1080 = 3; GET_PHOTOS_MODE_MIN_SIZE64 = 4; GET_PHOTOS_MODE_MIN_SIZE256 = 5; GET_PHOTOS_MODE_MIN_SIZE1080 = 6; } } } message GetPlayerSettingsOutProto { Result result = 1; PlayerSettingsProto settings = 2; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_ERROR_PLAYER_NOT_FOUND = 3; } } message GetPlayerSettingsProto { } message GetProfileRequest { string player_id = 1; string nia_account_id = 3; } message GetProfileResponse { Result result = 1; ProfileDetailsProto profile_details = 2; repeated PlayerProfileDetailsProto player_profile_details = 3; message PlayerProfileDetailsProto { string app_key = 1; string codename = 2; string faction = 3; int32 level = 4; int64 experience = 5; int64 signed_up_timestamp_ms = 6; int64 last_played_timestamp_ms = 7; double player_total_walk_km = 8; string display_name = 9; } enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_ERROR_NOT_FRIEND = 3; } } message GetSignedUrlOutProto { Result result = 1; string signed_url = 2; string photo_id = 4; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; } } message GetSignedUrlProto { } message GetWebTokenActionOutProto { Status status = 1; string access_token = 2; enum Status { STATUS_UNSET = 0; STATUS_SUCCESS = 1; STATUS_ERROR_UNKNOWN = 2; } } message GetWebTokenActionProto { string client_id = 1; } message IncomingFriendInviteDisplayProto { IncomingFriendInviteProto invite = 1; PlayerSummaryProto player = 2; } message IncomingFriendInviteProto { Status status = 1; string player_id = 2; int64 created_ms = 3; InvitationType invitation_type = 4; string full_name = 5; repeated SocialProto.AppKey niantic_social_graph_app_keys = 6; string nia_account_id = 7; int32 initial_friendship_score = 8; bytes custom_data = 9; enum Status { STATUS_UNSET = 0; STATUS_PENDING = 1; STATUS_DECLINED = 2; STATUS_CANCELLED = 3; } } enum InvitationType { INVITATION_TYPE_UNSET = 0; INVITATION_TYPE_CODE = 1; INVITATION_TYPE_FACEBOOK = 2; INVITATION_TYPE_SERVER_REQUEST = 3; INVITATION_TYPE_NIANTIC_SOCIAL_GRAPH = 4; INVITATION_TYPE_ADDRESS_BOOK_IMPORT = 5; } message InviteFacebookFriendOutProto { Result result = 1; bool new_friendship_formed = 2; int32 added_friendship_score = 3; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_ERROR_PLAYER_NOT_FOUND = 3; RESULT_ERROR_PLAYER_OUTBOX_FULL = 4; RESULT_ERROR_PLAYER_INBOX_FULL = 5; RESULT_ERROR_SENDER_HAS_MAX_FRIENDS = 6; RESULT_ERROR_RECEIVER_HAS_MAX_FRIENDS = 7; RESULT_ERROR_ALREADY_A_FRIEND = 8; RESULT_ERROR_INVITE_ALREADY_SENT = 9; RESULT_ERROR_INVITE_ALREADY_RECEIVED = 10; RESULT_ERROR_CANNOT_SEND_INVITES_TO_YOURSELF = 11; RESULT_ERROR_FRIEND_CACHE_EXPIRED = 12; RESULT_ERROR_FRIEND_NOT_CACHED = 13; RESULT_ERROR_INVALID_SENDER_FACEBOOK_ID = 14; RESULT_ERROR_SEND_TO_BLOCKED_USER = 15; } } message InviteFacebookFriendProto { string fb_access_token = 1; string friend_fb_user_id = 2; } message InviteGameRequest { string friend_id = 1; string app_key = 2; string friend_nia_account_id = 3; ReferralProto referral = 4; } message InviteGameResponse { Status status = 1; enum Status { STATUS_UNSET = 0; STATUS_SUCCESS = 1; STATUS_ERROR_UNKNOWN = 2; STATUS_ERROR_NOT_FRIEND = 3; STATUS_ERROR_EXCEED_LIMIT = 4; STATUS_ERROR_ALREADY_SIGNED_UP = 5; STATUS_ERROR_EMAIL_FAILED = 6; } } message IsMyFriendOutProto { Result result = 1; bool is_friend = 2; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_ERROR_PLAYER_NOT_FOUND_DELETED = 3; } } message IsMyFriendProto { string player_id = 1; string nia_account_id = 2; } message LinkToAccountLoginRequestProto { bytes new_auth_token = 1; string new_auth_provider_id = 2; } message LinkToAccountLoginResponseProto { bool success = 1; repeated LoginDetail login_detail = 2; Status status = 3; enum Status { STATUS_UNSET = 0; STATUS_UNKNOWN_ERROR = 1; STATUS_AUTH_FAILURE = 2; STATUS_LOGIN_TAKEN = 3; STATUS_GUEST_LOGIN_DISABLED = 4; STATUS_SUCCESS_ALREADY_LINKED = 5; } } message ListFriendActivitiesRequestProto { } message ListFriendActivitiesResponseProto { Result result = 1; repeated FriendActivityProto friend_activity = 2; message FriendActivityProto { string nia_account_id = 1; bytes friend_activity = 2; int64 friend_activity_received_timestamp_ms = 3; int64 friend_activity_expiry_timestamp_ms = 4; } enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; } } message ListFriendsRequest { SocialClientFeatures.CrossGameSocialClientSettingsProto.FeatureType feature = 1; SocialSettings.ListOption list_option = 2; } message ListFriendsResponse { Result result = 1; repeated FriendSummaryProto friend_summary = 2; message FriendSummaryProto { string player_id = 1; bool is_calling_app_friend = 2; GetFriendsListOutProto.FriendProto calling_game_data = 3; ProfileSummaryProto profile = 4; PlayerStatusSummaryProto player_status = 5; SocialV2Enum.InvitationStatus invitation_status = 6; string nia_account_id = 7; GarAccountInfoProto gar_account_info = 8; } message PlayerStatusSummaryProto { PlayerStatusResult result = 1; SocialV2Enum.OnlineStatus online_status = 3; string last_played_app_key = 4; enum PlayerStatusResult { PLAYER_STATUS_RESULT_UNSET = 0; PLAYER_STATUS_RESULT_SUCCESS = 1; PLAYER_STATUS_RESULT_ERROR_UNKNOWN = 2; PLAYER_STATUS_RESULT_ERROR_STATUS_UNKNOWN = 3; PLAYER_STATUS_RESULT_ERROR_STALE_DATA = 4; } } message ProfileSummaryProto { string name = 1; string nickname = 2; } enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_ERROR_FEATURE_DISABLED = 3; } } message ListLoginActionOutProto { bool success = 1; repeated LoginDetail login_detail = 2; } message ListOptOutNotificationCategoriesRequestProto { } message ListOptOutNotificationCategoriesResponseProto { Result result = 1; repeated string opt_out_categories = 2; bool player_not_registered = 3; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_FAILURE = 2; } } message LoginDetail { int32 identity_provider = 1; string email = 2; string auth_provider_id = 3; string third_party_username = 4; } message NianticPublicSharedLoginTokenSettings { repeated AppSettings app_settings = 1; ClientSettings client_settings = 2; message AppSettings { string app_key = 1; TokenProducerSettings token_producer_settings = 2; TokenConsumerSettings token_consumer_settings = 3; message TokenConsumerSettings { bool enabled = 1; repeated string allow_originating_auth_provider_id = 2; repeated string allow_originating_app_key = 3; } message TokenProducerSettings { bool enabled = 1; repeated string allow_auth_provider_id = 2; } } message ClientSettings { repeated string android_provider_id = 1; repeated string ios_bundle_ids = 2; } } enum NotificationState { NOTIFICATION_STATE_UNSET_STATE = 0; NOTIFICATION_STATE_VIEWED = 1; NOTIFICATION_STATE_DISMISSED = 2; } message NotifyContactListFriendsRequest { int64 notify_timestamp_ms = 1; } message NotifyContactListFriendsResponse { Result result = 1; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_ERROR_ALREADY_SENT = 3; } } message OptOutProto { repeated string categories = 1; } message OutgoingFriendInviteDisplayProto { OutgoingFriendInviteProto invite = 1; PlayerSummaryProto player = 2; } message OutgoingFriendInviteProto { Status status = 1; string player_id = 2; int64 created_ms = 3; InvitationType invitation_type = 4; string full_name = 5; repeated SocialProto.AppKey niantic_social_graph_app_keys = 6; repeated string contact_info = 7; string nia_account_id = 8; int32 initial_friendship_score = 9; bytes custom_data = 10; enum Status { STATUS_UNSET = 0; STATUS_PENDING = 1; STATUS_CANCELLED = 2; STATUS_DECLINED = 3; } } message PhoneNumberCountryProto { string english_name = 1; string localized_name = 2; string country_code = 3; string calling_code = 4; } message PhotoRecord { int64 creation_time_ms = 1; string transient_photo_url = 2; string photo_id = 3; Status status = 4; enum Status { STATUS_UNSET = 0; STATUS_SUCCESS = 1; STATUS_PHOTO_FLAGGED = 2; STATUS_ERROR_UNKNOWN = 3; } } message PlayerSettingsProto { bool opt_out_online_status = 1; repeated SocialSettings.TutorialType completed_tutorials = 2; } message PlayerSummaryProto { string player_id = 1; string codename = 2; bytes public_data = 3; string team = 4; string fb_user_id = 5; int32 level = 6; int64 experience = 7; string nia_account_id = 8; string display_name = 9; } message ProfileDetailsProto { string profile_name_app_key = 1; string nickname = 2; string profile_name = 4; } message ProxyRequestProto { uint32 action = 1; string host = 2; bytes payload = 3; } message ProxyResponseProto { Status status = 1; string assigned_host = 2; bytes payload = 3; enum Status { STATUS_UNSET = 0; STATUS_COMPLETED = 1; STATUS_COMPLETED_AND_REASSIGNED = 2; STATUS_ACTION_NOT_FOUND = 3; STATUS_ASSIGNMENT_ERROR = 4; STATUS_PROXY_UNAUTHORIZED_ERROR = 5; STATUS_INTERNAL_ERROR = 6; STATUS_BAD_REQUEST = 7; STATUS_ACCESS_DENIED = 8; STATUS_TIMEOUT_ERROR = 9; STATUS_RATE_LIMITED = 10; } } message PushNotificationRegistryOutProto { Result result = 1; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_NO_CHANGE = 2; } } message PushNotificationRegistryProto { ApnToken apn_token = 1; GcmToken gcm_token = 2; } message RedeemPasscodeRequestProto { string passcode = 1; } message RedeemPasscodeResponseProto { Result result = 1; repeated AcquiredItem acquired_item = 2; bytes acquired_items_proto = 3; string passcode = 4; message AcquiredItem { string item = 1; int64 count = 2; } enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_NOT_AVAILABLE = 2; RESULT_OVER_INVENTORY_LIMIT = 3; RESULT_ALREADY_REDEEMED = 4; RESULT_OVER_PLAYER_REDEMPTION_LIMIT = 5; } } message ReferContactListFriendRequest { SocialV2Enum.ContactMethod contact_method = 1; string contact_info = 2; string contact_id = 3; string receiver_name = 4; string app_store_link = 5; ReferralProto referral = 6; string country_code = 7; message ReferralProto { string referral_code = 1; string referral_link = 2; } } message ReferContactListFriendResponse { Result result = 1; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_ERROR_CONTACT_NOT_FOUND = 3; RESULT_ERROR_FAILED_TO_SEND_EMAIL = 4; RESULT_ERROR_EXCEED_LIMIT = 5; RESULT_ERROR_NO_SENDER_NAME = 6; RESULT_ERROR_INAPPROPRIATE_RECEIVER_NAME = 7; RESULT_ERROR_ALREADY_SIGNED_UP = 8; } } message ReferralProto { string referral_code = 1; string referral_link = 2; } message RemoveFriendOutProto { Result result = 1; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_PLAYER_DOES_NOT_EXIST_DELETED = 2; RESULT_ERROR_PLAYER_NOT_A_FRIEND = 3; } } message RemoveFriendProto { string player_id = 1; string nia_account_id = 2; } message RemoveLoginActionOutProto { bool success = 1; repeated LoginDetail login_detail = 2; Status status = 3; enum Status { STATUS_UNSET = 0; STATUS_LOGIN_NOT_REMOVABLE = 1; STATUS_ERROR_UNKNOWN = 2; } } message RemoveLoginActionProto { int32 identity_provider = 1; string auth_provider_id = 3; } message SavePlayerSettingsOutProto { Result result = 1; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; } } message SavePlayerSettingsProto { PlayerSettingsProto settings = 1; } message SearchPlayerOutProto { Result result = 1; PlayerSummaryProto player = 2; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_ERROR_PLAYER_NOT_FOUND = 3; } } message SearchPlayerProto { string friend_code = 1; } message SendContactListFriendInviteRequest { repeated string emails = 2; repeated string phone_numbers = 3; string country_code = 4; } message SendContactListFriendInviteResponse { Result result = 1; bool new_friendship_formed = 2; int32 added_friendship_score = 3; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_ERROR_PLAYER_OUTBOX_FULL = 3; RESULT_ERROR_PLAYER_INBOX_FULL = 4; RESULT_ERROR_SENDER_HAS_MAX_FRIENDS = 5; RESULT_ERROR_RECEIVER_HAS_MAX_FRIENDS = 6; RESULT_ERROR_ALREADY_A_FRIEND = 7; RESULT_ERROR_INVITE_ALREADY_SENT = 8; RESULT_ERROR_INVITE_ALREADY_RECEIVED = 9; RESULT_ERROR_CANNOT_SEND_INVITES_TO_YOURSELF = 10; RESULT_ERROR_CONTACT_NOT_FOUND = 11; RESULT_ERROR_RECEIVER_NOT_FOUND = 12; RESULT_ERROR_NO_SENDER_NAME = 13; RESULT_ERROR_SEND_TO_BLOCKED_USER = 14; } } message SendFriendInviteOutProto { Result result = 1; bool new_friendship_formed = 2; int32 added_friendship_score = 3; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_ERROR_ALREADY_A_FRIEND = 3; RESULT_ERROR_PLAYER_DOES_NOT_EXIST_DELETED = 4; RESULT_ERROR_PLAYER_INBOX_FULL = 5; RESULT_ERROR_PLAYER_OUTBOX_FULL = 6; RESULT_ERROR_SENDER_HAS_MAX_FRIENDS = 7; RESULT_ERROR_INVITE_ALREADY_SENT = 8; RESULT_ERROR_CANNOT_SEND_INVITES_TO_YOURSELF = 9; RESULT_ERROR_INVITE_ALREADY_RECEIVED = 10; RESULT_ERROR_RECEIVER_HAS_MAX_FRIENDS = 11; RESULT_ERROR_SEND_TO_BLOCKED_USER = 12; RESULT_ERROR_RECEIVER_DECLINED = 13; } } message SendFriendInviteProto { string player_id = 1; string friend_code = 2; bool read_only = 3; string nia_account_id = 4; int32 initial_friendship_score = 5; bytes custom_data = 6; string friend_invite_source = 7; } message SendSmsVerificationCodeRequest { string phone_number = 1; string country_code = 2; } message SendSmsVerificationCodeResponse { Status status = 1; string error_message = 2; enum Status { STATUS_UNSET = 0; STATUS_SUCCESS = 1; STATUS_ERROR_UNKNOWN = 2; STATUS_ERROR_TOO_FREQUENT_ATTEMPTS = 3; STATUS_ERROR_TOO_MANY_ATTEMPTS = 4; STATUS_ERROR_INVALID_PHONE_NUMBER = 5; } } message SetAccountContactSettingsRequest { string full_name = 1; AccountContactSettings.ConsentStatus contact_import_discoverability_consent = 2; google.protobuf.FieldMask update_field_mask = 1000; } message SetAccountContactSettingsResponse { Status status = 1; string error_message = 2; enum Status { STATUS_UNSET = 0; STATUS_SUCCESS = 1; STATUS_ERROR_UNKNOWN = 2; STATUS_NAME_NOT_ALLOWED = 3; STATUS_NAME_ABUSIVE = 4; STATUS_NAME_INVALID = 5; } } message SetAccountSettingsOutProto { Result result = 1; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_ERROR_INAPPROPRIATE_NAME = 3; } } message SetAccountSettingsProto { AccountSettingsProto settings = 1; } message SocialClientFeatures { CrossGameSocialClientSettingsProto cross_game_social_settings = 1; message CrossGameSocialClientSettingsProto { repeated FeatureType disabled_features = 1; AppLinkType app_link = 2; enum AppLinkType { APP_LINK_TYPE_NO_LINK = 0; APP_LINK_TYPE_WEB_LINK = 1; APP_LINK_TYPE_APP_STORE_LINK = 2; } enum FeatureType { FEATURE_TYPE_UNSET = 0; FEATURE_TYPE_NIANTIC_PROFILE = 1; FEATURE_TYPE_ONLINE_STATUS = 2; FEATURE_TYPE_CROSS_GAME_FRIEND_LIST = 3; FEATURE_TYPE_GAME_INVITE_SENDER = 4; FEATURE_TYPE_SHARED_FRIEND_GRAPH = 5; FEATURE_TYPE_NICKNAME = 6; FEATURE_TYPE_CROSS_GAME_ONLINE_STATUS = 7; FEATURE_TYPE_GAME_INVITE_RECEIVER = 8; FEATURE_TYPE_ADDRESS_BOOK_IMPORT = 9; } } } message SocialClientGlobalSettings { CrossGameSocialSettingsProto cross_game_social_settings = 1; message CrossGameSocialSettingsProto { bool niantic_profile_codename_opt_out_enabled = 1; repeated string disabled_outgoing_game_invite_app_key = 2; repeated string unreleased_app_key = 3; int32 contact_list_sync_page_size = 4; int64 contact_list_sync_interval_ms = 5; int32 max_friends = 6; int32 contact_list_concurrent_rpc_size = 7; } } message SocialProto { enum AppKey { APP_KEY_INVALID = 0; APP_KEY_INGRESS_DELETED = 1; APP_KEY_HOLOHOLO_DELETED = 2; APP_KEY_LEXICON_DELETED = 3; } } message SocialSettings { enum ConsentStatus { CONSENT_STATUS_UNKNOWN = 0; CONSENT_STATUS_OPT_IN = 1; CONSENT_STATUS_OPT_OUT = 2; } enum ListOption { LIST_OPTION_UNSET_OPTION = 0; LIST_OPTION_RETURN_ALL = 1; } enum TutorialType { TUTORIAL_TYPE_UNSET = 0; TUTORIAL_TYPE_PROFILE = 1; TUTORIAL_TYPE_CROSS_GAME_FRIEND_LIST = 2; TUTORIAL_TYPE_ONLINE_STATUS_OVERVIEW = 3; TUTORIAL_TYPE_ONLINE_STATUS_TOGGLE = 4; TUTORIAL_TYPE_ADDRESS_BOOK_IMPORT = 5; TUTORIAL_TYPE_ADDRESS_BOOK_DISCOVERABILITY = 6; TUTORIAL_TYPE_ADDRESS_BOOK_PHONE_NUMBER_REGISTRATION = 7; } } message SocialV2Enum { enum ContactMethod { CONTACT_METHOD_UNSET = 0; CONTACT_METHOD_EMAIL = 1; CONTACT_METHOD_SMS = 2; } enum InvitationStatus { INVITATION_STATUS_UNSET = 0; INVITATION_STATUS_INVITED = 1; } enum OnlineStatus { ONLINE_STATUS_STATUS_UNSET = 0; ONLINE_STATUS_STATUS_UNKNOWN = 1; ONLINE_STATUS_STATUS_ONLINE = 2; ONLINE_STATUS_STATUS_OFFLINE = 3; } } message SubmitImageOutProto { Result result = 1; string transient_photo_url = 2; string photo_id = 3; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_IMAGE_DOES_NOT_EXIST = 2; RESULT_INAPPROPRIATE_CONTENT = 3; RESULT_ERROR_UNKNOWN = 4; RESULT_PHOTO_ID_ALREADY_SUBMITTED = 5; RESULT_MATCHING_IMAGE_FLAGGED = 6; } } message SubmitImageProto { string photo_id = 2; map metadata = 3; bool skip_moderation = 4; } message SyncContactListRequest { repeated ContactProto contact = 1; string country_code = 2; message ContactProto { string contact_id = 1; repeated string email = 2; repeated string phone_number = 3; } } message SyncContactListResponse { Result result = 1; repeated ContactPlayerProto contact_player = 2; message ContactPlayerProto { string contact_id = 1; repeated PlayerProto player = 2; ContactStatus status = 3; enum ContactStatus { CONTACT_STATUS_UNSET = 0; CONTACT_STATUS_INVITED = 1; CONTACT_STATUS_REMOVED = 2; } message PlayerProto { bool is_calling_game_player = 2; bool is_newly_signed_up_player = 3; bool is_self = 4; bool is_friend = 5; } } enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_ERROR_PLAYER_NOT_FOUND = 3; RESULT_ERROR_EXCEEDS_MAX_CONTACTS_PER_QUERY = 4; } } message TemplateVariable { string name = 1; string literal = 2; string key = 3; string lookup_table = 4; bytes byte_value = 5; } message UpdateAvatarImageRequest { AvatarImageMetadata.ImageSpec image_spec = 1; AvatarImageProto avatar_image = 2; message AvatarImageProto { string avatar_hash = 1; string photo_id = 2; } } message UpdateAvatarImageResponse { Status status = 1; enum Status { STATUS_UNSET = 0; STATUS_SUCCESS = 1; STATUS_UNKNOWN_ERROR = 2; } } message UpdateFacebookStatusOutProto { Result result = 1; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_ERROR_PLAYER_NOT_FOUND = 3; RESULT_ERROR_FACEBOOK_API = 4; RESULT_ERROR_ALREADY_EXISTS = 5; } } message UpdateFacebookStatusProto { string fb_access_token = 1; bool force_update = 2; } message UpdateFriendshipRequest { string friend_id = 1; FriendProfileProto friend_profile = 2; string friend_nia_account_id = 3; message FriendProfileProto { string nickname = 1; } } message UpdateFriendshipResponse { Result result = 1; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_ERROR_NOT_FRIEND = 3; RESULT_ERROR_NICKNAME_WRONG_FORMAT = 4; RESULT_ERROR_FILTERED_NICKNAME = 5; RESULT_ERROR_EXCEEDED_CHANGE_LIMIT = 6; } } message UpdateIncomingGameInviteRequest { string app_key = 1; NewStatus new_status = 2; enum NewStatus { NEW_STATUS_UNSET = 0; NEW_STATUS_SEEN = 1; NEW_STATUS_READ = 2; } } message UpdateIncomingGameInviteResponse { Result result = 2; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; } } message UpdateNotificationOutProto { repeated string notification_ids = 1; repeated int64 create_timestamp_ms = 2; NotificationState state = 3; } message UpdateNotificationProto { repeated string notification_ids = 1; repeated int64 create_timestamp_ms = 2; NotificationState state = 3; } message UpdatePhoneNumberRequest { string phone_number = 1; string verification_code = 2; string country_code = 3; string contact_id = 4; } message UpdatePhoneNumberResponse { Status status = 1; string error_message = 2; enum Status { STATUS_UNSET = 0; STATUS_SUCCESS = 1; STATUS_ERROR_WRONG_VERIFICATION_CODE = 2; STATUS_ERROR_UNKNOWN = 3; STATUS_ERROR_CONTACT_NOT_FOUND = 4; STATUS_ERROR_TOO_FREQUENT_ATTEMPTS = 5; STATUS_ERROR_TOO_MANY_ATTEMPTS = 6; } } message UpdateProfileRequest { ProfileProto profile = 1; message ProfileProto { string profile_name_app_key = 1; } } message UpdateProfileResponse { Result result = 1; enum Result { RESULT_UNSET = 0; RESULT_SUCCESS = 1; RESULT_ERROR_UNKNOWN = 2; RESULT_ERROR_EMPTY_PROFILE_NAME = 3; } }