Endpoints

Store privacy answers

Answers for the Google Play Data safety form and the App Store App Privacy form, read from the app code.

GEThttps://www.setherion.com/api/v1/projects/{id}/store/privacy

Plan: Every plan

Google Play's Data safety form and the App Store's App Privacy form are the ones a first app stalls on. They ask about data types the owner never chose by name, such as an advertising id or a crash log. This call answers both from what the app's code does: whether people sign in, what is saved, whether photos or location are used, whether the phone project shows ads or sells things, and what Setherion adds to a published site.

It is free and does not use credits. Viewer access is enough. The answers are the ones the "Publish to app stores" window shows in its steps. See Publish to app stores.

These are suggestions read from the code, for the owner to check before sending. They are not legal advice. Where a guess is safer one way, the answer declares the data rather than leaves it out, because a store forgives an extra line and removes an app for a missing one.

Request

way is required here, because it changes the answers.

bash
curl "https://www.setherion.com/api/v1/projects/7c1e4a52-9b0d-4f3e-8a61-2d5f0c9e7b14/store/privacy?way=easy" \
  -H "Authorization: Bearer $SETHERION_API_KEY"
ParameterMeaning
wayRequired. easy or native. The Easy way wraps the published website, so its answers include the page-view count, the random visitor id and the error reports that Setherion adds to every published site. The Native way does not, but may include ads and in-app purchases.

Response

json
{
  "ok": true,
  "way": "easy",
  "note": "Suggestions read from the app's code, for the owner to check before sending. Where a guess is safer one way, they declare rather than leave out.",
  "googlePlayDataSafety": "Google Play: Data safety\n\nDoes your app collect or share any of the required user data types?\n  Yes\nIs all of the user data collected by your app encrypted in transit?\n  Yes. Everything goes over HTTPS.\n\nData types:\n- App activity > App interactions: collected, not shared, required. Purposes: Analytics.\n  (Setherion counts the pages people open, under a random id kept in the app, for your visitor numbers.)\n- Device or other IDs > Device or other IDs: collected, not shared, required. Purposes: Analytics.\n  (That random id tells one visitor from another, nothing more.)\n- App info and performance > Crash logs: collected, not shared, required. Purposes: App functionality, Analytics.\n  (When the app hits an error, Setherion receives the error message, so you can fix it.)\n\nIf you connected Google Analytics to this app, it also collects app interactions and an id for Analytics.",
  "appStoreAppPrivacy": "App Store: App Privacy\n\nDo you or your third-party partners collect data from this app?\n  Yes, we collect data from this app\nIs any of it used to track people (across other companies' apps and websites)?\n  No\n\nData types:\n- Usage Data > Product Interaction: not linked to the user, not used for tracking. Purposes: Analytics.\n  (Setherion counts the pages people open, under a random id kept in the app, for your visitor numbers.)\n- Identifiers > Device ID: not linked to the user, not used for tracking. Purposes: Analytics.\n  (That random id tells one visitor from another, nothing more.)\n- Diagnostics > Crash Data: not linked to the user, not used for tracking. Purposes: App Functionality, Analytics.\n  (When the app hits an error, Setherion receives the error message, so you can fix it.)\n\nIf you connected Google Analytics to this app, it also collects app interactions and an id for Analytics."
}
FieldTypeMeaning
waystringThe way you asked for.
notestringThe warning above, to show beside the answers.
googlePlayDataSafetystringThe Data safety form, as plain text with line breaks (\n).
appStoreAppPrivacystringThe App Privacy form, as plain text with line breaks.

Each text starts with its form's name, then the form's questions with the answer under each, then Data types: with one line per type and the reason in brackets under it, then any notes. Print it as it is, or keep it beside the form while you fill it in.

What the answers are read from
  • Sign-in. Email address and user id are declared when people sign up to the app. The form then also asks how accounts are made and whether people can ask for their data to be deleted. If the app has no Delete account button, the answer says to add one first, and the store guide offers the request that adds it.
  • Saved data and AI. What people enter is declared as user content when the app saves records or sends text to an AI service. A note reminds the owner to declare names, phone numbers, addresses or messages too, if people enter them.
  • Photos and videos. When the app has a file input for images or video, or uses the camera.
  • Location. When the app asks the phone where it is.
  • Purchases. When the app takes payments through Stripe, or on the Native way sells in-app purchases.
  • Ads (Native way only). The advertising id, rough location and ad interactions are declared as shared, and tracking is answered Yes on the App Store form. A note says to compare the lines with Google AdMob's own list.
  • Published website (Easy way only). Page views, the random visitor id and crash logs. A note says that Google Analytics, if connected, collects more.

Setherion's own files inside the app are left out, so they do not count as the app's own doing.

A Native app that collects nothing gets No to the first question of each form and no data types. An Easy one always has the website entries above.

Errors

StatusWhen
400way is missing, or is something other than easy or native.
401The key is missing, wrong or revoked.
404There is no such app, or your key cannot open it.
409The app has no code yet. Build it in Setherion first.
The exact sentences
Statuserror
400way is "easy" or "native".
404No such app on this account.
409This app has no code yet. Build it in Setherion first.

Was this page helpful?

Join the community

Questions, ideas and what others are building.