# Online notepad

- Human page: https://happytails.ai/en/api/tools/online-notepad/
- Markdown: https://happytails.ai/en/api/tools/online-notepad.md
- Structured JSON: https://happytails.ai/agents/en/api/tools/online-notepad/index.json
- Visibility: public

## Page guide

API reference

Write plain-text notes and download a copy.

POST

/api/v1/tools/online-notepad/run

Base URL: https://happytails.ai · public API not connected

## Overview

Plain-text notes stay in this tab. Download to keep a copy; closing the tab clears unsaved text.

All API requests process supplied data on the server.

## Request parameters

Send a JSON object. Unknown properties are rejected. Omitted options use the defaults below; enter numbers and booleans as JSON values, not quoted text.

`input` is a string, empty by default, up to 1,000,000 characters. Change the input or settings to update your result. Results update as you type. Up to 1,000,000 characters.

This endpoint does not accept a `files` array.

### Options

No options are needed. Omit `options` or send an empty object.

## Success response

HTTP 200 returns `tool` and `result`. Text is in `result.text`; parsed JSON may also appear in `result.data`. Generated files are in `result.files` with `name`, `mime`, `bytes` and `base64`. Decode the bytes before saving. Empty file arrays and null text are valid for operations returning another result type.

### Complete output schema

```json
{
  "type": "object",
  "required": [
    "tool",
    "result"
  ],
  "properties": {
    "tool": {
      "type": "string"
    },
    "result": {
      "type": "object",
      "required": [
        "text",
        "files"
      ],
      "properties": {
        "text": {
          "type": [
            "string",
            "null"
          ]
        },
        "data": {
          "description": "Parsed JSON when the textual result is JSON."
        },
        "name": {
          "type": "string"
        },
        "mime": {
          "type": "string"
        },
        "files": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "name",
              "mime",
              "bytes",
              "base64"
            ],
            "properties": {
              "name": {
                "type": "string"
              },
              "mime": {
                "type": "string"
              },
              "bytes": {
                "type": "integer"
              },
              "base64": {
                "type": "string",
                "contentEncoding": "base64"
              }
            }
          }
        }
      }
    }
  }
}
```

## Limits and failures

Limits below are enforced by this endpoint. Additional format, page, duration and model limits in the behavior notes also apply. Browser UI limits can differ from API limits.

| Field | Value |
| --- | --- |
| `request_bytes` | 8388608 |
| `input_characters` | 1000000 |
| `files_bytes` | 5242880 |
| `max_files` | 0 |
| `timeout_seconds` | 12 |

Invalid requests return an `error` object with `code` and `message`. Read [HTTP statuses, retries, timeouts and concurrency](https://happytails.ai/en/api/#limits). Execution is synchronous and results are returned in the response.

## Complete request schema

### Expand the JSON schema

```json
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "input": {
      "type": "string",
      "maxLength": 1000000,
      "default": "",
      "description": "Plain text input. File tools use files instead unless otherwise documented."
    },
    "options": {
      "type": "object",
      "additionalProperties": false,
      "properties": {}
    }
  }
}
```

For browser automation, use the central [WebMCP guidance](https://happytails.ai/en/api/#browser-agents) and discover the tools actually exposed by the browser.

Request example

### cURL

```bash
curl https://happytails.ai/api/v1/tools/online-notepad/run \
  -H "Content-Type: application/json" \
  --data '{"input": "Hello world", "options": {}}'
```

### JavaScript

```javascript
const payload = {
  "input": "Hello world",
  "options": {}
};

const response = await fetch(
  "https://happytails.ai/api/v1/tools/online-notepad/run",
  {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify(payload)
  }
);
const data = await response.json();
if (!response.ok) throw new Error(data.error.message);
console.log(data.result);
```

### Python

```python
import json
from urllib.request import Request, urlopen

payload = json.loads('{"input": "Hello world", "options": {}}')

request = Request(
    "https://happytails.ai/api/v1/tools/online-notepad/run",
    data=json.dumps(payload).encode(),
    headers={"Content-Type": "application/json"},
)
with urlopen(request, timeout=200) as response:
    result = json.load(response)
    print(result)
```

### JSON

```json
{
  "input": "Hello world",
  "options": {}
}
```

Replace the API origin and input values for your application.

200 OK · saved example

### JSON

```json
{
  "tool": "online-notepad",
  "result": {
    "text": "Hello world",
    "files": [],
    "name": "notes.txt",
    "mime": "text/plain;charset=utf-8"
  }
}
```

400 Bad Request

### JSON

```json
{
  "error": {
    "code": "INVALID_INPUT",
    "message": "Unknown request property. See the tool input schema."
  }
}
```
