За разработчици

Хостинг, който управлявате с код

Zinn Digital® е платформа с водещо API. Същият API двигател, който задвижва нашия табло за управление, е този, който получавате — с версия, базиран първо на спецификация и 100% документиран по време на компилация, с генерирани SDK-та, CLI, Terraform доставчик, подписани уебхукове и MCP сървър отгоре. Каквото и да използвате за работа — терминал, пиплайн, файл със състояние или AI агент — платформата отговаря на него.

  • 650 000+сайтове, хоствани по целия свят
  • 1OpenAPI спецификация, от която се генерира всеки инструмент
  • 4клиентски SDK — TypeScript, Python, PHP, Go
  • OAuth 2.1достъп за ИИ агенти с ограничен обхват и с възможност за отнемане

Един API. Всяка повърхност работи с него.

Повечето хостинг компании добавяха API към контролния си панел едва след това и това си личи – половината от функциите на панела никога не излизат наяве. Ние го изградихме на обратно. Таблото за управление, административната конзола, CLI, Terraform провайдърът, MCP сървърът и вашите собствени интеграции използват едно и също engine API. Ако можете да го направите в панела, можете да го направите и с код.

Първо спецификацията, а не документацията по-късно

Спецификацията на OpenAPI е източникът на истината и никой ендпойнт не се пуска, освен ако не е в спецификацията. Това единствено правило е причината публичният API да бъде напълно документиран по време на компилация, а не с закъснение — няма недекументирано кътче, тъй като недекументиран ендпойнт не може да съществува.

Генериран, никога поддържан ръчно

Интерактивната справочна документация, четирите клиентски SDK, голяма част от CLI и шаблонът на Terraform провайдъра се генерират от тази една спецификация. Един източник, много артефакти, винаги в синхрон — никога повече няма да гоните документация, която се е разминала с реализацията.

С версия и политика за извеждане от експлоатация

Краевите точки са разположени под /v1 с публикувана политика за извеждане от експлоатация и дневник с промени. Уведомяват Ви писмено преди всяка промяна, вместо да я разберете от неуспешно компилиране.

Тествано по договор в CI

Тестовете за съответствие между реализация и спецификация и линтването на OpenAPI се изпълняват при всяка промяна. Разминаването между кода и спецификацията проваля компилацията — така че спецификацията, от която генерирате клиента си, е тази, която сървърът действително спазва.

Оторизация, обхват и нещата, които хапят в мащаб

Два начина за достъп, но един единствен основен принцип зад тях. Който и да използвате, важат едни и същи проверки за права и същата изолация на ниво база данни.

API ключове, за организация

Ключовете изглеждат така: zdk_<mode>_<prefix>_<secret>. Съхранява се само SHA-256 хеш на секрета — не можем да ви покажем ключ отново след издаването му, нито пък някой, който има достъп до нашата база данни. Ключовете имат обхвати, могат да бъдат отменяни и се издават за организация, а не за отделно лице.

Режими на живо и тестване, разделени едно от друго

Ключовете за пясъчната среда са отделни от производствените ключове и работят в режим на пясъчна среда: без реално таксуване, без реално предоставяне на ресурси. Вашите интеграционни тестове могат да изпитват API без харчене на пари или изграждане на сървъри.

OIDC за хора

Потребителските сесии се автентифицират с издадени от Keycloak JWT токени, които се проверяват спрямо публичния ключ на realm-а и се резолвят до същия Principal обект, както и един API ключ. Ендпойнтите се ограничават с гранулирани ключове за права като sites.create или apikeys.manage, които се проверяват за всяка организация – дадено право в една организация не дава достъп в друга, несвързана организация, макар че важи за организациите, вложени под нея.

Безопасност на ниво ред

Всяка заявка на клиент се изпълнява в трансакция с Postgres org обхват, зададен от принципала, така че изолацията се налага от базата данни, а не от ORM филтър, който някой може да забрави. Филтърът на queryset все пак е там като защита в дълбочина.

Създадено за машини, а не само за демонстрации

Един API е лесен за изкарване добър в един README и труден за поддържане при реален трафик. Това са нещата, над които се потникахме, защото те са частите, които чупят интеграциите в три сутринта.

Един детайл заслужава да бъде отбелязан, тъй като определя поведението на масовите операции: статус 409 при дублиращ се домейн отговаря на въпроса „дали този хостнейм се хоства тук?“ за всеки клиент, което представлява оракул за извличане и реален риск от разкриване на самоличността срещу Footprint-Free. Ограничаването на скоростта при създаване на сайтове би било лесното решение и напълно щeше да счупи продукта за масово предоставяне. Вместо това се таксуват само отхвърлените опити с дублиращи се домейни, спрямо принципала. Успешните създавания никога не се приспадат от този лимит — така че можете да извършвате масово предоставяне цял ден, а пробването умира почти незабавно.

  • Постоянен обхват на грешката при всяка неизправност: код, човешко съобщение, опционални подробности на ниво поле и request_id, което можете да посочите пред поддръжката. Грешките при валидиране връщат 422 с посочване на засегнатите полета.
  • Идемпотентните ключове при POST заявки записват резултата при потвърждение (commit), а не директно — така че повтореният опит никога не може да възпроизведе кеширан отговор 201, сочещ към запис, който никога не е бил потвърден. Неуспешната заявка освобождава заключването си незабавно, така че грешка 422 няма да блокира вашето коригирано повторение.
  • По-редна пагинация като keyset върху UUIDv7 — стабилна при едновременни записи, без изместване на страниците при вмъкване на редове по време на сканиране.
  • RateLimit-Remaining в отговорите, така че генерираният клиент да може да намали натоварването интелигентно, вместо да гадае.
  • Ресурсите извън обхвата връщат 404 вместо 403 – 403 би потвърдил, че ресурсът съществува. Филтрирането по организация извън вашия обхват връща празна страница поради същата причина.
  • Създаването на сайт е регистрация, а не подготвяне: POST /v1/sites връща 201 със статус pending и никога не блокира изграждането. Събитието се записва в транзакционната изходяща пощенска кутия в същата транзакция като записа, така че сайт съществува тогава и само тогава, когато е гарантирано заявяването на неговото подготвяне.

SDK, CLI и Terraform провайдър

Три потребители на една и съща спецификация за три различни начина на работа.

Клиентски SDK-та

Генерирано за TypeScript, Python, PHP и Go, следвайки спецификацията, така че нов крайен пункт да пристигне на вашия език, без да се налага да чакате ръчно написана обвивка.

Zinnector®, CLI

Създайте структура на WordPress сайт, стартирайте го локално с инсталиран само Node и го деплойнете. Zinnector® проверява предварително вашия проект спрямо слота, към който ще го деплоирате — PHP версия, диск, брой файлове — и предупреждава преди да направите push, а не след това. Той също така влиза в системата, изброява сайтове, деплойва, управлява домейни и DNS, чете пощенски услуги, праща резервни копия, изпълнява позволени в списъка WP-CLI команди, следи логове (tails logs) и стартира масови операции. Безплатен, с лиценз MIT и изграден върху същия публичен API.

Terraform провайдърът

Управлявайте сайтове, домейни, DNS записи, пощенски кутии и планове като инфраструктура като код. terraform apply предоставя хостинг, а вашите среди стават възпроизводими и подлежащи на преглед вместо поредица от кликвания, които никой не е записал.

Интерактивна справка

Генерирана документация, която можете да четете и извиквате директно от браузъра, описваща точно крайната точка (endpoints), които сървърът реализира — тъй като и двете произлизат от една и съща спецификация.

Уебхукове, които оцеляват при срив на вашия краен пункт

За платформата стои устойчиво събитийно ядро: всяка промяна на състоянието записва събитие в транзакционна пощенска кутия в Postgres, атомарно с промяната в базата данни, а релей го публикува в NATS JetStream. Събитията са типизирани и с версия — site.deployed, order.paid, invoice.overdue, backup.completed, abuse.flagged, trial.ending и останалите.

Aбонирайте се за това, което ви интересува

Регистрирайте крайна точка като WebhookSubscription и изберете типовете събития, които да получава. Един поток захранва едновременно известия, анализи, автоматизации и вашата интеграция — вие използвате същите събития, които и ние.

Подписано с HMAC

Всяка доставка е подписана с HMAC, така че можете да проверите дали идва от нас, преди да предприемете действие въз основа на нея.

Направено е повторно опитване с обратно забавяне и е регистрирано

Неуспешните доставяния се опитват отново с експоненциално забавяне, като всеки опит се записва като WebhookDelivery. Можете да преглеждате и да изпращате повторно доставяния от таблото за управление, вместо да изпращате имейл на поддръжката с въпрос какво сме изпратили.

Поне веднъж, така че дедупликирайте по id

Конвейерът умишлено е с гаранция „поне веднъж“, вместо да се опитва да бъде „точно веднъж“. Предавател, който умре по време на публикуване, губи изтичащия си срок на заявка за лизинг и събитията му се публикуват отново. Използвайте дедупликация по идентификатора на плика и вашият потребител ще бъде коректен по проект.

Качване на код в сайта

Един API е само половината от историята за разработчиците. Другата половина е пускането в експлоатация.

  • Свържете GitHub, GitLab или Bitbucket чрез OAuth, като ключовете за внедряване се съхраняват в хранилището за идентификационни данни, а не във файл с конфигурация.
  • Push стартира процес на компилиране и внедряване с обвързване на клонове към среди (main към production, staging към staging) и стъпки за компилиране за composer и npm за всеки стек.
  • Върнете се към предишна версия, когато дадено деплойване се обърка.
  • Клониране в тренировъчна среда (staging) и прехвърляне към лайв, така че промените да бъдат тествани на реално място, преди да достигнат до посетителите.
  • Изолиран SSH, SFTP и FTP достъп за всеки сайт през CageFS, така че всеки клиент вижда само собствените си файлове.
  • wp-cli от терминала на панела и през SSH.
  • VS Code в браузъра чрез code-server — пълен редактор с разширения, вграден терминал и git, който редактира файловете на сайта директно.
  • PHP версия за всеки сайт, редактируеми настройки на PHP, разширения за всеки сайт, среди и реални cron задачи наред с WP-cron.

Четири начина за работа по сайт

API е едната врата. Ето ги и останалите четири, като всяка една от тях е включена в плана, вместо да се продава като ниво за разработчици.

Уеб редакторът

VS Code в браузъра, отворен от страницата на сайта в таблото за управление, редактиращ реалните файлове на този сайт с вграден git и целият редактор в същата CageFS клетка като вашия SFTP достъп. Той редактира ЖИВИЯ сайт — няма междинно копие за тестове (staging), така че файл, който запазите, е публичен в момента, в който бъде записан.

Zinnector® през командния ред

Безплатен, с лиценз MIT и изграден върху същия публичен API. Създайте структура на сайт на WordPress, стартирайте го на собствената си машина, тествайте го предварително спрямо слот за внедряване, който възнамерявате да използвате – PHP версия, диск, брой файлове – и го внедрете. Изисква Node 24 или по-нова версия.

MCP сървърът

Един каталог с инструменти, за да може AI клиентът, който вече използвате, да работи по вашите сайтове чрез същия API и същите разрешения, които таблото за управление използва. Същият сървър, към който се свързва вашият собствен клиент, е този, който е интегриран в уеб редактора. Само за четене, докато не кажете друго.

Достъп за разработчици за отделните сайтове

Клиентската работа не се нуждае от вашата парола. Поканете някого по имейл адрес и той получава точно един сайт: влиза от свое име, с роля на наблюдател, редактор или мениджър, а всеки друг сайт връща 404, преди да се изпълни който и да е манипулятор — политика за сигурност на ниво редове в Postgres и ограничение на ниво заявка, а не една проверка. Собственикът на акаунта я дава и отнема с едно щракване, в сила при следващата им заявка.

И същият API, който вашият AI агент може да използва

Предлагаме платформата като хостван MCP сървър: тънък протоколен адаптер към API на енджина, който използва повторно същия каталог с действия, RBAC и одит следа. Свържете Claude Code, Cursor, ChatGPT, Claude Desktop или който и да е съвместим с MCP клиент веднъж и всяка възможност, която добавяме към API, става достъпна за него автоматично.

Агентът получава три неща: Инструменти (същите API крайни точки, без паралелна логика, която да се отклонява), Ресурси (състояние на сайта само за четене, конфигурация, скорошни логове, метрики, време на работа и статии от базата знания, така че да поставя диагноза с реални данни, преди да предприеме действия) и Подкани (публикувани шаблони на работни потоци като „диагностициране на този сайт“ или „подготовка на миграция“).

Сигурността е същата история като автентикацията: OAuth 2.1, токени, обвързани с вашата организация, и RBAC разрешения с наложено ниво на сигурност на ниво редове, с ограничен обхват и възможност за отменяне за всеки инструмент, пясъчник (sandbox), отделен от производството. Разрушителните действия — изтриване, спиране, таксуване, големи разходи — изискват изрично потвърждение или политика за одобрение от човек. Лимитите на заявките и таваните на разходите обвързват платените действия, задействани от изкуствен интелект, а всяко MCP извикване се регистрира в одита с идентичност, инструмент, аргументи и резултат.

Ние поддържаме протокола, вместо да интегрираме всяко приложение едно по едно, което означава, че вашият избор на AI инструменти може да се променя, без хостинг интеграцията ви да се променя с него.

Често задавани въпроси

Същият ли е публичният API като този, който се използва в таблото за управление?

Да — това е същият двигател с API, публикуван и изпробван. Контролният панел, администраторската конзола, CLI, Terraform провайдърът, MCP сървърът и уебхуковете са потребители на една и съща повърхност, поради което API-то не изостава спрямо панела.

Мога ли да тествам интеграция, без да харча пари или да изграждам реални сървъри?

Да. Ключовете за пясъчник се издават отделно от производствените ключове и работят в тестов режим: без реално таксуване и без реално предоставяне. Насочете вашата CI система към пясъчните идентификационни данни и изпълнете целия цикъл на заявка и отговор безопасно.

Как да спра повтожния опит да създаде два еднакви елемента?

Изпратете Idempotency-Key към вашата POST заявка. Записът за повторно изпълнение се записва при commit, а не в реално време, така че повторенията никога не могат да възпроизведат кеширан успех за ред, който всъщност не е бил записан, а неуспешната заявка освобождава заключването си незабавно, за да не бъде забавено коригираното ви повторение. Доставката на уебкукита е проектирана с гаранция за поне еднократно изпълнение (at-least-once) — правете дедупликация по идентификатора на плика от ваша страна.

Мога ли да дам на един API ключ достъп до всички мои клиентски организации?

Не днес. API ключовете се издават за всяка организация поотделно, така че интеграция, обхващаща няколко клиентски организации, притежава ключ за всяка от тях. Правата също се проверяват по организация за потребителските субъекти: притежаването на sites.create в една организация не дава достъп в отделна, несвързана организация, въпреки че важи за организациите, вложени под нея. Това е нарочно — така компрометираният ключ се ограничава само до собствената му организация и подчинените ѝ подорганизации, а не до цялата платформа.

Какво всъщност позволява вградената роля на разработчик (Developer)?

Ролята на разработчик обхваща четене на организацията, управление на API ключове, преглед и създаване на сайтове, рестартирането им, изчистване на кеша им и преглед и отговор на тикети. Тя съзнателно изключва управлението на фактурирането. Имайте предвид, че правата за деплой и пускане на живо не са част от нея — ако даден член на екипа се нуждае от тях, му назначете роля, която ги съдържа, вместо да предполагате, че „Разработчик“ е най-широката техническа роля.

Какво се случва с моите уеб кукита, ако моята крайна точка престане да работи за един час?

Изпращанията се повтарят с експоненциално забавяне и всеки опит се записва като WebhookDelivery, който можете да прегледате. В изходната система събитията се записват в транзакционна кутия за изходящи съобщения в рамките на същата база данни, в която е и самата промяна, така че нищо не се губи, докато даден потребител е недостъпен — бавният потребител просто закъснява, но никога не чупи производителя, а вие можете да възпроизведете изпращанията от таблото за управление, когато всичко е наред.

Колко струва да започнете да изграждате върху него?

Започнете 14-дневен пробен период с Footprint-Free Hosting без изискване на карта — без данни за плащане, до 5 сайта. Платените планове Footprint-Free започват от $6/месец за PBN 5. Всеки план има 30-дневна гаранция за възстановяване на сумата, безплатни миграции и липса на обвързване с доставчик.

Прочетете спецификацията, след което изградете решението спрямо нея

API с предимство на спецификацията, генерирани SDK, CLI, Terraform доставчик, подписани уебхукове и MCP сървър — на хостинга, който създадохме за над 650 000 сайта по света. Започнете 14-дневен пробен период без изискване за карта и данни за плащане.

Започни безплатно