Cubi Estate · Schema

AdminAnnounceRequest

CompanyReal EstateProperty SearchArtificial IntelligenceMCPListingsEurope

Properties

Name Type Description
body string Message text. HTML by default (parse_mode).
targets array Where to send. channel = TG broadcast channel; subscribers = DM approved allow-list ids; x = post to X; email = confirmed newsletter list; blog = publish to the web blog (GET /blog).
title object Optional label stored in the audit log.
lang object ISO 639-1 tag (audit only; body is sent as-is).
channel_chat_id object Channel @username or numeric -100… id. Overrides TELEGRAM_ANNOUNCE_CHAT_ID.
button_url object URL for an 'Open Cubi' button on the channel post. Overrides TELEGRAM_ANNOUNCE_BUTTON_URL.
button_text object Label for the channel button. Defaults to TELEGRAM_ANNOUNCE_BUTTON_TEXT or 'Open Cubi 🐉'.
x_text object ≤280-char text posted to X (target 'x'). Falls back to the HTML-stripped, truncated body.
dedup_key object Idempotency key; a re-fire with the same key is a no-op.
parse_mode object 'HTML' (default) or 'none' for plain text.
disable_preview boolean Suppress link preview (default true).
dry_run boolean Validate + render, send nothing.
View JSON Schema on GitHub

JSON Schema

cubi-estate-admin-announce-request-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/cubi-estate/json-schema/cubi-estate-admin-announce-request-schema.json",
  "title": "AdminAnnounceRequest",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/cubi-estate-admin-api-openapi.yml#/components/schemas/AdminAnnounceRequest",
  "properties": {
    "body": {
      "type": "string",
      "title": "Body",
      "description": "Message text. HTML by default (parse_mode)."
    },
    "targets": {
      "items": {
        "type": "string",
        "enum": [
          "channel",
          "subscribers",
          "whatsapp",
          "x",
          "email",
          "blog"
        ]
      },
      "type": "array",
      "title": "Targets",
      "description": "Where to send. channel = TG broadcast channel; subscribers = DM approved allow-list ids; x = post to X; email = confirmed newsletter list; blog = publish to the web blog (GET /blog)."
    },
    "title": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Title",
      "description": "Optional label stored in the audit log."
    },
    "lang": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Lang",
      "description": "ISO 639-1 tag (audit only; body is sent as-is).",
      "default": "en"
    },
    "channel_chat_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Channel Chat Id",
      "description": "Channel @username or numeric -100… id. Overrides TELEGRAM_ANNOUNCE_CHAT_ID."
    },
    "button_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Button Url",
      "description": "URL for an 'Open Cubi' button on the channel post. Overrides TELEGRAM_ANNOUNCE_BUTTON_URL."
    },
    "button_text": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Button Text",
      "description": "Label for the channel button. Defaults to TELEGRAM_ANNOUNCE_BUTTON_TEXT or 'Open Cubi 🐉'."
    },
    "x_text": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "X Text",
      "description": "≤280-char text posted to X (target 'x'). Falls back to the HTML-stripped, truncated body."
    },
    "dedup_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Dedup Key",
      "description": "Idempotency key; a re-fire with the same key is a no-op."
    },
    "parse_mode": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Parse Mode",
      "description": "'HTML' (default) or 'none' for plain text.",
      "default": "HTML"
    },
    "disable_preview": {
      "type": "boolean",
      "title": "Disable Preview",
      "description": "Suppress link preview (default true).",
      "default": true
    },
    "dry_run": {
      "type": "boolean",
      "title": "Dry Run",
      "description": "Validate + render, send nothing.",
      "default": false
    }
  },
  "type": "object",
  "required": [
    "body"
  ]
}

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/cubi-estate-admin-announce-request"
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.