---
title: "on api post · RUAL Documentation"
description: "Exposes POST URI on /api/"
canonical: https://docs.rual.nl/block-types/http%20connection/on_startup_register_uri_post
language: en
---

[Cluster](https://docs.rual.nl/cluster)

[Blocks](https://docs.rual.nl/block-types)

[Interfaces](https://docs.rual.nl/interfaces)

[Blueprints](https://docs.rual.nl/blueprints)

[Tutorials](https://docs.rual.nl/tutorials)

[Home automation](https://docs.rual.nl/home-automation)

[Examples](https://docs.rual.nl/examples)

[Reference](https://docs.rual.nl/reference)

[Architecture](https://docs.rual.nl/architecture)

[Troubleshooting](https://docs.rual.nl/troubleshooting)

Other

# on api post

This block is part of the [`http connection`](https://docs.rual.nl/block-types/http%20connection) group and was last modified in core [`v10.3.2`](https://docs.rual.nl/core-versions/100302).

Exposes POST URI on /api/

- lowercase body `condition` If set to `true`, we'll automatically lowercase all JSON root-body keys. `userName` will become `username`.

Default `false`

- On Request `execute_function`

Startup registration block, not a flow executor: at startup (and on every save) it registers POST /api/{version}/{uri} and wires it to the function connected to the On Request outpin, which receives connection, params, query and body pins per request. Version defaults to v1; the lower_keys pin lowercases all root-level JSON body keys (userName -> username). A route without any scope is LOCKED with 403 : not public; use *public to expose it.

| `register post` |
| --- |

[on api post](https://docs.rual.nl/block-types/http%20connection/on_startup_register_uri_post) works like the GET variant but also hands the handler a body pin: the [execute](https://docs.rual.nl/block-types/function%20execution/function_custom_execute_from_trigger) block carries connection, params, query and body. The body goes through [get fields](https://docs.rual.nl/block-types/object/object_field_getter_multiple) before [reply in JSON](https://docs.rual.nl/block-types/http%20connection/httpconnection_set_json) answers.

[![Studio canvas example for the on api post block: registering a POST endpoint.](https://docs.rual.nl/canvas-examples/on_startup_register_uri_post.png)](https://docs.rual.nl/canvas-examples/on_startup_register_uri_post.png?v=3)

## Commonly used with

In production blueprints, this block is most often wired together with:

- [execute](https://docs.rual.nl/block-types/function%20execution/function_custom_execute_from_trigger): this block feeds into it. Executes the given funcion and waits for it to be executed.

## Used in these guides

These documentation pages use or explain this block:

- [Building a Login Page](https://docs.rual.nl/tutorials/login-page)

- [Creating a REST API](https://docs.rual.nl/tutorials/rest-api)

- [File Upload & Processing](https://docs.rual.nl/tutorials/file-upload-processing)

- [Third-Party Integrations](https://docs.rual.nl/tutorials/third-party-integrations)

- [Block Templates, Combinations That Work](https://docs.rual.nl/block-types/block-templates)

- [Block Quick Reference](https://docs.rual.nl/reference/block-quick-reference)

- [Build Your First API](https://docs.rual.nl/cluster/api-quickstart)

## Version history

Introduced in [`v10.3.2`](https://docs.rual.nl/core-versions/100302).

- [Back to `http connection`](https://docs.rual.nl/block-types/http%20connection): Return to the main group to view all sub-groups

- [Back to `api`](https://docs.rual.nl/block-types/http%20connection?group=api): Return to the group to view all blocks within this group

Was this page helpful? [Tell us what to improve](https://docs.rual.nl/support) · RUAL Docs is an integral component of the [RUAL ecosystem](https://rual.nl)
