listing
What the marketplace shows — category, tagline, overview, screenshots, links, dates — plus the words the marketing site borrows and the button the member portal shows.
The listing block is required. It is everything a connector says about itself to people who have not installed it: the marketplace card, the connector's public page, the in-app directory, GET /connectors and the MCP catalogue all read it, and nothing on those surfaces is typed by hand. What a connector cannot say about itself (whether it is official, available, new or trending) the registry stamps.
"listing": {
"category": "messaging",
"tagline": "Sell access to Telegram channels, groups and supergroups through your own bot.",
"overview": "Connect a bot you created with @BotFather and Subscriby runs your membership on Telegram: …",
"screenshots": [],
"links": {
"documentation": "https://docs.subscriby.net/guide/connectors/telegram",
"support": "mailto:[email protected]",
"privacy": "https://telegram.org/privacy",
"terms": "https://telegram.org/tos",
"homepage": "https://telegram.org"
},
"added_at": "2025-04-21",
"changelog_url": "https://www.subscriby.net/blog",
"sign_in_required": false,
"portal_cta": { "label": "Open Telegram Bot" },
"marketing": {
"audience": "Telegram communities",
"place": "channel",
"places": "channels, groups and supergroups",
"installation": "bot",
"identity": "Telegram account",
"native_payment": "Telegram Stars"
}
}The fields
| Field | Required | Meaning |
|---|---|---|
category | ✅ | Where the marketplace shelves the connector: messaging, community, payments or productivity. The Category filter and the connector page's side column read it. |
tagline | ✅ | One line under the name, at most 80 characters; the card shows it whole and the hero chip's hover card quotes it. |
overview | ✅ | The Overview tab, in Markdown. Say what the connector does for a creator and for a member. The capability matrix, the resource kinds and the command coverage under it are generated from the manifest, so do not repeat them. |
screenshots | Image URLs shown on the Overview tab. Empty is fine. | |
links | The More info column: documentation, support, privacy, terms, homepage. Each https:// or mailto:. See below for what each should point at. | |
added_at | ✅ | The date the connector was first published, YYYY-MM-DD. Shown under Added and drives the New chip for sixty days. |
changelog_url | Where releases are announced; the Changelog link. | |
sign_in_required | Whether a creator has to sign in to the platform to install (an OAuth connector says true; a paste-a-token connector says false). Default true. Shown as Sign-in on the connector page. | |
marketing | The words the marketing site borrows for this platform. Optional; see below. | |
portal_cta | The button the member portal shows to open the connector. Optional; see below. |
The links
documentation: your own guide for creators using the connector (how to install it, what members experience), not this SDK reference.support: where a creator writes when the connector misbehaves; amailto:is fine.privacyandterms: the platform's policies, not yours. The marketing site's legal pages link the available connectors'privacyfor members' reference, so it must be the document a member's data on that platform is governed by.homepage: the platform's site.
marketing
The public site never spells a platform. Its copy carries tokens that are filled from the connectors available on that installation of Subscriby, so a sentence written once names Telegram today and whichever connector is available tomorrow. Your marketing block supplies the words:
| Word | Token | Meaning and Telegram's value |
|---|---|---|
audience | :audience | Who the connector serves: "Telegram communities". |
place | :place | One gated place, lower case: "channel". |
places | :places | The gated places as a list: "channels, groups and supergroups". |
installation | :installation | What a project installs, lower case: "bot". |
identity | :identity | A person's account on the platform: "Telegram account". |
native_payment | :native_payment | The platform's own payment method, when it has one: "Telegram Stars". Leave it out when there is none. |
The first five are required inside the block; native_payment is optional. The connector's name fills :platform, and every available connector together fills :platforms; the connectors being built fill :next and the roadmap fills :planned on the home page. A sentence built on a word your block does not supply is dropped rather than rendered half-empty: a comparison row about native payments disappears when no available connector declares one. Write the words in lower case except the platform's own proper nouns, and as they would read mid-sentence ("your :place", "a :platform :installation"). A connector that lends no words leaves the block out; every connector still gets its own marketplace page from the rest of the listing.
portal_cta
"portal_cta": { "label": "Open Telegram Bot", "icon": "paper-airplane" }The member portal's header shows one button per installed connector that has somewhere to open: label (a translation key) and an optional icon, a key from Subscriby's connector icon set; when it is omitted the connector's own icon is drawn, which is almost always right. The core addresses the button through InstallationLifecycle::startLink(), so the connector never builds the URL here. Omit the block when the platform has nothing a member opens (a role gate shows itself). The same block is returned in GET /connectors so the creator apps render it identically.
What the registry stamps
These are never in the manifest, so a package cannot claim them:
| Stamp | Set from |
|---|---|
| Official | Subscriby's configuration names its own connectors; every other package is Community. |
| Lane / status | Available Now (enabled), Experimental (enabled and flagged beta), Paused (disabled during an incident), Under Development (registered but not enabled), Coming Soon (a roadmap stub with no package). |
| New | added_at within the last 60 days. |
| Trending | The most installed connector over the last 30 days. |
| Installed on | How many projects run it (public) and, in the app, how many of the signed-in creator's own. |
| Made by | The manifest's vendor; for a roadmap stub, Subscriby. |
What the kit checks
manifest.listing_links: every link present, including changelog_url, is an absolute https:// URL or a mailto: address. The loader refuses a category outside the four, an added_at that is not a date, an unknown key, and a marketing block missing any of its five required words; the eighty-character tagline limit is the schema's, so keep editor validation on and expect review to hold you to it. Listing and Review has the checklist a reviewer reads the block against.
How is this guide?
recovery
Which Disaster Recovery facets a connector performs — the five flags, the RecoverySupport methods behind each, and how the block and the recovery capabilities work together.
Ports
The sixteen interfaces the core calls on a connector — which are required, which a capability binds, which are optional, the value objects that cross them, and the rules every implementation shares.