HTTP Request — Call any URL — reaches any service with an API, including ones Bizomate has no step for. It sends a request, waits for the answer, and passes the answer on to the steps after it.
Who can do this
Workspace Admins and Editors, on every plan. Sending through a connection to a paid-plan service makes it a paid step.
Before you start
If the API needs a key, add it as a connection first — Connections, + Add connection, an API key. Keys are never typed into the step.
Steps
- Select + where the call should happen. In the step picker, open Code and select HTTP Request, or search HTTP.
- Under Method, choose GET, POST, PUT, PATCH or DELETE. It starts on GET.
- In Address, type the full address, starting
https://— for examplehttps://api.example.com/orders.{{ }}works here:https://api.example.com/orders/{{ $json.order_id }}. - Under Authentication, choose:
- None — the request goes as it is, or
- a connection — an API key connection, or a sign-in such as Microsoft 365 (Sign in with …). The step then shows what every request carries, masked — Sends
Authorization: Bearer ••••a41f— with Set in Connections. + Add connection adds an API key and brings you back.
- Under Headers, select Add a header for each one: a name and a value.
- For POST, PUT or PATCH, choose the Body:
- Key / value — under Body fields, a name and a value per field. Sent as JSON. A field that is one {{ }} keeps its type — a number stays a number.
- Raw JSON — type it in The JSON to send, such as
{ "order": "{{ trigger.body.id }}" }.
- Select Run this step to try it.
Output
| Field | What it is |
|---|---|
status |
The answer's status code, such as 200. |
ok |
true for a 2xx status. |
contentType |
The answer's content type, such as application/json. |
body |
The answer. JSON is read as fields — {{ steps.get_order.body.total }}; anything else is text. |
note |
Only when the answer was over 1 MB: The answer was over 1 MB and was cut there. |
Good to know
- Only the public internet. Workflows cannot call private or internal addresses.
- 30 seconds to answer.
- A status outside 2xx fails the step with the status. Set If this step fails to carry on if you want to handle it yourself.
- Content-Type: Key / value sends application/json; Raw JSON sends application/json when it looks like JSON, otherwise text/plain. A Content-Type header of your own wins.
- A header the connection sets is not sent twice. If you type one with the same name, the step says The connection sets Authorization, so this header is not sent.
- Exports leave out values typed into headers or the address that look like keys or passwords. Keep keys in a connection.
- Runs once per item.
If something goes wrong
| What the run says | Why | What to do |
|---|---|---|
| api.example.com answered 404 Not Found. (or another status) | The service refused the request. | Check the address, method, body and key against the service's documentation. |
| Could not reach api.example.com: … | The address could not be reached. | Check the address and that the service is up. |
| api.example.com did not answer within 30 seconds. | The service was too slow. | Try again, or set the step to try again. |
| intranet.local is not on the public internet, so workflows cannot call it. | The address is private. | Use an address on the public internet. |
| “ftp://…” is not a web address. It should start https://. | The address is not http or https. | Correct it. |
| The header “…” has no “Name:” at the start. / “…” cannot be set as a header. | A header is malformed. | Fix the header's name. |
| A body field has a value but no name. | A body field row has no name. | Name it or remove it. |
| Needs setup: its connection no longer works. Reconnect it, choose another, or set Authentication to None. | The chosen connection stopped working. | Reconnect it, or choose another. |