p202 app notifications

Traffic-source postbacks the app installs' goals queued, and where each stands

All commands

01Run it

Replace the <placeholders> with your own values, or use the builder below.

p202 app notifications

02What 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 formats

03Build your command

Pick values and the command line writes itself, quoted and ready to paste.

p202 app notifications

Set flags below; the command updates as you type.

04Flags

8 flags, plus the global flags every command takes.

FlagWhat it does
--allboolFetch all rows across pages
--kindstringOnly this kind: reached, correction, retraction
reachedcorrectionretraction
--limit, -lstringMax results
--offset, -ostringPagination offset
--registration-idstringOnly this app's postbacks (p202 app list)
--statusstringOnly this status: pending, sent, failed, cancelled, suppressed
pendingsentfailedcancelledsuppressed
--time-fromstringQueued at or after (unix timestamp)
--time-tostringQueued 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, CLAUDECODE or another agent variable set, output is compact JSON and errors arrive on stderr as a JSON envelope with a hint.
  • Exit codes: 0 ok, 1 bad input, 2 auth, 3 network, 4 server error, 5 partial failure.
p202 commands app notifications --json
{
  "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
    }
  ]
}