Every call it makes

The complete list of network calls, each with a page of its own.

The complete list of what the app sends over the network. If a request is not on this page, the app does not make it. Each call has a page of its own.

01 · opensolr.com: your account
CallWhen
GET /app/authorizeSign-in, in your browser. See signing in
POST /app/tokenThe end of sign-in: this phone's own key and the plan
POST /app/api/device_keyOnce, for a phone still on the account's master key
photos_sync_infoThe start of a sync: indexes, index address and plan in one call
get_index_listSetup, and when photos_sync_info could not answer
vector_regionsBefore creating the index: where it can go
create_indexOnly when the index is certainly missing
upload_zip_config_filesA new index, or a new index configuration
get_core_infoThe index address and password, when they are needed again
get_account_summaryThe end of every sync, and Refresh on the Me screen
place_searchTyping a city or town in the place picker
02 · api.opensolr.com: reading and searching your photos
CallWhen
photos_ingestNew or changed photos, five per call: the whole indexing happens there
photos_wordsWords you changed, fifty photos per call, no picture
photos_restoreFilling an emptied index back from the phone's copy, fifty documents per call
photos_selectA typed search by meaning
03 · The phone's index, and two other hosts
CallWhen
/select, /suggest, /update, /opensolr-photos-configSearches on words, facets, autocomplete, similar photos, the map, deletes, and the checks of a sync
tile.openstreetmap.orgMap tiles, only while the map screen is open
api.github.comWhether a newer release exists: once a day, and on Check for updates. Nothing about you or your photos
github.comThe new version's APK, only when you tap to install it, in the copy installed from GitHub. GitHub hands the download to its own file host; no other host is followed

Account credentials travel in the request body and the index's credentials in the request's Authorization header, never in an address. No call that carries a credential follows a redirect, so a credential is never sent to a host the app did not name. The app does not call nearby_places: the place of a photo is worked out inside photos_ingest.

Most of what you do sends nothing at all: browsing, Stats, the tag suggestions and the comparison a sync makes are answered by the phone's copy of the index.

04 · Refusals the app understands
AnswerWhat the app does
ERROR_AUTHENTICATION_FAILEDThe key was refused, or the phone was signed out in Account › Devices: back to the sign-in screen
429 ERROR_AI_MONTHLY_QUOTA_EXCEEDEDA search by meaning runs on words only
429, rate limitThe sync pauses and continues on its own a little later
VECTOR_NOT_ALLOWEDA search by meaning runs on words only
NOT_OWNER_ERRORThe index is treated as missing, and created only if the index list confirms it
401 from the indexReads the current password and repeats the request once
403 from the indexOver disk space or bandwidth: the sync stops, a notification opens your account

Opensolr Photos is open source and MIT licensed. Questions about your Opensolr account, index or plan go to opensolr.com/contact; questions about the app itself belong on GitHub.

Opensolr Photos Documentation