SUBMITTED → IN REVIEW

Certification & review

Once you're done testing, request review. A reviewer runs the same five probes you can check yourself — approval is refused until every one of them passes.

Request review

POST /partner-apps/developer/apps/{id}/request-review/
curl -X POST \
  -H "Authorization: Bearer $DEV_TOKEN" \
  https://api.sunesix.com/partner-apps/developer/apps/42/request-review/

Moves your app from SANDBOX to SUBMITTED, then a reviewer marks it IN_REVIEW. This is refused if your developer account isn't verified yet — see Verification.

The probes

ProbeFails when
capabilities_declaredYou requested a capability the platform doesn't implement.
capability:<name>A requested read handler errors against sandbox data.
inference_allowlistai.invoke requested with no allowed_models, or a model not in the registry.
outbound_handshakeYour endpoint is unreachable, or its response body has no allow key.
sandbox_confinementAn active key for your app exists outside the sandbox tenant.

Reading results

GET /partner-apps/developer/apps/{id}/certification/
{
  "success": true,
  "data": {
    "passed_at": null,
    "results": [
      { "probe": "capabilities_declared", "passed": true },
      { "probe": "outbound_handshake", "passed": false, "detail": "connection timed out" }
    ]
  }
}

Probes report structured pass/fail results rather than raising — a reviewer needs to see which check failed, and your endpoint being briefly down during certification is an expected outcome, not a fatal one.

If you're rejected

You'll get a reason. Fix it and submit again — a rejected app goes straight back through SANDBOX, no need to recreate the draft. A failing re-run of certification clears any previous pass; once approved, that pass is snapshotted onto your app's version so a later failure can't retroactively unstamp it.