---
title: "Update workflow metadata"
method: PUT
path: "/v4/workflows/{workflowId}/metadata"
tags: ["Workflows"]
---

# Update workflow metadata

`PUT /v4/workflows/{workflowId}/metadata`

## Request

- Base URL: `https://api.kadoa.com`
- URL: `https://api.kadoa.com/v4/workflows/{workflowId}/metadata`
- Auth: API key in header `x-api-key`

## Path parameters

- `workflowId` string, required

## Request body

- object
  - `urls` string[]: List of target URLs for the workflow
  - `limit` integer, nullable: Maximum records per run. Pass null to clear the limit and extract all rows.
  - `updateInterval` 'ONLY_ONCE' | 'EVERY_10_MINUTES' | 'HALF_HOURLY' | 'HOURLY' | 'THREE_HOURLY' | 'SIX_HOURLY' | 'TWELVE_HOURLY' | 'EIGHTEEN_HOURLY' | 'DAILY' | 'TWO_DAY' | 'THREE_DAY' | 'WEEKLY' | 'BIWEEKLY' | 'TRIWEEKLY' | 'FOUR_WEEKS' | 'MONTHLY' | 'CUSTOM': The new update interval for the workflow
  - `schedules` string[]: Array of cron expressions for the workflow schedule
  - `timezone` string: IANA timezone for cron schedules. A timezone-only update preserves existing cron expressions.
  - `name` string: The new name for the workflow
  - `description` string: The new description for the workflow
  - `tags` string[]: The tags for the workflow
  - `location` object: The new location for the workflow
    - `type` 'auto' | 'manual': Type of location selection
    - `isoCode` string: ISO code of the country (required when type is manual)
  - `monitoring` object: The monitoring config for the workflow
    - `fields` object[], required
      - `fieldName` string, required: The name of the field to monitor
      - `operator` 'changed' | 'added' | 'removed', required: The operator to use for monitoring
      - `isKeyField` boolean: Optional explicit schema-key update for this field
    - `conditions` object: The conditions for monitoring
      - `logicalOperator` 'AND' | 'OR', required: The logical operator to use for conditions
      - `conditions` object[], required
        - `type` 'SINGLE' | 'ANY', required: Type of condition
        - `field` string: Field name (required for SINGLE type)
        - `operator` 'MATCHES_REGEX' | 'EQUALS' | 'NOT_EQUALS' | 'CONTAINS' | 'NOT_CONTAINS' | 'STARTS_WITH' | 'ENDS_WITH' | 'GREATER_THAN' | 'LESS_THAN' | 'GREATER_THAN_OR_EQUAL' | 'LESS_THAN_OR_EQUAL' | 'IN' | 'NOT_IN' | 'BEFORE' | 'AFTER' | 'WITHIN_LAST_DAYS' | 'IS_NULL' | 'IS_NOT_NULL' | 'IS_EMPTY' | 'IS_NOT_EMPTY', required: Condition operator
        - `value` union: Required except for null/empty operators
          - string
          - number
          - boolean
  - `entity` string: The new entity for the workflow
  - `schema` object[]: The new extraction schema for the workflow
    - `name` string
    - `description` string
    - `example` string
    - `dataType` 'STRING' | 'NUMBER' | 'BOOLEAN' | 'DATE' | 'DATETIME' | 'MONEY' | 'IMAGE' | 'LINK' | 'OBJECT' | 'ARRAY'
    - `isPrimaryKey` boolean
    - `isRequired` boolean
    - `isUnique` boolean
  - `additionalData` object: Additional static data for the workflow
  - `userPrompt` string: Natural language instructions for the workflow.

## Response `200`

Workflow metadata updated successfully

- object
  - `success` boolean
  - `message` string

## Other responses

- `400`: Bad request (invalid input)
- `401`: Unauthorized
- `404`: Workflow not found

---

[API](https://skmtc.dev/kadoa/apis/kadoa-api.md) · [All operations](https://skmtc.dev/kadoa/apis/kadoa-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kadoa/apis/kadoa-api/revisions/bf7803c927b4?raw)
