{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/markifact-com/json-schema/markifact-com-connection-type-schema.json",
  "title": "ConnectionType",
  "x-generated": "2026-10-29",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/markifact-com-openapi.json#/components/schemas/ConnectionType",
  "type": "object",
  "properties": {
    "type": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "auth_methods": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "oauth",
          "manual"
        ]
      },
      "description": "How this type can be authenticated. An \"oauth\" type accepts a shared auth link; a \"manual\" type is created by posting credentials to POST /v1/connections. A type listing both can be connected either way, and using your own app there is a white-label connection."
    },
    "credential_fields": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      },
      "description": "Credential field names a manual connection of this type expects. Null for types that take no credentials: OAuth-only types, and the ones connected only in the Markifact app."
    },
    "docs_url": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri",
      "description": "Plain-markdown page explaining where each credential comes from, suitable for an agent to read directly. Null for types that have no page yet."
    }
  },
  "required": [
    "type",
    "name",
    "auth_methods"
  ]
}