Security &
Data Handling
ApifyForge is an analytics platform for Apify web scraping actors. Your Apify API token is handled with AES-256-GCM encryption at rest, TLS 1.3 in transit, and is revocable in one click from Settings or from Apify Console at any time. Two connection flows are supported: the browser flow (paste a scoped token in Settings — stored encrypted server-side) and the CLI flow (npx apifyforge run— token stays on your machine). ApifyForge accesses only 5 categories of run metadata (status, duration, resource consumption, dataset item counts, build history) and explicitly excludes 5 sensitive data types: source code, environment variables, dataset items, proxy passwords, and billing information — following the data-minimization principle defined in GDPR Article 5(1)(c). Dashboard authentication uses OAuth 2.0 via GitHub or Google through NextAuth.js, fully decoupled from Apify credentials. All connections are encrypted with TLS 1.3 at the Cloudflare edge.
Last updated: May 11, 2026
Two flows: encrypted-at-rest in the browser, or local-only via CLI
Browser flow (default).You paste a scoped Apify API token into Settings → Apify API Token. The token is encrypted with AES-256-GCM before it touches the database, using a server-held key derived from a 32-byte TOKEN_ENCRYPTION_KEY environment variable. Each ciphertext carries its own 12-byte IV and GCM authentication tag — tampering invalidates the record. The token is decrypted in memory only when the dashboard needs to call the Apify API on your behalf. Click Delete token in Settings to clear it from the database immediately.
CLI flow (alternative). If you would rather not store a token on ApifyForge servers at all, run npx apifyforge run <tool>. The CLI reads your token from APIFY_TOKEN or .env on your machine, talks to the Apify API directly, and uploads only computed analytics to your dashboard. The token never reaches ApifyForge servers.
Regardless of flow, you can revoke the token in Apify Console → Integrations at any time, which neutralises every copy of it everywhere. Create a dedicated token for ApifyForge rather than reusing your primary one so you can revoke it independently.
Dashboard auth is separate from your Apify credentials
ApifyForge dashboard authentication uses GitHub or Google OAuth 2.0 (as defined in RFC 6749) via NextAuth.js. This means your dashboard identity and your Apify credentials are completely decoupled — 2 separate credential systems with 0 overlap. Signing in at apifyforge.com/connect creates a session tied only to your OAuth provider. Your Apify API token is a separate credential you supply later, either via the browser flow (stored AES-256-GCM-encrypted) or via the CLI flow (kept on your machine).
5 metadata types accessed, 5 sensitive types excluded
ApifyForge follows the data minimization principle defined in GDPR Article 5(1)(c): it accesses only the metadata required for dashboard analytics. The table below shows exactly what ApifyForge reads from the Apify API v2 and what it never touches.
| Data Type | ApifyForge Access | Apify API Endpoint | Contains Secrets? |
|---|---|---|---|
| Actor list & metadata | Reads | GET /v2/acts | No |
| Run history & status | Reads | GET /v2/acts/{id}/runs | No |
| Dataset metadata | Reads | GET /v2/datasets | No |
| Build logs & versions | Reads | GET /v2/acts/{id}/builds | No |
| Usage & credit stats | Reads | GET /v2/users/me/usage | No |
| Actor source code | Never | N/A | Yes |
| Environment variables | Never | N/A | Yes |
| Dataset items (scraped data) | Never | N/A | Possibly |
| Proxy passwords | Never | N/A | Yes |
| Billing & payment info | Never | N/A | Yes |
Computed analytics cached temporarily, cleared on disconnect
ApifyForge computes analytics from Apify API metadata — revenue trends, success rates, quality scores, fleet health metrics — and caches the results in PostgreSQL so the dashboard renders instantly. This amounts to approximately 2-5 KB of metadata per connected account on top of your AES-256-GCM-encrypted token if you used the browser flow.
Cache is refreshed at regular intervals. When you disconnect your account (Settings → Disconnect), both the cached analytics and the encrypted token are purged from PostgreSQL immediately. No previous cached data is restored if you reconnect — everything is pulled fresh from the Apify API.
4-layer infrastructure with envelope-encrypted credentials
Application
Next.js 15 with server-side rendering, TypeScript strict mode
Database
PostgreSQL with AES-256 encryption at the storage layer; Apify API tokens additionally AES-256-GCM-encrypted at the application layer with a server-held key
Edge
Cloudflare DNS, CDN, WAF — DDoS protection, TLS 1.3, HSTS enabled
Auth
GitHub & Google OAuth 2.0 via NextAuth.js — 2 providers, 0 passwords stored, HttpOnly session cookies
No first-party model inference
ApifyForge does not train, host, or run its own AI models. Features like the LLM Optimizer and Actor Recommender use external model APIs (such as OpenAI) to process requests. Your actor metadata is sent to these APIs only when you explicitly trigger an AI-powered feature — 0 background data transmissions to AI providers occur without your action. As documented in OpenAI's API data usage policy, data sent via the API is not used to train OpenAI models.
Methodology and disclaimers
The Compliance Scanner checks actor configurations against a set of heuristic rules derived from Apify's published guidelines and common best practices. It evaluates metadata completeness, schema compliance, input validation, and documentation quality.
Important: The Compliance Scanner provides developer guidance only. It is not legal advice and does not constitute a legal, regulatory, or security audit. For legal compliance requirements (GDPR, CCPA, etc.), consult a qualified legal professional. ApifyForge makes no warranty about the completeness or accuracy of compliance checks.
How to verify ApifyForge's security claims (4 steps)
ApifyForge encourages users to independently verify its security model rather than take claims at face value. The following 4 steps confirm the token-handling behaviour matches what is described above:
- Pick a scoped token. In Apify Console → Integrations create a dedicated token named
apifyforge-dashboardwith the minimum scopes you are comfortable granting. Revoking this token later neutralises every copy of it, including the encrypted record at ApifyForge. - Confirm one-click deletion (browser flow). Paste the token into Settings → Apify API Token. The dashboard should immediately recognise the connection. Click Delete token. The next actor-run attempt should fail with a “no token configured” error, confirming the encrypted record was removed.
- Inspect network traffic (CLI flow). Run
npx apifyforge run <tool>with a network monitor (Wireshark, mitmproxy). The CLI's outboundAPIFY_TOKENtraffic terminates atapi.apify.comonly; outbound traffic toapifyforge.comcarries aggregated analytics, no raw token. - Revoke and test. Revoke the token in Apify Console. The next API call from the dashboard or the CLI fails with an Apify-side 401 — confirming the token is dead everywhere and cannot be reused. Disconnecting at Settings → Disconnect also purges the encrypted record from the ApifyForge database.
Data processing under GDPR
Under GDPR Article 6(1)(b), ApifyForge processes two categories of personal data necessary for contract performance: your OAuth identity (name, email, avatar from GitHub or Google) and computed analytics derived from Apify API metadata. Users may exercise their right to erasure under Article 17 by disconnecting their account or emailing [email protected].
Actor payload data — the actual content your actors scrape, which may contain personally identifiable information (PII) — is not accessed, transmitted to, or stored by ApifyForge. Under the data minimization principle (Article 5(1)(c)), ApifyForge reads only dataset metadata (item counts, schema information), never the items themselves. Dataset items remain entirely on Apify's infrastructure. If you used the browser flow, ApifyForge additionally stores an AES-256-GCM-encrypted copy of your Apify API token, deletable in one click and revocable on Apify's side at any time.
Frequently asked questions
Is ApifyForge safe to use?
Yes. ApifyForge offers two connection flows. The browser flow (default) stores your Apify API token encrypted with AES-256-GCM in PostgreSQL, with TLS 1.3 in transit, and lets you delete it one click from Settings or revoke it on Apify's side at any time. The CLI flow (`npx apifyforge run <tool>`) keeps the token entirely on your local machine — only computed analytics (revenue figures, success rates, quality scores) reach the dashboard. Both flows exclude 5 sensitive data types: actor source code, environment variables, dataset items, proxy passwords, and billing information.
What data does ApifyForge store?
ApifyForge stores three categories of data: (1) your OAuth identity (name, email, avatar from GitHub or Google), (2) computed analytics derived from Apify API metadata — revenue trends, success rates, quality scores, and fleet health metrics, and (3) your Apify API token if you used the browser-paste flow, encrypted with AES-256-GCM at rest using a server-held key. If you used the CLI flow instead, no Apify token is stored on ApifyForge servers. ApifyForge never stores actor source code, environment variables, scraped dataset items, proxy passwords, or payment card data.
Does ApifyForge access my scraped data?
No. ApifyForge accesses only dataset metadata such as item counts and schema information via the Apify API's GET /v2/datasets endpoint. The actual content of your dataset items — the data your actors scrape — remains on Apify's infrastructure and is never transmitted to or stored by ApifyForge. As documented in the Apify API reference, dataset metadata and dataset items are separate endpoints with different access scopes.
How does ApifyForge authentication work?
ApifyForge uses GitHub or Google OAuth 2.0 for dashboard authentication via NextAuth.js, an open-source authentication library for Next.js with over 24,000 GitHub stars. Your dashboard identity and your Apify credentials are fully decoupled — signing in at apifyforge.com/connect creates a session tied only to your OAuth provider. Your Apify API token is a separate credential you supply later: either pasted into Settings (stored AES-256-GCM-encrypted in PostgreSQL) or kept entirely on your machine via the CLI flow.
Can I delete my data from ApifyForge?
Yes. When you disconnect your account via Settings, all cached analytics data associated with your account is purged from ApifyForge's PostgreSQL database immediately. No previous cached data is restored if you reconnect — everything is pulled fresh from the Apify API. You can also email [email protected] to request full data deletion under GDPR Article 17 (right to erasure) or CCPA Section 1798.105.
Is ApifyForge GDPR compliant?
ApifyForge processes only two categories of personal data under GDPR: OAuth identity information (name, email, avatar) and computed analytics metadata. Under GDPR Article 5(1)(c) — data minimization — ApifyForge collects only data necessary for dashboard functionality. Actor payload data — the actual content your actors scrape, which may contain PII — is never accessed, transmitted to, or stored by ApifyForge. Dataset items remain entirely on Apify's infrastructure.
What encryption does ApifyForge use?
All data in transit between your browser and ApifyForge is encrypted with TLS 1.3, enforced at the Cloudflare edge. Data at rest in PostgreSQL is encrypted using AES-256 at the storage layer. OAuth tokens from GitHub and Google are stored as encrypted session cookies with HttpOnly, Secure, and SameSite=Lax attributes, following OWASP session management guidelines.
What happens to my data if ApifyForge shuts down?
ApifyForge stores computed analytics metadata, your OAuth identity, and (if you used the browser flow) your AES-256-GCM-encrypted Apify API token. A shutdown would affect only your dashboard access. Revoke your Apify token in Apify Console at any time — that immediately neutralises the stored encrypted copy. Your actors, datasets, and source code remain on Apify's infrastructure, completely unaffected. Cached revenue trends and quality scores can be recomputed from Apify's API at any time.
Questions about security or data handling? Contact [email protected]. For details on what personal data we collect and your rights, see our Privacy Notice.