Production readiness checklist for Apify Actor deployments.
Use when deploying Actors to production, preparing for launch,
or validating Actor configuration before going live.
Trigger: "apify production", "deploy actor to prod",
"apify go-live", "apify launch checklist", "actor production ready".
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
A direct command skips the review prompt. Inspect the source before running it.
Production readiness checklist for Apify Actor deployments.
Use when deploying Actors to production, preparing for launch,
or validating Actor configuration before going live.
Trigger: "apify production", "deploy actor to prod",
"apify go-live", "apify launch checklist", "actor production ready".
Complete checklist for deploying Actors to the Apify platform and integrating them into production applications. Covers Actor configuration, scheduling, monitoring, alerting, and rollback.
Prerequisites
Actor tested locally with apify run
apify login configured with production token
Familiarity with apify-core-workflow-a and apify-deploy-integration
Pre-Deployment Checklist
Actor Configuration
.actor/actor.json has correct name, title, description
INPUT_SCHEMA.json validates all required inputs
Dockerfile uses pinned base image version (apify/actor-node:20, not latest)
Memory set appropriately (start at 1024MB, tune after profiling)
Timeout set with buffer (2x expected runtime)
Code Quality
Actor.main() wraps entry point (handles init/exit/errors)
failedRequestHandler logs failures without crashing Actor
Input validation at Actor start (if (!input?.startUrls) throw ...)
No hardcoded URLs, credentials, or magic numbers
Proxy configured for target sites that block datacenter IPs
maxRequestsPerCrawl set to prevent runaway costs
Data Output
Dataset schema documented (consistent field names)
SUMMARY key-value store record saved with run stats
Large payloads chunked (9MB dataset push limit)
PII sanitized before storage
Instructions
Step 1: Deploy Actor
# Build and push to Apify platform
apify push
# Verify the build succeeded
apify builds ls# Test on platform with production-like input
apify actors call username/my-actor \
--input='{"startUrls":[{"url":"https://target.com"}],"maxItems":10}'
# List available builds
apify builds ls# Roll back to a previous build
curl -X POST \
-H "Authorization: Bearer $APIFY_TOKEN" \
"https://api.apify.com/v2/acts/ACTOR_ID?build=BUILD_NUMBER"# Or redeploy from a git tag
git checkout v1.2.3
apify push
Step 6: Cost Guard
// Set up a cost guard that aborts runs exceeding budgetasyncfunctionrunWithCostGuard(actorId: string,
input: Record<string, unknown>,
maxCostUsd: number,
) {
const run = await client.actor(actorId).start(input);
// Poll every 30 secondsconst pollInterval = setInterval(async () => {
const status = await client.run(run.id).get();
const cost = status.usageTotalUsd ?? 0;
if (cost > maxCostUsd) {
console.error(`Cost guard: $${cost.toFixed(4)} exceeds $${maxCostUsd}. Aborting.`);
await client.run(run.id).abort();
clearInterval(pollInterval);
}
}, 30_000);
const finished = await client.run(run.id).waitForFinish();
clearInterval(pollInterval);
return finished;
}