Syndai Docs

Read an app's runtime

GET
/api/v1/external/coding/customers/{customer_id}/apps/{publication_id}/runtime

One live app's runtime picture. missing_secrets: secret names the app's server code declares that production does not hold (add them in Secrets). ai: the monthly limit on the app's no-key AI and this UTC month's use, both in USD the workspace pays. jobs: the scheduled jobs the live build declares (every as declared: 15m, 1h, 1d or milliseconds) and each one's last run. traffic: the last 30 days in the tz query zone (an IANA name; unknown or absent = UTC): visits per day (people arriving from outside the site, oldest first, today last), the top 5 sources then other, taps by kind (call, email, message, directions, link) and this week against the one before; null when visit counts are unavailable, never zero. outcomes: paid orders, their revenue net of refunds per currency in minor units, requests and sign-ups over the same 30 days; null unless the caller is the workspace's owner or an admin. since: visits, taps and (owner or admin) paid orders since the first stored UTC day from_day; null before the first daily rollup. mail: messages a sending limit held back in the last 30 days.

Authorization

CustomerApiKey
headerAuthorizationBearer <API Key>

Customer API key sent as a bearer token

Path Parameters

customer_id*string
Formatuuid
publication_id*string
Formatuuid

Query Parameters

tz?string|null

Response Body

Request fulfilled, document follows

application/json
  1. response
ai*
changes?array<>|null
errors?array<>|null
jobs*array<>
mail*
members_revenue?array<>|null
missing_secrets*array<string>
outcomes?|null
since?|null
traffic?|null
Example Request
curl -X GET 'https://api.syndai.ai/api/v1/external/coding/customers/497f6eca-6276-4993-bfeb-53cbbbba6f08/apps/497f6eca-6276-4993-bfeb-53cbbbba6f08/runtime'
Example Response
{  "ai": {    "cap_usd": 0,    "member_cap_usd": 0,    "used_usd": 0  },  "changes": [    {      "after": {        "outcomes": 0,        "visits": 0      },      "before": {        "outcomes": 0,        "visits": 0      },      "days_left": 0,      "deployment_id": "string",      "kind": "string",      "live_at": "string",      "per_100": [        0,        0      ],      "run_id": "string",      "title": "string",      "verdict": "string"    }  ],  "errors": [    {      "count_7d": 0,      "count_total": 0,      "fingerprint": "string",      "first_seen": "string",      "frames": [        {          "line": 0,          "path": "string"        }      ],      "last_seen": "string",      "message": "string",      "name": "string",      "new_in_live": true,      "route": "string"    }  ],  "jobs": [    {      "every": "string",      "last_run_at": "2019-08-24T14:15:22Z",      "name": "string"    }  ],  "mail": {    "capped_30d": 0  },  "members_revenue": [    {      "amount_minor": 0,      "currency": "string"    }  ],  "missing_secrets": [    "string"  ],  "outcomes": {    "orders": 0,    "requests": 0,    "revenue": [      {        "amount_minor": 0,        "currency": "string"      }    ],    "signups": 0  },  "since": {    "from_day": "2019-08-24",    "orders": 0,    "taps": {      "property1": 0,      "property2": 0    },    "visits": 0  },  "traffic": {    "days": [      {        "date": "string",        "visits": 0      }    ],    "pages": [      {        "path": "string",        "views": 0      }    ],    "sources": [      {        "key": "string",        "label": "string",        "visits": 0      }    ],    "taps": {      "property1": 0,      "property2": 0    },    "week": {      "last7": 0,      "prior7": 0    }  }}