Skip to main content
POST
/
api
/
v2
/
secret-rotations
/
supabase-api-key
cURL
curl --request POST \
  --url https://us.infisical.com/api/v2/secret-rotations/supabase-api-key \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "projectId": "<string>",
  "connectionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "environment": "<string>",
  "secretPath": "<string>",
  "rotationInterval": 2,
  "parameters": {
    "projectRef": "<string>",
    "keyType": "publishable"
  },
  "secretsMapping": {
    "apiKey": "<string>"
  },
  "description": "<string>",
  "isAutoRotationEnabled": true
}
'
{
  "secretRotation": {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "name": "<string>",
    "folderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "connectionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "createdAt": "2023-11-07T05:31:56Z",
    "updatedAt": "2023-11-07T05:31:56Z",
    "rotationInterval": 123,
    "rotationStatus": "<string>",
    "lastRotationAttemptedAt": "2023-11-07T05:31:56Z",
    "lastRotatedAt": "2023-11-07T05:31:56Z",
    "connection": {
      "app": "supabase",
      "name": "<string>",
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
    },
    "environment": {
      "slug": "<string>",
      "name": "<string>",
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
    },
    "projectId": "<string>",
    "folder": {
      "id": "<string>",
      "path": "<string>"
    },
    "rotateAtUtc": {
      "hours": 11.5,
      "minutes": 29.5
    },
    "type": "supabase-api-key",
    "parameters": {
      "projectRef": "<string>",
      "keyType": "publishable"
    },
    "secretsMapping": {
      "apiKey": "<string>"
    },
    "description": "<string>",
    "isAutoRotationEnabled": true,
    "activeIndex": 0,
    "lastRotationJobId": "<string>",
    "nextRotationAt": "2023-11-07T05:31:56Z",
    "isLastRotationManual": true,
    "lastRotationMessage": "<string>"
  }
}

Documentation Index

Fetch the complete documentation index at: https://infisical.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

Check out the configuration docs for Supabase API Key Rotations to learn how to obtain the required parameters.
Creates a Supabase API Key secret rotation. Infisical will create and rotate API keys via your Supabase connection and write them to the specified secret path.

Request body

FieldTypeRequiredDescription
namestringYesA unique name for the rotation (max 100 characters).
projectIdstring (UUID)YesThe project ID.
connectionIdstring (UUID)YesID of the Supabase app connection.
environmentstringYesEnvironment slug (e.g. dev, prod).
secretPathstringYesPath where the generated API key secret will be stored.
isAutoRotationEnabledbooleanNoWhether to rotate automatically on the schedule. Defaults to true.
rotationIntervalnumberYesDays between rotations (minimum 1).
rotateAtUtcobjectNoTime of day (UTC) to run rotation: { "hours", "minutes" }. Defaults to { "hours": 0, "minutes": 0 }.
parameters.projectRefstringYesThe reference ID of the Supabase project to rotate the API key for.
parameters.keyTypestringYesThe type of the API key to rotate: "publishable" or "secret".
secretsMapping.apiKeystringYesSecret key name to store the generated API key (e.g. SUPABASE_SECRET_API_KEY).
descriptionstringNoOptional description.

Sample request

curl --request POST \
  --url https://us.infisical.com/api/v2/secret-rotations/supabase-api-key \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer <ACCESS_TOKEN>' \
  --data '{
    "name": "my-supabase-rotation",
    "projectId": "<project-id>",
    "description": "Supabase API key rotation",
    "connectionId": "<supabase-connection-id>",
    "environment": "dev",
    "secretPath": "/",
    "isAutoRotationEnabled": true,
    "rotationInterval": 30,
    "rotateAtUtc": { "hours": 0, "minutes": 0 },
    "parameters": {
      "projectRef": "<supabase-project-ref>",
      "keyType": "secret"
    },
    "secretsMapping": {
      "apiKey": "SUPABASE_SECRET_API_KEY"
    }
  }'

Sample response

{
  "secretRotation": {
    "id": "<rotation-id>",
    "name": "my-supabase-rotation",
    "description": "Supabase API key rotation",
    "secretsMapping": { "apiKey": "SUPABASE_SECRET_API_KEY" },
    "isAutoRotationEnabled": true,
    "activeIndex": 0,
    "connectionId": "<supabase-connection-id>",
    "rotationInterval": 30,
    "rotateAtUtc": { "hours": 0, "minutes": 0 },
    "type": "supabase-api-key",
    "parameters": {
      "projectRef": "<supabase-project-ref>",
      "keyType": "secret"
    }
  }
}

Body

application/json
name
string
required

The name of the Supabase API Key Rotation to create. Must be slug-friendly.

Required string length: 1 - 64
projectId
string
required

The ID of the project to create the rotation in.

Minimum string length: 1
connectionId
string<uuid>
required

The ID of the Supabase Connection to use for rotation.

environment
string
required

The slug of the project environment to create the rotation in.

Required string length: 1 - 64
secretPath
string
required

The secret path of the project to create the rotation in.

Minimum string length: 1
rotationInterval
number
required

The interval, in days, to automatically rotate secrets.

Required range: x >= 1
parameters
object
required
secretsMapping
object
required
description
string | null

An optional description for the Supabase API Key Rotation.

Maximum string length: 256
isAutoRotationEnabled
boolean
default:true

Whether secrets should be automatically rotated when the specified rotation interval has elapsed.

rotateAtUtc
object

The hours and minutes rotation should occur at in UTC. Defaults to Midnight (00:00) UTC.

Response

Default Response

secretRotation
object
required