Skip to main content
Using our API via a dedicated deployment? Just replace api.langdock.com with your deployment’s base URL: <deployment-url>/api/public
Updates an existing action in an integration. This replaces the action configuration with the provided values.

Required Scopes

This endpoint requires the INTEGRATION_API scope.

Path Parameters

ParameterTypeRequiredDescription
integrationIdstringYesUUID of the integration
actionIdstringYesUUID of the action to update

Request Body

ParameterTypeRequiredDescription
namestringYesAction name (max 100 characters)
descriptionstringNoAction description (max 1,000 characters)
codestringNoJavaScript code to execute
inputFieldsarrayNoInput fields for the action
See Create Action for the full input field schema.

Example

const axios = require("axios");

async function updateAction(integrationId, actionId) {
  const response = await axios.put(
    `https://api.langdock.com/integrations/v1/${integrationId}/actions/${actionId}`,
    {
      name: "Get User Data v2",
      description: "Updated action with additional fields",
      code: `
        const response = await fetch('https://api.example.com/v2/users/' + inputs.userId);
        return await response.json();
      `,
      inputFields: [
        {
          label: "User ID",
          type: "TEXT",
          required: true
        },
        {
          label: "Format",
          type: "SELECT",
          options: [
            { label: "JSON", value: "json" },
            { label: "XML", value: "xml" }
          ],
          required: false
        }
      ]
    },
    {
      headers: {
        Authorization: "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
      }
    }
  );

  console.log("Updated action:", response.data.action);
}

updateAction("550e8400-e29b-41d4-a716-446655440000", "660e8400-e29b-41d4-a716-446655440001");

Response Format

Success Response (200 OK)

{
  action: {
    id: string;
    name: string;
    slug: string;
    description: string;
    code: string | null;
    order: number;
    inputFields: Array<{
      slug: string;
      label: string;
      type: string;
      description: string;
      placeholder: string | null;
      required: boolean;
      order: number;
      options: Array<{label: string, value: string}> | null;
      allowMultiSelect: boolean | null;
      contextActionId: string | null;
    }>;
  };
}

Error Handling

Status CodeDescription
400Invalid request body or IDs
401Invalid or missing API key
403No access to this integration
404Integration or action not found
409Action with this name already exists
429Rate limit exceeded
Langdock intentionally blocks browser-origin requests to protect your API key and ensure your applications remain secure. For more information, please see our guide on API Key Best Practices.