How Shoulder Surf protects your API keys

When you bring your own key, your credentials stay on your device and go directly to the AI provider.

Stored in iOS Keychain

Your API keys are saved in Apple's iOS Keychain, the same hardware-backed encrypted storage that iOS uses for your passwords, credit cards, and Face ID credentials. Keys are encrypted at rest using your device passcode and biometrics. They are never written to plain text, UserDefaults, or any other unprotected storage.

Direct device-to-provider

When you ask a question, your API key travels directly from your iPhone to the AI provider (OpenAI, Anthropic, Google, etc.) over an encrypted HTTPS connection. The request never passes through Shoulder Surf servers. We never see, proxy, or log your key.

Never touches our servers

Shoulder Surf has no server-side component that receives BYOK credentials. Your key exists only on your device and in the HTTPS request to your chosen provider. There is no cloud backup, no analytics capture, and no telemetry that includes your key.

Device-local only

API keys are not synced to iCloud, CloudKit, or any other cloud service. If you switch devices, you'll enter your key again, by design. This ensures your credentials can't be exposed through a cloud account compromise.

Never logged or cached

API keys are read from the Keychain, used for a single request, and discarded from memory. They are never written to app logs, crash reports, or on-disk caches. Request logs redact all sensitive headers and base64 image data automatically.

Format validation

The app detects when you accidentally paste a key for the wrong provider (e.g., an Anthropic key in the OpenAI field) and warns you before you make a request. This prevents accidental exposure of a key to the wrong third party.

How a BYOK request works

Every query follows the same secure path. Your key never leaves your device except inside the encrypted request to the provider you chose.

1You ask a question

Shoulder Surf captures your transcript, photo, or prompt on-device.

2Key read from Keychain

Your API key is retrieved from iOS Keychain into memory for this request only.

3HTTPS to provider

The request goes directly to the AI provider over TLS. No Shoulder Surf servers involved.

4Response displayed

The provider's response is shown on-screen. Your key is released from memory.

Common questions

Can Shoulder Surf read my API key?

The app reads your key from the Keychain to make the API call, and that's the only time it's in memory. It is never transmitted to us, logged, or stored anywhere other than the Keychain.

What if I lose my phone?

iOS Keychain data is encrypted with your device passcode. If your device is locked, the key is inaccessible. You can also revoke the key from your AI provider's dashboard at any time.

Do I need an account to use BYOK?

No. BYOK requires no Shoulder Surf account, no sign-in, and no subscription. Just paste your key in Settings and go.

What data is sent to the AI provider?

The transcript excerpt, your question, and any attached photos (compressed). Your API key is included in the request header. No other personal data is sent. See our Privacy Policy for full details.

Is this safer than using Shoulder Surf's cloud service?

Both paths are secure. With BYOK, data goes directly to the provider you choose, with no intermediary. With Shoulder Surf AI (our managed service), data is processed through our cloud with Sign in with Apple authentication and JWT tokens stored in the Keychain. Choose whichever model fits your trust preferences.

Ready to bring your own key?

Open Shoulder Surf, go to Settings, and paste your API key.
That's it.