Skip to content

feat(push): print Standby URL when actor.json.usesStandbyMode is true#1259

Draft
DaveHanns wants to merge 1 commit into
apify:masterfrom
DaveHanns:fix/f72-standby-url-on-push
Draft

feat(push): print Standby URL when actor.json.usesStandbyMode is true#1259
DaveHanns wants to merge 1 commit into
apify:masterfrom
DaveHanns:fix/f72-standby-url-on-push

Conversation

@DaveHanns

Copy link
Copy Markdown
Contributor

Summary

When pushing an Actor with usesStandbyMode: true in .actor/actor.json, print the public Standby endpoint alongside the Actor URL and Build URL, and expose it as actor.standbyUrl in --json output.

Rationale

Standby Actors are reachable at a deterministic host:

https://<username>--<name>.apify.actor

Today apify push prints only the Console-side Actor URL and Build URL:

Actor URL: https://console.apify.com/actors/<id>
Build URL: https://console.apify.com/actors/<id>#/builds/<n>

After enabling Standby locally there's no signal from the CLI that a public HTTP endpoint even exists — callers have to open the Console UI, or guess the <user>--<actor>.apify.actor host format. That's especially painful for automation / scripts that push then immediately want to curl the standby endpoint.

Change

In src/commands/actors/push.ts, after the build resolves:

  • If actorConfig.usesStandbyMode is truthy, compute https://${actor.username}--${actor.name}.apify.actor from the Actor record we already fetched.
  • Append Standby URL: <url> to the plaintext push summary (right after Build URL).
  • Expose the same value as actor.standbyUrl in the --json result payload (optional field, only present when Standby is enabled locally).

Non-Standby pushes are unaffected — no extra line, no new JSON key.

Example output

Before, for a Standby Actor:

Apify push result: SUCCEEDED
Upload: SUCCEEDED
Build: SUCCEEDED
Actor ID: xxxxxxxxxxxxxxxxx
Build ID: yyyyyyyyyyyyyyyyy
Build number: 0.0.1

Actor URL: https://console.apify.com/actors/xxxxxxxxxxxxxxxxx
Build URL: https://console.apify.com/actors/xxxxxxxxxxxxxxxxx#/builds/0.0.1

After:

Apify push result: SUCCEEDED
Upload: SUCCEEDED
Build: SUCCEEDED
Actor ID: xxxxxxxxxxxxxxxxx
Build ID: yyyyyyyyyyyyyyyyy
Build number: 0.0.1

Actor URL: https://console.apify.com/actors/xxxxxxxxxxxxxxxxx
Build URL: https://console.apify.com/actors/xxxxxxxxxxxxxxxxx#/builds/0.0.1
Standby URL: https://myuser--my-standby-actor.apify.actor

Test plan

  • apify push on an Actor with .actor/actor.json.usesStandbyMode = true prints Standby URL: https://<username>--<name>.apify.actor after Build URL:.
  • apify push --json on the same Actor emits actor.standbyUrl with the same value.
  • apify push on an Actor without usesStandbyMode prints no Standby URL: line and no actor.standbyUrl key in JSON output.

Surfaced during an evaluation of Apify surfaces for agent-driven Actor development.

When pushing an Actor that opts into Standby mode via
`.actor/actor.json` (`usesStandbyMode: true`), append the public
Standby endpoint to the push summary alongside the Actor URL and
Build URL, and expose it as `actor.standbyUrl` in `--json` output.

Before this change, callers who just pushed a Standby Actor had no
signal that a Standby endpoint exists, and had to either open the
Console UI or guess the host format. The public host is
deterministic — `https://<username>--<name>.apify.actor` — so we can
compute it directly from the Actor record we already fetched.

The line is only emitted when `usesStandbyMode` is set locally, so
non-Standby pushes are unaffected.

Surfaced during an evaluation of Apify surfaces for agent-driven Actor development.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@DaveHanns DaveHanns requested a review from l2ysho as a code owner July 4, 2026 22:59
@DaveHanns DaveHanns marked this pull request as draft July 5, 2026 11:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants