Request Request

yaml
type: "io.kestra.plugin.fs.http.Request"

Make an HTTP API request to a specified URL and store the response as output.

This task makes an API call to a specified URL of an HTTP server and stores the response as output. By default, the maximum length of the response is limited to 10MB, but it can be increased to at most 2GB by using the options.maxContentLength property. Note that the response is added as output to the task. If you need to process large API payloads, we recommend using the Download task instead.

Examples

Execute a Kestra flow via an HTTP POST request authenticated with basic auth. To pass a user input to the API call, we use the formData property. When using form data, make sure to set the contentType property to multipart/form-data.

yaml
id: api_call
namespace: dev
tasks:
  - id: basic_auth_api
    type: io.kestra.plugin.fs.http.Request
    uri: http://host.docker.internal:8080/api/v1/executions/dev/inputs_demo
    options:
      basicAuthUser: admin
      basicAuthPassword: admin
    method: POST
    contentType: multipart/form-data
    formData:
      user: John Doe

Send an HTTP POST request to a webserver

yaml
id: "request"
type: "io.kestra.plugin.fs.http.Request"
uri: "https://server.com/login"
headers: 
  user-agent: "kestra-io"
method: "POST"
formData:
  user: "user"
  password: "pass"

Send a multipart HTTP POST request to a webserver

yaml
id: "request"
type: "io.kestra.plugin.fs.http.Request"
uri: "https://server.com/upload"
headers: 
  user-agent: "kestra-io"
method: "POST"
contentType: "multipart/form-data"
formData:
  user: "{{ inputs.file }}"

Send a multipart HTTP POST request to a webserver and set a custom file name

yaml
id: "request"
type: "io.kestra.plugin.fs.http.Request"
uri: "https://server.com/upload"
headers: 
  user-agent: "kestra-io"
method: "POST"
contentType: "multipart/form-data"
formData:
  user:
    name: "my-file.txt"
    content: "{{ inputs.file }}"

Properties

uri

  • Type: string
  • Dynamic: ✔️
  • Required: ✔️

The fully-qualified URI that points to the HTTP destination

allowFailed

  • Type: boolean
  • Dynamic:
  • Required:
  • Default: false

If true, allow a failed response code (response code >= 400)

body

  • Type: string
  • Dynamic: ✔️
  • Required:

The full body as a string

contentType

  • Type: string
  • Dynamic: ✔️
  • Required:

The request content type

encryptBody

  • Type: boolean
  • Dynamic:
  • Required:
  • Default: false

If true, the HTTP response body will be automatically encrypted and decrypted in the outputs, provided that encryption is configured in your Kestra configuration.

If this property is set to true, this task will output the request body using the encryptedBody output property; otherwise, the request body will be stored in the body output property.

formData

  • Type: object
  • Dynamic: ✔️
  • Required:

The form data to be send

headers

  • Type: object
  • SubType: string
  • Dynamic: ✔️
  • Required:

The headers to pass to the request

method

  • Type: string
  • Dynamic:
  • Required:
  • Default: GET
  • Possible Values:
    • OPTIONS
    • GET
    • HEAD
    • POST
    • PUT
    • DELETE
    • TRACE
    • CONNECT
    • PATCH
    • CUSTOM

The HTTP method to use

options

The HTTP request options

sslOptions

The SSL request options

Outputs

body

  • Type: object
  • Dynamic:
  • Required:

The body of the response

Kestra will by default store the task output using this property. However, if the encryptBody property is set to true, kestra will instead encrypt the output and store it using the encryptedBody output property.

code

  • Type: integer
  • Dynamic:
  • Required:

The status code of the response

encryptedBody

The encrypted body of the response

If the encryptBody property is set to true, kestra will automatically encrypt the output before storing it, and decrypt it when the output is retrieved in a downstream task.

formData

  • Type: object
  • Dynamic: ✔️
  • Required:

The form data to be sent in the request body

When sending a file, you can pass a list of maps (i.e. a list of key-value pairs) with a key 'name' and value of the filename, as well as 'content' key with the file's content as value (e.g. passed from flow inputs or outputs from another task).

headers

  • Type: object
  • SubType: array
  • Dynamic:
  • Required:

The headers of the response

uri

  • Type: string
  • Dynamic:
  • Required:
  • Format: uri

The URL of the current request

Definitions

io.kestra.plugin.fs.http.HttpInterface-RequestOptions

Properties

basicAuthPassword
  • Type: string
  • Dynamic: ✔️
  • Required:

The HTTP basic authentication password.

basicAuthUser
  • Type: string
  • Dynamic: ✔️
  • Required:

The HTTP basic authentication username.

connectTimeout
  • Type: string
  • Dynamic:
  • Required:
  • Format: duration

The connect timeout.

connectionPoolIdleTimeout
  • Type: string
  • Dynamic:
  • Required:
  • Default: 0.0
  • Format: duration

The idle timeout for connection in the client connection pool.

defaultCharset
  • Type: Charset
  • Dynamic:
  • Required:
  • Default: UTF-8

The default charset.

followRedirects
  • Type: boolean
  • Dynamic:
  • Required:
  • Default: true

Whether redirects should be followed.

logLevel
  • Type: string
  • Dynamic:
  • Required:
  • Possible Values:
    • ALL
    • TRACE
    • DEBUG
    • INFO
    • WARN
    • ERROR
    • OFF
    • NOT_SPECIFIED

The log level.

maxContentLength
  • Type: integer
  • Dynamic:
  • Required:
  • Default: 10485760

The maximum content length of the response

proxyAddress
  • Type: string
  • Dynamic: ✔️
  • Required:

The proxy address.

proxyPassword
  • Type: string
  • Dynamic: ✔️
  • Required:

The proxy password.

proxyPort
  • Type: integer
  • Dynamic:
  • Required:

The proxy port.

proxyType
  • Type: string
  • Dynamic:
  • Required:
  • Default: DIRECT
  • Possible Values:
    • DIRECT
    • HTTP
    • SOCKS

The proxy type.

proxyUsername
  • Type: string
  • Dynamic: ✔️
  • Required:

The proxy username.

readIdleTimeout
  • Type: string
  • Dynamic:
  • Required:
  • Default: 300.000000000
  • Format: duration

The default amount of time to allow the read connection to remain idle.

readTimeout
  • Type: string
  • Dynamic:
  • Required:
  • Default: 10.000000000
  • Format: duration

The default read timeout.

java.nio.charset.Charset

io.kestra.plugin.fs.http.HttpInterface-SslOptions

Properties

insecureTrustAllCertificates
  • Type: boolean
  • Dynamic:
  • Required:

Whether the client should disable checking of the remote SSL certificate.

Only applies if no trust store is configured. Note: This makes the SSL connection insecure, and should only be used for testing. If you are using a self-signed certificate, set up a trust store instead.

io.kestra.core.models.tasks.common.EncryptedString

Properties

type
  • Type: string
  • Dynamic:
  • Required:
value
  • Type: string
  • Dynamic:
  • Required:

Was this page helpful?