usewrit-app · Schema

Workflow

A redacted workflow row. `credentials_encrypted` NEVER appears; instead the daemon computes `has_credentials`, `credential_keys` (names only), `placeholders` (the non-secret run-time inputs) and `has_login`. JSON-TEXT columns (`steps`, `raw_replay`, `form_data`, `exit_condition`, `input_rules`, `api_functions`, `streaming_config`, `functions`, `login_url_patterns`) are re-hydrated to real JSON values on output (a malformed legacy value stays a string).

AutomationMCPNo-CodeSoftware-as-a-Service

Properties

Name Type Description
id integer
name string
description stringnull
workflow_type string `recorded` | `pre_check` | `on_change` | `api_recorded` | `streaming`.
steps object Recorded step array (re-hydrated JSON; a malformed legacy value stays a string).
raw_replay object Raw replay JSON (re-hydrated) or null.
form_data object Declared input map (re-hydrated) or null.
exit_condition object Exit-condition JSON (re-hydrated) or null.
input_rules object Input-rule JSON (re-hydrated) or null.
api_functions object API-function JSON (re-hydrated) or null.
streaming_config object Streaming-config JSON (re-hydrated) or null.
functions object Callable-function manifest JSON (re-hydrated) or null.
entry_url stringnull
timeout_ms integer
retry_count integer
headless integer 0/1 integer flag.
fast_mode integer 0/1 integer flag.
is_active integer 0/1 integer flag (always 1 — deactivation is retired).
is_verified integer 0/1 integer flag.
schedule_enabled integer 0/1 integer flag.
schedule_interval_ms integernull
schedule_kind stringnull `interval` (default) | `daily` | `weekly`.
schedule_time stringnull "HH:MM" local wall-clock fire time (daily/weekly).
schedule_days stringnull JSON array string of ISO weekday ints, 1=Mon … 7=Sun (weekly only).
schedule_tz stringnull IANA tz name for daily/weekly (null ⇒ UTC).
last_scheduled_at stringnull
next_scheduled_at stringnull
session_persistence integer 0/1 integer flag.
session_ttl_seconds integernull
login_url_patterns object Login-URL pattern JSON (re-hydrated) or null.
relogin_max_retries integer
http_capable integer Browserless HTTP-lane hint: -1 unknown, 0 browser-only, 1 HTTP-proven.
auth_config stringnull Declarative AuthRecipe JSON as stored TEXT (not re-hydrated).
default_persona_id integernull
estimated_duration_ms integernull
usage_count integer
total_run_count integer
total_failure_count integer
consecutive_failures integer
last_run_at stringnull
last_run_status stringnull Status of the most recent run (computed; null when never run).
last_run_duration_ms integernull
last_run_has_extracted_data integernull 0/1 — whether a successful run produced a non-trivial payload (computed).
last_failure_at stringnull
last_failure_error stringnull
cloud_callable integer 0/1 integer flag.
execution_target stringnull Run-venue pin (`local` | `cloud`); null = Auto.
marketplace_slug stringnull Set when this row is a proxy for an installed marketplace listing.
created_at string
updated_at stringnull
has_credentials boolean Whether a sealed credential blob exists (the blob itself is never returned).
credential_keys array NAMES of the stored credential map's top-level keys (values never returned). Degrades to [] when the vault is locked or the blob is unreadable.
placeholders array The non-secret run-time inputs the Run modal renders.
has_login boolean Deterministic "does this workflow authenticate?" heuristic.
marketplace object GET /v1/workflows/{id} only, for marketplace PROXY rows: the install's attach projection (`{slug, listing_title, manifest, bindings}` — names only), or `{slug, missing: true}` when the install row is
View JSON Schema on GitHub

JSON Schema

usewrit-app-workflow-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/usewrit-app/json-schema/usewrit-app-workflow-schema.json",
  "title": "Workflow",
  "description": "A redacted workflow row. `credentials_encrypted` NEVER appears; instead the daemon computes `has_credentials`, `credential_keys` (names only), `placeholders` (the non-secret run-time inputs) and `has_login`. JSON-TEXT columns (`steps`, `raw_replay`, `form_data`, `exit_condition`, `input_rules`, `api_functions`, `streaming_config`, `functions`, `login_url_patterns`) are re-hydrated to real JSON values on output (a malformed legacy value stays a string).",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/writ-agent.yaml#/components/schemas/Workflow",
  "type": "object",
  "required": [
    "id",
    "name",
    "workflow_type",
    "steps",
    "timeout_ms",
    "retry_count",
    "headless",
    "fast_mode",
    "is_active",
    "is_verified",
    "schedule_enabled",
    "session_persistence",
    "relogin_max_retries",
    "http_capable",
    "usage_count",
    "total_run_count",
    "total_failure_count",
    "consecutive_failures",
    "cloud_callable",
    "created_at",
    "has_credentials",
    "credential_keys",
    "placeholders",
    "has_login"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64"
    },
    "name": {
      "type": "string"
    },
    "description": {
      "type": [
        "string",
        "null"
      ]
    },
    "workflow_type": {
      "type": "string",
      "description": "`recorded` | `pre_check` | `on_change` | `api_recorded` | `streaming`."
    },
    "steps": {
      "description": "Recorded step array (re-hydrated JSON; a malformed legacy value stays a string)."
    },
    "raw_replay": {
      "description": "Raw replay JSON (re-hydrated) or null."
    },
    "form_data": {
      "description": "Declared input map (re-hydrated) or null."
    },
    "exit_condition": {
      "description": "Exit-condition JSON (re-hydrated) or null."
    },
    "input_rules": {
      "description": "Input-rule JSON (re-hydrated) or null."
    },
    "api_functions": {
      "description": "API-function JSON (re-hydrated) or null."
    },
    "streaming_config": {
      "description": "Streaming-config JSON (re-hydrated) or null."
    },
    "functions": {
      "description": "Callable-function manifest JSON (re-hydrated) or null."
    },
    "entry_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "timeout_ms": {
      "type": "integer",
      "format": "int64"
    },
    "retry_count": {
      "type": "integer",
      "format": "int64"
    },
    "headless": {
      "type": "integer",
      "description": "0/1 integer flag."
    },
    "fast_mode": {
      "type": "integer",
      "description": "0/1 integer flag."
    },
    "is_active": {
      "type": "integer",
      "description": "0/1 integer flag (always 1 — deactivation is retired)."
    },
    "is_verified": {
      "type": "integer",
      "description": "0/1 integer flag."
    },
    "schedule_enabled": {
      "type": "integer",
      "description": "0/1 integer flag."
    },
    "schedule_interval_ms": {
      "type": [
        "integer",
        "null"
      ],
      "format": "int64"
    },
    "schedule_kind": {
      "type": [
        "string",
        "null"
      ],
      "description": "`interval` (default) | `daily` | `weekly`."
    },
    "schedule_time": {
      "type": [
        "string",
        "null"
      ],
      "description": "\"HH:MM\" local wall-clock fire time (daily/weekly)."
    },
    "schedule_days": {
      "type": [
        "string",
        "null"
      ],
      "description": "JSON array string of ISO weekday ints, 1=Mon … 7=Sun (weekly only)."
    },
    "schedule_tz": {
      "type": [
        "string",
        "null"
      ],
      "description": "IANA tz name for daily/weekly (null ⇒ UTC)."
    },
    "last_scheduled_at": {
      "type": [
        "string",
        "null"
      ]
    },
    "next_scheduled_at": {
      "type": [
        "string",
        "null"
      ]
    },
    "session_persistence": {
      "type": "integer",
      "description": "0/1 integer flag."
    },
    "session_ttl_seconds": {
      "type": [
        "integer",
        "null"
      ],
      "format": "int64"
    },
    "login_url_patterns": {
      "description": "Login-URL pattern JSON (re-hydrated) or null."
    },
    "relogin_max_retries": {
      "type": "integer",
      "format": "int64"
    },
    "http_capable": {
      "type": "integer",
      "description": "Browserless HTTP-lane hint: -1 unknown, 0 browser-only, 1 HTTP-proven."
    },
    "auth_config": {
      "type": [
        "string",
        "null"
      ],
      "description": "Declarative AuthRecipe JSON as stored TEXT (not re-hydrated)."
    },
    "default_persona_id": {
      "type": [
        "integer",
        "null"
      ],
      "format": "int64"
    },
    "estimated_duration_ms": {
      "type": [
        "integer",
        "null"
      ],
      "format": "int64"
    },
    "usage_count": {
      "type": "integer",
      "format": "int64"
    },
    "total_run_count": {
      "type": "integer",
      "format": "int64"
    },
    "total_failure_count": {
      "type": "integer",
      "format": "int64"
    },
    "consecutive_failures": {
      "type": "integer",
      "format": "int64"
    },
    "last_run_at": {
      "type": [
        "string",
        "null"
      ]
    },
    "last_run_status": {
      "type": [
        "string",
        "null"
      ],
      "description": "Status of the most recent run (computed; null when never run)."
    },
    "last_run_duration_ms": {
      "type": [
        "integer",
        "null"
      ],
      "format": "int64"
    },
    "last_run_has_extracted_data": {
      "type": [
        "integer",
        "null"
      ],
      "description": "0/1 — whether a successful run produced a non-trivial payload (computed)."
    },
    "last_failure_at": {
      "type": [
        "string",
        "null"
      ]
    },
    "last_failure_error": {
      "type": [
        "string",
        "null"
      ]
    },
    "cloud_callable": {
      "type": "integer",
      "description": "0/1 integer flag."
    },
    "execution_target": {
      "type": [
        "string",
        "null"
      ],
      "description": "Run-venue pin (`local` | `cloud`); null = Auto."
    },
    "marketplace_slug": {
      "type": [
        "string",
        "null"
      ],
      "description": "Set when this row is a proxy for an installed marketplace listing."
    },
    "created_at": {
      "type": "string"
    },
    "updated_at": {
      "type": [
        "string",
        "null"
      ]
    },
    "has_credentials": {
      "type": "boolean",
      "description": "Whether a sealed credential blob exists (the blob itself is never returned)."
    },
    "credential_keys": {
      "type": "array",
      "description": "NAMES of the stored credential map's top-level keys (values never returned). Degrades to [] when the vault is locked or the blob is unreadable.",
      "items": {
        "type": "string"
      }
    },
    "placeholders": {
      "type": "array",
      "description": "The non-secret run-time inputs the Run modal renders.",
      "items": {
        "$ref": "#/$defs/WorkflowPlaceholder"
      }
    },
    "has_login": {
      "type": "boolean",
      "description": "Deterministic \"does this workflow authenticate?\" heuristic."
    },
    "marketplace": {
      "description": "GET /v1/workflows/{id} only, for marketplace PROXY rows: the install's attach projection (`{slug, listing_title, manifest, bindings}` — names only), or `{slug, missing: true}` when the install row is gone.",
      "type": "object",
      "additionalProperties": true
    }
  },
  "$defs": {
    "WorkflowPlaceholder": {
      "type": "object",
      "description": "One run-time input field descriptor.",
      "required": [
        "key",
        "label",
        "field_type"
      ],
      "properties": {
        "key": {
          "type": "string",
          "description": "The placeholder name (e.g. `city` or `input.city`)."
        },
        "label": {
          "type": "string",
          "description": "Humanized label (`input.` prefix stripped, underscores → spaces)."
        },
        "field_type": {
          "type": [
            "string",
            "null"
          ],
          "description": "Field-type hint (null when unknown; marketplace slots may set it)."
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/usewrit-app-workflow"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.