01Run it
Replace the <placeholders> with your own values, or use the builder below.
p202 app notifications02What you get
Pick the shape you need. People get a table. Add
--json, --csv or --ndjson for scripts, or -q for ids only. An AI agent gets compact JSON without asking. All output formats03Build your command
Pick values and the command line writes itself, quoted and ready to paste.
p202 app notificationsSet flags below; the command updates as you type.
04Flags
8 flags, plus the global flags every command takes.
| Flag | What it does |
|---|---|
| --allbool | Fetch all rows across pages |
| --kindstring | Only this kind: reached, correction, retractionreachedcorrectionretraction |
| --limit, -lstring | Max results |
| --offset, -ostring | Pagination offset |
| --registration-idstring | Only this app's postbacks (p202 app list) |
| --statusstring | Only this status: pending, sent, failed, cancelled, suppressedpendingsentfailedcancelledsuppressed |
| --time-fromstring | Queued at or after (unix timestamp) |
| --time-tostring | Queued at or before (unix timestamp) |
05How it works
Lists the notification outbox rows for app installs, newest first: the postback URL, its kind (reached, correction, retraction) and status — pending (waiting or backing off), sent, failed (attempts ran out; last_error says why), cancelled (replaced before it went out) or suppressed (a correction the traffic source has no correction URL for). meta.summary counts every status under the same filters.
06For agents
Running this from an agent
- Read the same facts as JSON:
p202 commands app notifications --json. - With
AI_AGENT,CLAUDECODEor another agent variable set, output is compact JSON and errors arrive on stderr as a JSON envelope with ahint. - Exit codes: 0 ok, 1 bad input, 2 auth, 3 network, 4 server error, 5 partial failure.
{
"path": "p202 app notifications",
"use": "notifications",
"short": "Traffic-source postbacks the app installs' goals queued, and where each stands",
"long": "Lists the notification outbox rows for app installs, newest first: the postback URL, its\nkind (reached, correction, retraction) and status — pending (waiting or backing off),\nsent, failed (attempts ran out; last_error says why), cancelled (replaced before it went\nout) or suppressed (a correction the traffic source has no correction URL for).\nmeta.summary counts every status under the same filters.",
"runnable": true,
"flags": [
{
"name": "all",
"type": "bool",
"default": "false",
"usage": "Fetch all rows across pages",
"required": false
},
{
"name": "kind",
"type": "string",
"default": "",
"usage": "Only this kind: reached, correction, retraction",
"allowed_values": [
"reached",
"correction",
"retraction"
],
"required": false
},
{
"name": "limit",
"shorthand": "l",
"type": "string",
"default": "",
"usage": "Max results",
"required": false
},
{
"name": "offset",
"shorthand": "o",
"type": "string",
"default": "",
"usage": "Pagination offset",
"required": false
},
{
"name": "registration-id",
"type": "string",
"default": "",
"usage": "Only this app's postbacks (`p202 app list`)",
"required": false
},
{
"name": "status",
"type": "string",
"default": "",
"usage": "Only this status: pending, sent, failed, cancelled, suppressed",
"allowed_values": [
"pending",
"sent",
"failed",
"cancelled",
"suppressed"
],
"required": false
},
{
"name": "time-from",
"type": "string",
"default": "",
"usage": "Queued at or after (unix timestamp)",
"required": false
},
{
"name": "time-to",
"type": "string",
"default": "",
"usage": "Queued at or before (unix timestamp)",
"required": false
}
]
}