Elocuenti · Schema

KnowledgeSyncBody

The entries to bring in sync with your system. What is not in the batch is left alone, unless you ask for `prune`.

CompanyArtificial IntelligenceConversational AIOmnichannelAutomationIntegration

Properties

Name Type Description
entries array The entries to save, from 1 to 100, in a request of at most 1 MiB (`413` past it: with large entries fewer fit, so send the rest in another request). Two entries with the same `external_id` are refuse
prune object
View JSON Schema on GitHub

JSON Schema

elocuenti-com-knowledge-sync-body-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/elocuenti-com/json-schema/elocuenti-com-knowledge-sync-body-schema.json",
  "title": "KnowledgeSyncBody",
  "description": "The entries to bring in sync with your system. What is not in the batch is left alone, unless you ask for `prune`.",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/elocuenti-com-knowledge-api-openapi.yml#/components/schemas/KnowledgeSyncBody",
  "type": "object",
  "properties": {
    "entries": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "$ref": "#/$defs/KnowledgeEntrySyncItem"
      },
      "description": "The entries to save, from 1 to 100, in a request of at most 1 MiB (`413` past it: with large entries fewer fit, so send the rest in another request). Two entries with the same `external_id` are refused. If one is invalid, nothing is saved and `details` names it (`entries.2.title`).",
      "title": "Entries"
    },
    "prune": {
      "$ref": "#/$defs/KnowledgeSyncPrune"
    }
  },
  "required": [
    "entries"
  ],
  "additionalProperties": false,
  "$defs": {
    "KnowledgeEntrySyncItem": {
      "type": "object",
      "properties": {
        "external_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200,
          "pattern": "^[\\x21-\\x7e]+$",
          "description": "The identifier the entry has in your own system (a post of your CMS, an article of your help center): from 1 to 200 printable characters, with no spaces. It is unique in your business: one identifier is one entry.",
          "title": "External Id"
        },
        "title": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200,
          "description": "The title of the entry, from 1 to 200 characters. The AI reads it as the heading of the entry.",
          "title": "Title"
        },
        "content": {
          "type": "string",
          "minLength": 10,
          "maxLength": 20000,
          "description": "What the AI can say about the topic, in plain text: from 10 to 20000 characters. Write it the way you would explain it to a customer.",
          "title": "Content"
        },
        "category": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            },
            {
              "type": "null"
            }
          ],
          "description": "A label to group entries in the dashboard (up to 100 characters). Send `null` to remove it. If you leave it out, the current one stays.",
          "title": "Category"
        },
        "type": {
          "type": "string",
          "enum": [
            "general",
            "faq"
          ],
          "description": "`faq` for a question with its answer, `general` for any other piece of information. If you leave it out, a new entry is `general` and an existing one keeps its type.",
          "title": "Type"
        },
        "status": {
          "type": "string",
          "enum": [
            "published",
            "archived"
          ],
          "description": "`published`: the AI uses the entry. `archived`: it stays in your business, unused, and can be published again. Left out, a new entry is `published` and an existing one keeps its status, except one that a `prune` archived and nobody has changed in the dashboard, published or archived by hand since: sending it brings it back to `published`. Archiving an existing entry (or keeping archived one that a `prune` archived) needs the `knowledge:delete` permission too.",
          "title": "Status"
        }
      },
      "required": [
        "external_id",
        "title",
        "content"
      ],
      "additionalProperties": false,
      "description": "One entry of the batch. It is matched to your business's entry that has the same `external_id`: that one is updated, or a new one is created if there is none.",
      "title": "KnowledgeEntrySyncItem"
    },
    "KnowledgeSyncPrune": {
      "type": "object",
      "properties": {
        "external_id_prefix": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[\\x21-\\x7e]+$",
          "description": "Only the entries whose `external_id` starts with this text can be archived (from 1 to 100 characters). Use one prefix per source (for example `wp:`), so a sync of one source never touches the entries of another.",
          "title": "External Id Prefix"
        },
        "confirm": {
          "type": "string",
          "const": "archive_missing",
          "description": "Must be exactly `archive_missing`: it confirms that you want the entries missing from this batch to stop being used by the AI.",
          "title": "Confirm"
        },
        "max_archive": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100,
          "description": "The most entries you expect this request to archive (from 0 to 100). If more would be archived, nothing at all is saved and the answer is `409`: it protects you from archiving the entries of the other pages of a larger source, or from an incomplete export.",
          "title": "Max Archive"
        }
      },
      "required": [
        "external_id_prefix",
        "confirm",
        "max_archive"
      ],
      "additionalProperties": false,
      "description": "Asks to archive the published entries that come from your system (they have an `external_id` that starts with the prefix) and are not in this batch; a draft is never archived by it. Nothing is archived without it, and it needs the `knowledge:delete` permission.",
      "title": "KnowledgeSyncPrune"
    }
  }
}

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/elocuenti-com-knowledge-sync-body"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.