AgentStack · Schema

ContentMetadataPatch

Company

Properties

Name Type Description
access_tier object
title object
content_type object
source_url object
status object
product_ids object
audience object
contraindications object
text object
gene_stems object
write_mode object search_replace|unified_diff preferred for a known phrase; append|prepend add; replace|write is the full body; patch/merge is metadata-only
replacements object search_replace pairs [{"find","replace"}]. No prior GET.
unified_diff object Unified diff against the stored body. Fuzzy unless strict_diff.
strict_diff object
allow_shrink object Required when replacing a long document with a much shorter body
dry_run boolean Preview body edit without re-embed; returns previous_sha256 + leaf_sha256.
expected_sha256 object CAS on joined document body; use previous_sha256 from dry_run on commit.
View JSON Schema on GitHub

JSON Schema

agentstack-tech-content-metadata-patch-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/agentstack-tech/json-schema/agentstack-tech-content-metadata-patch-schema.json",
  "title": "ContentMetadataPatch",
  "x-generated": "2026-11-01",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/agentstack-tech-openapi.json#/components/schemas/ContentMetadataPatch",
  "properties": {
    "access_tier": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Access Tier"
    },
    "title": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Title"
    },
    "content_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Content Type"
    },
    "source_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Source Url"
    },
    "status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Status"
    },
    "product_ids": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "title": "Product Ids"
    },
    "audience": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Audience"
    },
    "contraindications": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Contraindications"
    },
    "text": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 200000,
          "minLength": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Text"
    },
    "gene_stems": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "title": "Gene Stems"
    },
    "write_mode": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Write Mode",
      "description": "search_replace|unified_diff preferred for a known phrase; append|prepend add; replace|write is the full body; patch/merge is metadata-only"
    },
    "replacements": {
      "anyOf": [
        {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "title": "Replacements",
      "description": "search_replace pairs [{\"find\",\"replace\"}]. No prior GET."
    },
    "unified_diff": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Unified Diff",
      "description": "Unified diff against the stored body. Fuzzy unless strict_diff."
    },
    "strict_diff": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Strict Diff"
    },
    "allow_shrink": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Allow Shrink",
      "description": "Required when replacing a long document with a much shorter body"
    },
    "dry_run": {
      "type": "boolean",
      "title": "Dry Run",
      "description": "Preview body edit without re-embed; returns previous_sha256 + leaf_sha256.",
      "default": false
    },
    "expected_sha256": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Expected Sha256",
      "description": "CAS on joined document body; use previous_sha256 from dry_run on commit."
    }
  },
  "type": "object"
}

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/agentstack-tech-content-metadata-patch"
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.