# Input and output

## Input

Each Actor accepts input, which tells it what to do. You can run an Actor using the [Apify Console](https://console.apify.com) UI, then configure the input using the autogenerated UI:

![Input UI](/assets/images/apify-input-eeec3989b5a1ed4bb84e06982e6b3068.png)

When running an Actor using the [API](https://docs.apify.com/api/v2) you can pass the same input as the JSON object. In this case, the corresponding JSON input looks as follows:


```
{
    "maxRequestsPerCrawl": 10,
    "proxy": {
        "useApifyProxy": true
    },
    "startUrl": "https://apify.com"
}
```


### Options - Build, Timeout, and Memory

As part of the input, you can also specify run options such as [Build](https://pr-2338.preview.docs.apify.com/platform/actors/development/builds-and-runs/builds.md), Timeout, and [Memory](https://pr-2338.preview.docs.apify.com/platform/actors/running/usage-and-resources.md) for your Actor run.

![Run options](/assets/images/actor-options-730f220a8f7037928bf45207b1dc9876.png)

| Option  | Description                                                                 |
| ------- | --------------------------------------------------------------------------- |
| Build   | Tag or number of the build to run (e.g. **latest** or **1.2.34**).          |
| Timeout | Timeout for the Actor run in seconds. Zero value means there is no timeout. |
| Memory  | Amount of memory allocated for the Actor run, in megabytes.                 |

Dynamic memory

If the Actor is configured by developer to use [dynamic memory](https://pr-2338.preview.docs.apify.com/platform/actors/development/actor-definition/dynamic-actor-memory.md), the system will calculate the optimal memory allocation based on your input. In this case, the **Memory** option acts as an override - if you set it, the calculated value will be ignored.

## Output

While the input object provides a way to instruct Actors, an Actor can also generate an output, usually stored in its default [Dataset](https://pr-2338.preview.docs.apify.com/platform/storage/dataset.md), but some additional files might be stored in its [Key-value store](https://pr-2338.preview.docs.apify.com/platform/storage/key-value-store.md). Always read the Actor's README to learn more about its output.

For more details about storages, visit the [Storage](https://pr-2338.preview.docs.apify.com/platform/storage.md) section.

You can quickly access the Actor's output from the run detail page:

![Actor output](/assets/images/actor-output-38f68053e9dbc8cd70ce87cb436f68e7.png)

And to access all the data associated with the run, see the **Storage** tab, where you can explore the Actor's default [Dataset](https://pr-2338.preview.docs.apify.com/platform/storage/dataset.md), [Key-value store](https://pr-2338.preview.docs.apify.com/platform/storage/key-value-store.md), and [Request queue](https://pr-2338.preview.docs.apify.com/platform/storage/request-queue.md):

![Actor output](/assets/images/actor-storage-1282f5f5988729d3cd25e82d1f7a7925.png)

You can also use [API](https://docs.apify.com/api/v2) to retrieve the output. To learn more about this, read the [Run an Actor or task and retrieve data via API](https://pr-2338.preview.docs.apify.com/academy/api/run-actor-and-retrieve-data-via-api.md) tutorial.
