|
| 1 | +--- |
| 2 | +title: Permissions |
| 3 | +description: Learn how to declare and manage permissions for your Actor, what access levels mean, and how to build secure, trusted Actors for Apify users. |
| 4 | +sidebar_position: 7.5 |
| 5 | +slug: /actors/development/permissions |
| 6 | +--- |
| 7 | + |
| 8 | +**Learn how to declare and manage permissions for your Actor, what access levels mean, and how to build secure, trusted Actors for Apify users.** |
| 9 | + |
| 10 | +--- |
| 11 | + |
| 12 | +Every time a user runs your Actor, it runs under their Apify account. **Actor Permissions** is an Actor level setting that defines the level of access your Actor needs to be able to run. This gives users transparency and control over what data your Actor can access, building trust in your tools. |
| 13 | + |
| 14 | +There are two levels of access your Actors can request: |
| 15 | +- **Limited permissions (preferred):** Actors with this permission level have restricted access, primarily to their own storages and the data they generate. They cannot access other user data on the Apify platform. |
| 16 | +- **Full permissions:** This level grants an Actor access to all of a user's Apify account data. |
| 17 | + |
| 18 | +Most Actors should |
| 19 | + |
| 20 | +## How Actor permissions work |
| 21 | + |
| 22 | +When a user runs an Actor, it receives an Apify API token. This token is injected to the Actor's runtime and has a scope of access as requested by the Actor permission level. |
| 23 | + |
| 24 | +Actors with **full permissions** receive a token with full access to the users account, this token grants access to the user's entire Apify account via Apify API. |
| 25 | + |
| 26 | +Actors with **limited permissions** receive [a restricted scoped token](link). This token only allows the Actor to perform a specific set of actions, which covers the vast majority of common use cases. A limited-permission Actor can: |
| 27 | + |
| 28 | +- Read and write to its default storages. |
| 29 | +- Update the current run’s status, abort the run, or metamorph to another Actor (as long as it also has limited permissions). |
| 30 | +- Read basic user information (whether the user is paying, proxy password, public profile). |
| 31 | +- Read or also write to storages provided via Actor input (sample scenario: the user provides the Actor with a dataset that the Actor should write into). |
| 32 | +- Run any other Actor with limited permissions. |
| 33 | +- Create any additional storage, and write to that storage. |
| 34 | +- Read and write to storages created in previous runs. |
| 35 | + |
| 36 | +This approach ensures your Actor has everything it needs to function while protecting user data from unnecessary exposure. |
| 37 | + |
| 38 | +### Declaring permissions |
| 39 | + |
| 40 | +You can set the permission level for your Actor in the Apify Console under its **Settings** tab. All the existing Actors are configured to use full permissions, but the plan is to make limited permissions the default for all new Actors. |
| 41 | + |
| 42 | + |
| 43 | + |
| 44 | +### End-user experience |
| 45 | + |
| 46 | +Initially, users will begin to see a gray, muted badge on your Actor's detail page indicating whether it requires "Limited permissions" or "Full permissions". At this stage, the experience of running an Actor will not change for the user. |
| 47 | + |
| 48 | + |
| 49 | + |
| 50 | + |
| 51 | + |
| 52 | +### Impact of permission level |
| 53 | + |
| 54 | +TODO: Section about current and future implications of keeping an actor on full |
| 55 | + |
| 56 | +TODO: Link to migration guide |
0 commit comments