Syndai Docs

Queue the tested version for release

POST
/api/v1/external/coding/customers/{customer_id}/repositories/{repository_id}/store/releases

Queues the exact tested builds for release without rebuilding (202): iOS is submitted for App Review and Google Play production goes out, each platform progressing on its own; a first release reaches everyone after review, an update is phased (iOS phased release; Play from 5%, advanced daily). version must be the one the card offers (409 otherwise); notes is What's New per locale (at most 500 characters each); platforms selects a store, release_type is Apple's AFTER_APPROVAL or MANUAL, and listing_mode keeps the published metadata unless approved listing changes are selected. Progress is open-ended: poll GET .../store rather than assuming an order of steps. Signed-in owners and admins only; a release can't be taken back from people who already updated.

Authorization

CustomerApiKey
headerAuthorizationBearer <API Key>

Customer API key sent as a bearer token

Path Parameters

customer_id*string
Formatuuid
repository_id*string
Formatuuid

Request Body

application/json
  1. body
listing_mode?string
Default"published"
Value in"published""approved"
notes*
platforms?array<>|
Items1 <= items <= 2
release_type?|
Value in"AFTER_APPROVAL""MANUAL"null
version*string
Length1 <= length <= 32

Response Body

Request accepted, processing continues off-line

application/json
  1. response
action*
app?|null
builds*array<>
closed_test?|null
doctor?array<>
eligible*boolean
google_email?string|null
listing?|null
platforms*array<>
quotes?
readiness?array<>
release_notes?|null
settings?|null
shell?|null
steps*array<>
warnings?array<string>
Example Request
curl -X POST 'https://api.syndai.ai/api/v1/external/coding/customers/497f6eca-6276-4993-bfeb-53cbbbba6f08/repositories/497f6eca-6276-4993-bfeb-53cbbbba6f08/store/releases' \  -H 'Content-Type: application/json' \  -d '{  "notes": {    "property1": "string",    "property2": "string"  },  "version": "string"}'
Example Response
{  "action": {    "blocked": "string",    "first_release": false,    "kind": "string",    "platforms": [      "string"    ],    "version": "string"  },  "app": {    "android_package": "string",    "app_root": "string",    "auto_send": true,    "ios_bundle_id": "string",    "source": "repo"  },  "builds": [    {      "build_number": 0,      "cause": "string",      "created_at": "string",      "finished_at": "string",      "id": "string",      "platform": "string",      "release_status": "string",      "release_work": {        "detail": "string",        "error": "string",        "id": "string",        "phase": "string",        "platform": "string",        "state": "string"      },      "sentence": "string",      "sha": "",      "status": "string",      "version": "string"    }  ],  "closed_test": {    "days": 0,    "days_needed": 0,    "opt_in_url": "string",    "production_ready": true,    "testers": 0,    "testers_needed": 0,    "track": "string"  },  "doctor": [    {      "evidence": "string",      "fix": {        "field": "string",        "kind": "string",        "label": "string",        "locale": "string",        "prompt": "string",        "url": "string"      },      "guideline": "string",      "guideline_url": "string",      "id": "string",      "platform": "string",      "severity": "string",      "subject": "string",      "title": "string"    }  ],  "eligible": true,  "google_email": "string",  "listing": {    "imported_at": "string",    "locales": [      {        "changed": [          "string"        ],        "locale": "string",        "platform": "string",        "state": "string"      }    ],    "needs_tick": 0  },  "platforms": [    {      "cause": "string",      "install": [        {          "kind": "string",          "url": "string"        }      ],      "live": {        "release_status": "string",        "rollout_fraction": 0,        "version": "string"      },      "platform": "string",      "progress": {        "sha": "string",        "started_at": "string",        "typical_seconds": 0      },      "rejection": {        "at": "string",        "guideline": "string",        "guideline_url": "string",        "reason": "string",        "resubmit": false      },      "sentence": "string",      "state": "string",      "step": "string",      "store_url": "string",      "testing": {        "build_number": 0,        "version": "string"      },      "url": "string"    }  ],  "quotes": {    "artwork_usd": 4,    "build_android_usd": 0,    "build_ios_usd": 0,    "listing_per_language_usd": 0,    "shoot_usd": 0  },  "readiness": [    {      "done": true,      "evidence": "string",      "key": "string",      "label": "string",      "tickable": true,      "url": "string"    }  ],  "release_notes": {    "property1": "string",    "property2": "string"  },  "settings": {    "auto_update": true,    "build": [      {        "field": "string",        "source": "string",        "value": "string"      }    ],    "delivery": [      {        "automatic": true,        "platform": "string",        "release_type": "string"      }    ],    "platforms": [      {        "detected": true,        "on": true,        "platform": "string"      }    ],    "release_branch": "string",    "release_branch_source": "string"  },  "shell": {    "attested": true,    "data_safety": [      {        "label": "string",        "value": "string"      }    ],    "deletion_url": "string",    "hosts": [      "string"    ],    "package": "string",    "report_url": "string",    "rules_url": "string"  },  "steps": [    {      "done": true,      "key": "string",      "sentence": "string",      "url": "string"    }  ],  "warnings": [    "string"  ]}