# Update Actor


```
PUT 
https://api.apify.com/v2/acts/:actorId
```


Updates settings of an Actor using values specified by an Actor object passed as JSON in the POST payload. If the object does not define a specific property, its value will not be updated.

The response is the full Actor object as returned by the  endpoint.

The request needs to specify the `Content-Type: application/json` HTTP header!

When providing your API authentication token, we recommend using the request's `Authorization` header, rather than the URL. ().

If you want to make your Actor [public](https://docs.apify.com/platform/actors/publishing) using `isPublic: true`, you will need to provide the Actor's `title` and the `categories` under which that Actor will be classified in Apify Store. For this, it's best to use the [constants from our apify-shared-js package](https://github.com/apify/apify-shared-js/blob/2d43ebc41ece9ad31cd6525bd523fb86939bf860/packages/consts/src/consts.ts#L452-L471).

## Request

### Path Parameters

* **actorId** string required

  Actor ID or a tilde-separated owner's username and Actor name.

  **Example:** `janedoe~my-actor`

### Body**required**

* **name** string\
  **Example:** `MyActor`

* **description** string | null nullable\
  **Example:** `My favourite actor!`

* **isPublic** boolean\
  **Example:** `false`

* **actorPermissionLevel** object

  * anyOf

    * ActorPermissionLevel
    * null

    ActorPermissionLevel (string)

    Determines permissions that the Actor requires to run. For more information, see the [Actor permissions documentation](https://docs.apify.com/platform/actors/development/permissions).

    **Possible values:** \[`LIMITED_PERMISSIONS`, `FULL_PERMISSIONS`]

    **Example:** `LIMITED_PERMISSIONS`

* **seoTitle** string | null nullable\
  **Example:** `My actor`

* **seoDescription** string | null nullable\
  **Example:** `My actor is the best`

* **title** string | null nullable\
  **Example:** `My Actor`

* **restartOnError** boolean deprecated\
  **Example:** `false`

* **versions** object\[]

  * **versionNumber** string | null nullable\
    **Example:** `0.0`

  * **sourceType** object

    * anyOf

      * VersionSourceType
      * null

      VersionSourceType (string)

      **Possible values:** \[`SOURCE_FILES`, `GIT_REPO`, `TARBALL`, `GITHUB_GIST`]

  * **envVars** object\[]

    * **name** string required\
      **Example:** `MY_ENV_VAR`
    * **value** string\
      **Example:** `my-value`
    * **isSecret** boolean | null nullable\
      **Example:** `false`

  * **applyEnvVarsToBuild** boolean | null nullable\
    **Example:** `false`

  * **buildTag** string | null nullable\
    **Example:** `latest`

  * **sourceFiles** object\[]

    * anyOf

      * SourceCodeFile
      * SourceCodeFolder

      **format** SourceCodeFileFormat (string) required

      **Possible values:** \[`BASE64`, `TEXT`]

      **Example:** `TEXT`

    * **content** string required\
      **Example:** `console.log('This is the main.js file');`

    * **name** string required\
      **Example:** `src/main.js`

  * **gitRepoUrl** string | null nullable

    URL of the Git repository when sourceType is GIT\_REPO.

  * **tarballUrl** string | null nullable

    URL of the tarball when sourceType is TARBALL.

  * **gitHubGistUrl** string | null nullable

    URL of the GitHub Gist when sourceType is GITHUB\_GIST.

* **pricingInfos** object\[]

  * oneOf

    * PayPerEventActorPricingInfo
    * PricePerDatasetItemActorPricingInfo
    * FlatPricePerMonthActorPricingInfo
    * FreeActorPricingInfo

    **apifyMarginPercentage** number required

    In \[0, 1], fraction of pricePerUnitUsd that goes to Apify

  * **createdAt** string\<date-time> required

    When this pricing info record has been created

  * **startedAt** string\<date-time> required

    Since when is this pricing info record effective for a given Actor

  * **notifiedAboutFutureChangeAt** string,null\<date-time> nullable

  * **notifiedAboutChangeAt** string,null\<date-time> nullable

  * **reasonForChange** string | null nullable

  * **pricingModel** PricingModel (string) required

    **Possible values:** \[`PAY_PER_EVENT`, `PRICE_PER_DATASET_ITEM`, `FLAT_PRICE_PER_MONTH`, `FREE`]

  * **pricingPerEvent** object required

    * **actorChargeEvents** object

      * **property name\*** ActorChargeEvent

        * **eventPriceUsd** number required
        * **eventTitle** string required
        * **eventDescription** string required

  * **minimalMaxTotalChargeUsd** number | null nullable

* **categories** string\[] nullable

* **defaultRunOptions** object

  * anyOf
    * defaultRunOptions
    * null
    **build** string\
    **Example:** `latest`

  * **timeoutSecs** integer\
    **Example:** `3600`

  * **memoryMbytes** integer\
    **Example:** `2048`

  * **restartOnError** boolean\
    **Example:** `false`

  * **maxItems** integer | null nullable

  * **forcePermissionLevel** object

    * anyOf

      * ActorPermissionLevel
      * null

      ActorPermissionLevel (string)

      Determines permissions that the Actor requires to run. For more information, see the [Actor permissions documentation](https://docs.apify.com/platform/actors/development/permissions).

      **Possible values:** \[`LIMITED_PERMISSIONS`, `FULL_PERMISSIONS`]

      **Example:** `LIMITED_PERMISSIONS`

* **taggedBuilds** object,null

  An object to modify tags on the Actor's builds. The key is the tag name (e.g., *latest*), and the value is either an object with a `buildId` or `null`.

  This operation is a patch; any existing tags that you omit from this object will be preserved.

  * **To create or reassign a tag**, provide the tag name with a `buildId`. e.g., to assign the *latest* tag:


    ```
    {
      "latest": {
        "buildId": "z2EryhbfhgSyqj6Hn"
      }
    }
    ```


  * **To remove a tag**, provide the tag name with a `null` value. e.g., to remove the *beta* tag:


    ```
    {
      "beta": null
    }
    ```


  * **To perform multiple operations**, combine them. The following reassigns *latest* and removes *beta*, while preserving any other existing tags.


    ```
    {
      "latest": {
        "buildId": "z2EryhbfhgSyqj6Hn"
      },
      "beta": null
    }
    ```


  - **property name\*** BuildTag

    * **buildId** string required

* **actorStandby** object

  * anyOf
    * ActorStandby
    * null
    **isEnabled** boolean | null nullable
  * **desiredRequestsPerActorRun** integer | null nullable
  * **maxRequestsPerActorRun** integer | null nullable
  * **idleTimeoutSecs** integer | null nullable
  * **build** string | null nullable
  * **memoryMbytes** integer | null nullable
  * **disableStandbyFieldsOverride** boolean | null nullable
  * **shouldPassActorInput** boolean | null nullable

* **exampleRunInput** object

  * anyOf
    * exampleRunInput
    * null
    **body** string\
    **Example:** `{ "helloWorld": 123 }`
  * **contentType** string\
    **Example:** `application/json; charset=utf-8`

* **isDeprecated** boolean | null nullable

### Status 200

**Response Headers**




```
{
  "data": {
    "id": "zdc3Pyhyz3m8vjDeM",
    "userId": "wRsJZtadYvn4mBZmm",
    "name": "MyActor",
    "username": "jane35",
    "description": "My favourite Actor!",
    "isPublic": false,
    "actorPermissionLevel": "LIMITED_PERMISSIONS",
    "createdAt": "2019-07-08T11:27:57.401Z",
    "modifiedAt": "2019-07-08T14:01:05.546Z",
    "stats": {
      "totalBuilds": 9,
      "totalRuns": 16,
      "totalUsers": 6,
      "totalUsers7Days": 2,
      "totalUsers30Days": 6,
      "totalUsers90Days": 6,
      "totalMetamorphs": 2,
      "lastRunStartedAt": "2019-07-08T14:01:05.546Z"
    },
    "versions": [
      {
        "versionNumber": "0.1",
        "envVars": null,
        "sourceType": "SOURCE_FILES",
        "applyEnvVarsToBuild": false,
        "buildTag": "latest",
        "sourceFiles": []
      },
      {
        "versionNumber": "0.2",
        "sourceType": "GIT_REPO",
        "envVars": null,
        "applyEnvVarsToBuild": false,
        "buildTag": "latest",
        "gitRepoUrl": "https://github.com/jane35/my-actor"
      },
      {
        "versionNumber": "0.3",
        "sourceType": "TARBALL",
        "envVars": null,
        "applyEnvVarsToBuild": false,
        "buildTag": "latest",
        "tarballUrl": "https://github.com/jane35/my-actor/archive/master.zip"
      },
      {
        "versionNumber": "0.4",
        "sourceType": "GITHUB_GIST",
        "envVars": null,
        "applyEnvVarsToBuild": false,
        "buildTag": "latest",
        "gitHubGistUrl": "https://gist.github.com/jane35/e51feb784yu89"
      }
    ],
    "defaultRunOptions": {
      "build": "latest",
      "timeoutSecs": 3600,
      "memoryMbytes": 2048,
      "restartOnError": false
    },
    "exampleRunInput": {
      "body": "{ \"helloWorld\": 123 }",
      "contentType": "application/json; charset=utf-8"
    },
    "isDeprecated": false,
    "deploymentKey": "ssh-rsa AAAA ...",
    "title": "My Actor",
    "taggedBuilds": {
      "latest": {
        "buildId": "z2EryhbfhgSyqj6Hn",
        "buildNumber": "0.0.2",
        "finishedAt": "2019-06-10T11:15:49.286Z"
      }
    }
  }
}
```


**Schema**

* **data** object required

  * **id** string required\
    **Example:** `zdc3Pyhyz3m8vjDeM`

  * **userId** string required\
    **Example:** `wRsJZtadYvn4mBZmm`

  * **name** string required\
    **Example:** `MyActor`

  * **username** string required\
    **Example:** `jane35`

  * **description** string | null nullable\
    **Example:** `My favourite actor!`

  * **restartOnError** boolean deprecated\
    **Example:** `false`

  * **isPublic** boolean required\
    **Example:** `false`

  * **actorPermissionLevel** ActorPermissionLevel (string)

    Determines permissions that the Actor requires to run. For more information, see the [Actor permissions documentation](https://docs.apify.com/platform/actors/development/permissions).

    **Possible values:** \[`LIMITED_PERMISSIONS`, `FULL_PERMISSIONS`]

    **Example:** `LIMITED_PERMISSIONS`

  * **createdAt** string\<date-time> required\
    **Example:** `2019-07-08T11:27:57.401Z`

  * **modifiedAt** string\<date-time> required\
    **Example:** `2019-07-08T14:01:05.546Z`

  * **stats** object required

    * **totalBuilds** integer\
      **Example:** `9`
    * **totalRuns** integer\
      **Example:** `16`
    * **totalUsers** integer\
      **Example:** `6`
    * **totalUsers7Days** integer\
      **Example:** `2`
    * **totalUsers30Days** integer\
      **Example:** `6`
    * **totalUsers90Days** integer\
      **Example:** `6`
    * **totalMetamorphs** integer\
      **Example:** `2`
    * **lastRunStartedAt** string\<date-time>\
      **Example:** `2019-07-08T14:01:05.546Z`

  * **versions** object\[] required

    * **versionNumber** string required\
      **Example:** `0.0`

    * **sourceType** object required

      * anyOf

        * VersionSourceType
        * null

        VersionSourceType (string)

        **Possible values:** \[`SOURCE_FILES`, `GIT_REPO`, `TARBALL`, `GITHUB_GIST`]

    * **envVars** object\[]

      * **name** string required\
        **Example:** `MY_ENV_VAR`
      * **value** string\
        **Example:** `my-value`
      * **isSecret** boolean | null nullable\
        **Example:** `false`

    * **applyEnvVarsToBuild** boolean | null nullable\
      **Example:** `false`

    * **buildTag** string\
      **Example:** `latest`

    * **sourceFiles** object\[]

      * anyOf

        * SourceCodeFile
        * SourceCodeFolder

        **format** SourceCodeFileFormat (string) required

        **Possible values:** \[`BASE64`, `TEXT`]

        **Example:** `TEXT`

      * **content** string required\
        **Example:** `console.log('This is the main.js file');`

      * **name** string required\
        **Example:** `src/main.js`

    * **gitRepoUrl** string | null nullable

      URL of the Git repository when sourceType is GIT\_REPO.

    * **tarballUrl** string | null nullable

      URL of the tarball when sourceType is TARBALL.

    * **gitHubGistUrl** string | null nullable

      URL of the GitHub Gist when sourceType is GITHUB\_GIST.

  * **pricingInfos** object\[]

    * oneOf

      * PayPerEventActorPricingInfo
      * PricePerDatasetItemActorPricingInfo
      * FlatPricePerMonthActorPricingInfo
      * FreeActorPricingInfo

      **apifyMarginPercentage** number required

      In \[0, 1], fraction of pricePerUnitUsd that goes to Apify

    * **createdAt** string\<date-time> required

      When this pricing info record has been created

    * **startedAt** string\<date-time> required

      Since when is this pricing info record effective for a given Actor

    * **notifiedAboutFutureChangeAt** string,null\<date-time> nullable

    * **notifiedAboutChangeAt** string,null\<date-time> nullable

    * **reasonForChange** string | null nullable

    * **pricingModel** PricingModel (string) required

      **Possible values:** \[`PAY_PER_EVENT`, `PRICE_PER_DATASET_ITEM`, `FLAT_PRICE_PER_MONTH`, `FREE`]

    * **pricingPerEvent** object required

      * **actorChargeEvents** object

        * **property name\*** ActorChargeEvent

          * **eventPriceUsd** number required
          * **eventTitle** string required
          * **eventDescription** string required

    * **minimalMaxTotalChargeUsd** number | null nullable

  * **defaultRunOptions** object required

    * **build** string\
      **Example:** `latest`

    * **timeoutSecs** integer\
      **Example:** `3600`

    * **memoryMbytes** integer\
      **Example:** `2048`

    * **restartOnError** boolean\
      **Example:** `false`

    * **maxItems** integer | null nullable

    * **forcePermissionLevel** object

      * anyOf

        * ActorPermissionLevel
        * null

        ActorPermissionLevel (string)

        Determines permissions that the Actor requires to run. For more information, see the [Actor permissions documentation](https://docs.apify.com/platform/actors/development/permissions).

        **Possible values:** \[`LIMITED_PERMISSIONS`, `FULL_PERMISSIONS`]

        **Example:** `LIMITED_PERMISSIONS`

  * **exampleRunInput** object

    * anyOf
      * exampleRunInput
      * null
      **body** string\
      **Example:** `{ "helloWorld": 123 }`
    * **contentType** string\
      **Example:** `application/json; charset=utf-8`

  * **isDeprecated** boolean | null nullable\
    **Example:** `false`

  * **deploymentKey** string\
    **Example:** `ssh-rsa AAAA ...`

  * **title** string | null nullable\
    **Example:** `My Actor`

  * **taggedBuilds** object

    * anyOf

      * TaggedBuilds
      * null

      object

      A dictionary mapping build tag names (e.g., "latest", "beta") to their build information.

      **Example:** `{"latest":{"buildId":"z2EryhbfhgSyqj6Hn","buildNumber":"0.0.2","finishedAt":"2019-06-10T11:15:49.286Z"},"beta":{"buildId":"abc123def456","buildNumber":"1.0.0-beta","finishedAt":"2019-07-15T14:30:00.000Z"}}`

  * **actorStandby** object

    * anyOf
      * ActorStandby
      * null
      **isEnabled** boolean | null nullable
    * **desiredRequestsPerActorRun** integer | null nullable
    * **maxRequestsPerActorRun** integer | null nullable
    * **idleTimeoutSecs** integer | null nullable
    * **build** string | null nullable
    * **memoryMbytes** integer | null nullable
    * **disableStandbyFieldsOverride** boolean | null nullable
    * **shouldPassActorInput** boolean | null nullable

  * **readmeSummary** string

    A brief, LLM-generated readme summary

### Status 400

Bad request - invalid input parameters or request body.


```
{
  "error": {
    "type": "invalid-input",
    "message": "Invalid input: The request body contains invalid data."
  }
}
```


**Schema**

* **error** object required

  * **type** string required\
    **Example:** `run-failed`
  * **message** string required\
    **Example:** `Actor run did not succeed (run ID: 55uatRrZib4xbZs, status: FAILED)`

### Status 401

Unauthorized - authentication required or invalid token.


```
{
  "error": {
    "type": "token-not-valid",
    "message": "Authentication token is not valid."
  }
}
```


**Schema**

* **error** object required

  * **type** string required\
    **Example:** `run-failed`
  * **message** string required\
    **Example:** `Actor run did not succeed (run ID: 55uatRrZib4xbZs, status: FAILED)`

### Status 403

Forbidden - insufficient permissions to perform this action.


```
{
  "error": {
    "type": "permission-denied",
    "message": "You do not have permission to perform this action."
  }
}
```


**Schema**

* **error** object required

  * **type** string required\
    **Example:** `run-failed`
  * **message** string required\
    **Example:** `Actor run did not succeed (run ID: 55uatRrZib4xbZs, status: FAILED)`

### Status 404

Not found - the requested resource does not exist.


```
{
  "error": {
    "type": "record-not-found",
    "message": "The requested resource was not found."
  }
}
```


**Schema**

* **error** object required

  * **type** string required\
    **Example:** `run-failed`
  * **message** string required\
    **Example:** `Actor run did not succeed (run ID: 55uatRrZib4xbZs, status: FAILED)`

### Status 405

Method not allowed.


```
{
  "error": {
    "type": "method-not-allowed",
    "message": "This API end-point can only be accessed using the following HTTP methods: OPTIONS,GET"
  }
}
```


**Schema**

* **error** object required

  * **type** string required\
    **Example:** `run-failed`
  * **message** string required\
    **Example:** `Actor run did not succeed (run ID: 55uatRrZib4xbZs, status: FAILED)`

### Status 413

Payload too large - the request body exceeds the size limit.


```
{
  "error": {
    "type": "request-too-large",
    "message": "The POST payload is too large (limit: 9437184 bytes, actual length: 10485760 bytes)."
  }
}
```


**Schema**

* **error** object required

  * **type** string required\
    **Example:** `run-failed`
  * **message** string required\
    **Example:** `Actor run did not succeed (run ID: 55uatRrZib4xbZs, status: FAILED)`

### Status 415

Unsupported media type - the Content-Encoding of the request is not supported.


```
{
  "error": {
    "type": "unsupported-content-encoding",
    "message": "Content-Encoding \"bla\" is not supported."
  }
}
```


**Schema**

* **error** object required

  * **type** string required\
    **Example:** `run-failed`
  * **message** string required\
    **Example:** `Actor run did not succeed (run ID: 55uatRrZib4xbZs, status: FAILED)`

### Status 429

Too many requests - rate limit exceeded.


```
{
  "error": {
    "type": "rate-limit-exceeded",
    "message": "You have exceeded the rate limit. Please try again later."
  }
}
```


**Schema**

* **error** object required

  * **type** string required\
    **Example:** `run-failed`
  * **message** string required\
    **Example:** `Actor run did not succeed (run ID: 55uatRrZib4xbZs, status: FAILED)`
