# Base64 Encode & Decode - Text, Files & Data URI (`tidybytetools/base64-encode-decode`) Actor

Encode or decode Base64 for pasted text or files. Auto-detect, URL-safe, and optional data-URI output. $0.001 per unique item. Failed items free. Works from Apify MCP and the API.

- **URL**: https://apify.com/tidybytetools/base64-encode-decode.md
- **Developed by:** [Tidy Byte Tools](https://apify.com/tidybytetools) (community)
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 item processeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Base64 Encode & Decode

Encode or decode Base64 for pasted text or files. Optional URL-safe form and data-URI output.

**Encode or decode Base64. $0.001 per unique item. Failed items are free. Works from Apify MCP and the API.**

Also searched as: ES: codificar base64, decodificar base64 / PT: codificar base64, decodificar base64 / DE: Base64 kodieren, Base64 dekodieren / FR: encoder en base64, décoder en base64 / JA: Base64エンコード、Base64デコード

### Input

- Paste one or more texts (split them with a line that is only `---`)
- Or add file links
- Action: `auto` (default), `encode`, or `decode`
- Optional URL-safe alphabet (`-` and `_`)
- Optional data-URI string when encoding

### Output

One dataset row per unique item. Encoded rows include the Base64 string (and a data URI if you asked). Decoded rows include UTF-8 text when the bytes are text, and a file in the key-value store for both text and binary.

### Example

```json
{
  "texts": "hello world",
  "action": "encode"
}
```

That encodes to `aGVsbG8gd29ybGQ=`.

### Price

You pay **$0.001** per unique text or file we save. Failed items, blanks and repeats in the same run are free. There is no start fee from us. Apify adds its normal small platform cost.

### Honest limits

- `auto` looks at whether the input *looks like* Base64. Short or unusual strings can be guessed wrong. Use `encode` or `decode` when you already know the direction.
- Decoding a binary file that is not Base64 text returns an error and is not charged.
- We do not fetch extra URLs and we do not inspect the decoded bytes for viruses.

### FAQ

**Works from Apify MCP?** Yes. Search for "base64 encode" or "base64 decode".

# Actor input Schema

## `texts` (type: `string`):

Paste one or more texts. Use a line that is only --- to split them.

## `fileUrls` (type: `array`):

HTTP or HTTPS links to files to encode, or to text files of Base64 to decode.

## `action` (type: `string`):

auto tries to decode if the input looks like Base64, otherwise it encodes. Use encode or decode to force one direction.

## `urlSafe` (type: `boolean`):

If true, encode with - and \_ instead of + and /, and accept that form when decoding.

## `dataUri` (type: `boolean`):

If true, encoded results include a data: URI. The MIME type is guessed from the file name when we can.

## Actor input object example

```json
{
  "texts": "hello world",
  "action": "auto",
  "urlSafe": false,
  "dataUri": false
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "texts": "hello world"
};

// Run the Actor and wait for it to finish
const run = await client.actor("tidybytetools/base64-encode-decode").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "texts": "hello world" }

# Run the Actor and wait for it to finish
run = client.actor("tidybytetools/base64-encode-decode").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "texts": "hello world"
}' |
apify call tidybytetools/base64-encode-decode --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,tidybytetools/base64-encode-decode"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/JDseNxaptmKZKGuGI/builds/oM9jqbJ7ZuZ3hRyED/openapi.json
