Endpoints

App store readiness

What an app still needs for Google Play and the App Store, and the steps in order.

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

Plan: Every plan

The "Publish to app stores" window of the editor, said in data: what is ready for the stores, and with way, the steps for Android and iPhone in order. It reads the app's saved code with the same helpers as the window, so it never disagrees with it.

It is free and does not use credits. Viewer access is enough. For the windows and the full walk-through, see Publish to app stores.

Request

Without way, to compare the two ways first:

bash
curl https://www.setherion.com/api/v1/projects/7c1e4a52-9b0d-4f3e-8a61-2d5f0c9e7b14/store \
  -H "Authorization: Bearer $SETHERION_API_KEY"

With way, for the steps:

bash
curl "https://www.setherion.com/api/v1/projects/7c1e4a52-9b0d-4f3e-8a61-2d5f0c9e7b14/store?way=easy" \
  -H "Authorization: Bearer $SETHERION_API_KEY"
ParameterMeaning
wayOptional. easy or native. easy wraps the published website into store packages with PWA Builder, no code. native is the whole app as a phone project that the owner builds on a computer, needed for ads and in-app purchases. Anything else answers 400.

The app must have code. If it is published, the call also asks the live app for its store icon (/icon-512.png), waiting at most 5 seconds.

Response without way

json
{
  "ok": true,
  "app": { "name": "Coffee shop", "url": "https://coffee-shop.setherion.app" },
  "ready": [
    {
      "item": "Published on the web",
      "state": "ok",
      "note": "https://coffee-shop.setherion.app"
    },
    {
      "item": "Store icon",
      "state": "ok",
      "note": "PNG in every size the stores ask for, made when the app is published."
    },
    {
      "item": "Privacy policy page",
      "state": "missing",
      "note": "Both stores ask for a link to one, and none was found in this app.",
      "fix": "Add a Privacy Policy page at /privacy, linked from the footer and from the sign-up screen. Say what the app keeps (the account email and what people enter), why, for how long, that nothing is sold, and how to ask for an account and its data to be deleted. Leave the owner's contact email as a placeholder to fill in."
    }
  ],
  "ways": {
    "easy": "Easy, no code: PWA Builder wraps the published website into store packages. About 2 steps in Setherion, the rest in the stores. Android is done from any computer; iPhone needs a Mac with Xcode.",
    "native": "Native, for developers: the whole app as a phone project (Capacitor). Needed for ads and in-app purchases. Built on the owner's computer (Android Studio; a Mac with Xcode for iPhone), or in the cloud by GitHub when pushed to GitHub: no Android Studio and no Mac."
  },
  "onlyInSetherion": "In Setherion: open the app, Publish, then \"Publish to app stores\". Only there: dropping PWA Builder's ZIP, adding Google Play's key, downloading the phone project or pushing it to GitHub, the store screenshots (every size both stores ask for, free), and the store guidelines check. The window ticks the steps it can see, and keeps the owner's own ticks."
}
FieldTypeMeaning
appobjectThe app's name, and its url or null when it is not published.
readylistWhat is ready and what is missing. See below.
waysobjectOne sentence for each way, easy and native.
onlyInSetherionstringWhat only the Setherion window can do, so a program knows where its reach ends.

The ready list

Each entry has item, state and note, and sometimes fix.

FieldMeaning
itemWhat is checked.
stateok, missing, or unknown when it could not be checked just now.
noteOne sentence saying why.
fixOnly on a missing item the editor can add. The text to send to Edit an app as prompt, once the owner agrees, because an edit spends credits.
The items that can appear
  • Published on the web. ok when the app has an address. missing when it has not: the Easy way packages the published address, so publish first. The Native way works without it.
  • Store icon. Only listed once the app is published. ok when the live app serves the PNG icon, missing when it does not (publish again; an app on its own domain has only the SVG icon for now), unknown when the live app could not be checked.
  • Delete account button. Only listed when people can sign up to the app. Apple refuses such an app without one. missing has a fix.
  • Privacy policy page. Both stores ask for a link to one. missing has a fix.

Response with way

The same fields, and the steps for the way you asked for:

json
{
  "ok": true,
  "app": { "name": "Coffee shop", "url": "https://coffee-shop.setherion.app" },
  "ready": [ "... as above ..." ],
  "ways": { "easy": "...", "native": "..." },
  "way": "easy",
  "android": [
    {
      "step": 1,
      "title": "Make the Android package",
      "meta": "PWA Builder, about 2 minutes",
      "detail": "Open PWA Builder with the app's address filled in. Choose Package for stores, then Android, and download the ZIP.",
      "link": "https://www.pwabuilder.com/reportcard?site=https%3A%2F%2Fcoffee-shop.setherion.app"
    },
    {
      "step": 2,
      "title": "Link the app to your site",
      "meta": "So it opens without a browser's address bar",
      "detail": "In Setherion: open the app, Publish, then \"Publish to app stores\", Easy, Android, this step: drop the ZIP from PWA Builder there. ...",
      "done": false
    }
  ],
  "iphone": [ "... five steps, numbered the same way ..." ],
  "iphoneNotes": [
    "A Mac is needed. The Easy way builds the iPhone app on a Mac with Xcode. The Native way can build it on GitHub's Mac computers instead. Make sure you have one of the two before you pay Apple's $99 a year.",
    "To Apple this looks like a website. Nobody signs in, nothing is saved, and Apple turns down apps that are only a website (guideline 4.2). Sign-in, saved data and features people come back to make it an app. Run the store guidelines check on the first page before you send it."
  ],
  "onlyInSetherion": "..."
}

(Shortened here: the real answer has every step in full.)

FieldTypeMeaning
waystringThe way asked for, easy or native.
androidlistThe Android steps, in order.
iphonelistThe iPhone steps, in order.
iphoneNoteslist of stringsWhat Apple may turn the app down for, each a sentence, titled where the window titles it.

Each step has:

FieldTypeMeaning
stepnumberIts place in the list, from 1.
titlestringThe step's name, the one the window shows.
metastringA short line: how long it takes, what it needs, or what it costs.
detailstringWhat to do. May hold several lines, such as the commands to run.
linkstringWhere to do it, when there is a place. Left out otherwise.
donebooleanOnly on steps Setherion can see for itself on the Easy way for Android: the link to your site and Google Play's key. Left out when it cannot tell.
The steps of each list

Easy, Android: make the Android package, link the app to your site, open a Google Play developer account, upload it and test it, add Google Play's key, fill the store page and release.

Easy, iPhone: open an Apple developer account, make the iPhone package, build it and upload it, try it on your iPhone, fill the store page and send it for review.

Native, Android: download the project, build it, sign it, upload it and test it, release.

Native, iPhone: download the project, build it, sign it and upload it, try it on your iPhone, fill the store page and send it for review.

On the Native way the commands in detail include the extra setup step when the app shows ads or sells things, and the advertising and in-app purchase notes for the store forms.

Errors

StatusWhen
400way 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.