Insert data into a Supabase table using the REST API.

This task inserts one or more records into a Supabase table using the REST API.

yaml
type: "io.kestra.plugin.supabase.Insert"

Insert a single record.

yaml
id: supabase_insert_single
namespace: company.team

tasks:
  - id: insert_user
    type: io.kestra.plugin.supabase.Insert
    url: https://your-project.supabase.com
    apiKey: "{{ secret('SUPABASE_API_KEY') }}"
    table: users
    data:
      name: "John Doe"
      email: "[email protected]"
      status: "active"

Insert multiple records.

yaml
id: supabase_insert_multiple
namespace: company.team

tasks:
  - id: insert_users
    type: io.kestra.plugin.supabase.Insert
    url: https://your-project.supabase.com
    apiKey: "{{ secret('SUPABASE_API_KEY') }}"
    table: users
    data:
      - name: "John Doe"
        email: "[email protected]"
        status: "active"
      - name: "Jane Smith"
        email: "[email protected]"
        status: "active"

Insert with conflict resolution (upsert).

yaml
id: supabase_upsert
namespace: company.team

tasks:
  - id: upsert_user
    type: io.kestra.plugin.supabase.Insert
    url: https://your-project.supabase.com
    apiKey: "{{ secret('SUPABASE_API_KEY') }}"
    table: users
    data:
      id: 123
      name: "John Doe Updated"
      email: "[email protected]"
    onConflict: "id"
    resolution: "merge-duplicates"
Properties

The Supabase API key

The API key for authenticating with Supabase -- use the anon key for client-side operations or the service_role key for server-side operations with elevated privileges.

The data to insert

The data to insert -- can be a single object or an array of objects.

The name of the table to insert into

The name of the table in your Supabase database

The Supabase project URL

The URL of your Supabase project (e.g., https://your-project.supabase.com)

Conflict resolution column(s)

Column name(s) to use for conflict resolution (upsert) -- comma-separated for multiple columns.

Default { "followRedirects": "true", "allowFailed": "false", "defaultCharset": "UTF-8" }
Default merge-duplicates

Resolution strategy for conflicts

How to handle conflicts: 'merge-duplicates' (default) or 'ignore-duplicates'

Default public

The schema to use

The database schema to use for operations -- defaults to 'public'.

Columns to return after insertion

Comma-separated list of columns to return after the insert. Defaults to '*' (all columns).

The HTTP status code of the response

SubType array

The headers of the response

The number of rows inserted

SubType object

The inserted rows returned from the database

The raw response body

Format uri

The URI of the executed request

Format duration

The time allowed to establish a connection to the server before failing.

Default PT5M
Format duration

The time allowed for a read connection to remain idle before closing it.

The password for HTTP basic authentication.

The username for HTTP basic authentication.

Default false

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

SubType integer

List of response code allowed for this request

The authentification to use.

Default UTF-8

The default charset for the request.

Default true

Whether redirects should be followed automatically.

SubType string
Possible Values
REQUEST_HEADERSREQUEST_BODYRESPONSE_HEADERSRESPONSE_BODY

The enabled log.

The proxy configuration.

The SSL request options

The timeout configuration.

The address of the proxy server.

The password for proxy authentication.

The port of the proxy server.

Default DIRECT
Possible Values
DIRECTHTTPSOCKS

The type of proxy to use.

The username for proxy authentication.

Whether to 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.

The token for bearer token authentication.