PlatformsDiscordBackground

discordApiUsersMeBillingUserOffer

Domainbackground
Kindendpoint
doc_id—
Pathdiscord.com/api/users/@me/billing/user-offer
Sendsallow_triggers
Readsuser_trial_offer, user_discount_offer.id, user_discount_offer.user_id, user_discount_offer.discount_id, user_discount_offer.applied_at, user_discount_offer.expires_at, user_discount_offer.discount, user_discount
Called fromruns/inspect/20261030T222341_sourcedandsoldtothehighestbidder/script1.js:208 app_store_parental_revocation, runs/inspect/20261030T222341_sourcedandsoldtothehighestbidder/script1036.js:1 parse, runs/inspect/20261030T222341_sourcedandsoldtothehighestbidder/script1221.js:2 anonymous, runs/inspect/20261028T074137_sourcedandsoldtothehighestbidder/script1245.js:2 anonymous
reaev_065e7ad37dcb5911d240f9de7d6e2882220c5a8d7c025d92b46a23de59cf297c

Seen 6 time(s) in 4 run(s).

ActionOur stepTimesStatusTookAfter step startErrors
inspectstep 1: goto /channels/@me/<id>1200452 ms11810 ms—
inspectstep 5: click e401200456 ms12896 ms—
inspectstep 9: goto /channels/@me1200442 ms9543 ms—
inspectstep 25: goto /channels/@me1200407 ms8653 ms—
inspectstep 1: goto /login1200386 ms18482 ms—
inspectstep 2: snapshot1200404 ms51730 ms—

What it sent and what came back (the newest 3 from our runs)

Read from each run's own recording (rule 73), secrets and signed link tokens taken out. Kept in ~/.logCli/rea/clientFacts.json, so it stays after the run is pruned.

runs/inspect/20261030T222341_sourcedandsoldtothehighestbidder, step 2: snapshot: 200, 404 ms

Sent:

{
  "allow_triggers": true
}

Answered:

{
  "user_trial_offer": null,
  "user_discount_offer": {
    "id": "1511280910626980021",
    "user_id": "1434443116663930960",
    "discount_id": "1215366184820539392",
    "applied_at": null,
    "expires_at": "2026-11-02T19:32:04.567388+00:00",
    "discount": {
      "id": "1215366184820539392",
      "amount": 40,
      "starts_at": null,
      "ends_at": null,
      "status": 2,
      "created_at": "2024-03-08T00:31:36.995388+00:00",
      "sku_ids": null,
      "sku_group_ids": null,
      "plan_ids": [
        "511651880837840896"
      ],
      "user_usage_limit_interval": 3,
      "user_usage_limit_interval_count": 1,
      "user_usage_limit": 1
    }
  },
  "user_discount": null
}

runs/inspect/20261028T074137_sourcedandsoldtothehighestbidder, step 1: goto /login: 200, 386 ms

Sent:

{
  "allow_triggers": true
}

Answered:

{
  "user_trial_offer": null,
  "user_discount_offer": {
    "id": "1511280910626980021",
    "user_id": "1434443116663930960",
    "discount_id": "1215366184820539392",
    "applied_at": null,
    "expires_at": "2026-11-02T19:32:04.567388+00:00",
    "discount": {
      "id": "1215366184820539392",
      "amount": 40,
      "starts_at": null,
      "ends_at": null,
      "status": 2,
      "created_at": "2024-03-08T00:31:36.995388+00:00",
      "sku_ids": null,
      "sku_group_ids": null,
      "plan_ids": [
        "511651880837840896"
      ],
      "user_usage_limit_interval": 3,
      "user_usage_limit_interval_count": 1,
      "user_usage_limit": 1
    }
  },
  "user_discount": null
}

runs/inspect/20261028T065202_sourcedandsoldtothehighestbidder, step 1: goto /channels/@me/<id>: 200, 452 ms

Sent:

{
  "allow_triggers": true
}

Answered:

{
  "user_trial_offer": null,
  "user_discount_offer": {
    "id": "1511280910626980021",
    "user_id": "1434443116663930960",
    "discount_id": "1215366184820539392",
    "applied_at": null,
    "expires_at": "2026-11-02T19:32:04.567388+00:00",
    "discount": {
      "id": "1215366184820539392",
      "amount": 40,
      "starts_at": null,
      "ends_at": null,
      "status": 2,
      "created_at": "2024-03-08T00:31:36.995388+00:00",
      "sku_ids": null,
      "sku_group_ids": null,
      "plan_ids": [
        "511651880837840896"
      ],
      "user_usage_limit_interval": 3,
      "user_usage_limit_interval_count": 1,
      "user_usage_limit": 1
    }
  },
  "user_discount": null
}

What it does

Asks which Nitro offer the account may be shown.

What our machine does with it

Nothing in log-cli waits for it or reads it. It is part of what Discord's client loads around the page; a watch or a send never depends on it.

What can go wrong

The account carries on whatever it answers; a failure here changes nothing for our steps.