Tilda API
Автоматическая интеграция проекта на Тильде с собственным сайтом
Все запросы передаются обычным GET методом. Ответ возвращается в JSON формате. Успешный ответ: status: FOUND, ответ с ошибкой status: ERROR. Существует лимит на количество запросов: 150 запросов в час.
API нужен для синхронизации контента, созданного на Тильде, с вашим сайтом. Запрещается обращаться к серверу Тильды и получать данные при каждом заходе посетителя вашего сайта.

Необходимо копировать полностью весь контент к себе на сервер (включая изображения, скрипты и стили) и уже с него раздавать пользователям. При создании нагрузки из-за постоянного обращения к нашим серверам, ваш аккаунт будет блокирован и функция API будет выключена.

При правильной организации логики синхронизации должно произойти 1-3 обращения, поэтому 150 обращений в час к серверу — более чем достаточно. После синхронизации обращений нет до тех пор, пока вы не внесли изменения на странице, и вам нужно заново синхронизировать информацию.
Начало работы
1. Взаимодействие с API доступно для тарифа Business.
2. Для начала вам нужно получить publickey и secretkey. Это вы можете сделать в разделе API в своем личном кабинете.
Список запросов
Список проектов
/v1/getprojectslist

Информация о проекте
/v1/getproject

Информация о проекте для экспорта
/v1/getprojectexport

Список страниц в проекте
/v1/getpageslist

Информация о странице (+ body html-code)
/v1/getpage

Информация о странице (+ fullpage html-code)
/v1/getpagefull

Информация о странице для экспорта (+ body html-code)
/v1/getpageexport

Информация о странице для экспорта (+ fullpage html-code)
/v1/getpagefullexport
Адрес всех запросов: http://api.tildacdn.info
В каждом запросе необходимо передавать переменные: publickey и secretkey, и опционально в зависимости от запроса: projectid или pageid
В личном кабинете в настройках у каждого проекта во вкладке "Export" вы можете указать значения export_csspath, export_jspath, export_imgpath. Таким образом вы можете задавать специальные относительные или абсолютные пути к файлам которые будут хранится у вас на сервере, если ваша задача создавать полную копию страниц у себя на сервере.
Получить список проектов
Строка запроса GET:
http://api.tildacdn.info/v1/getprojectslist/?publickey=00000000000000000000&secretkey=00000000000000000000
Ответ в формате json:
{
"status":"FOUND",
"result":[
{
"id":"0",
"title":"First Project",
"descr":"Some info"
},
{
"id":"1",
"title":"Second Project",
"descr":""
},
...
]
}
Получить информацию о проекте
Строка запроса GET:
http://api.tildacdn.info/v1/getproject/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
{
"status":"FOUND",
"result":{
"id":"0",
"title":"Project name",
"descr":"some description",
"customdomain":"",
"css":["http://tilda.ws/css/tilda-grid-2.0.css",
"http://tilda.ws/project0/tilda-blocks-2.0.css"],
"js":["http://code.jquery.com/jquery-1.10.2.min.js",
"http://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js",
"http://tilda.ws/js/jquery.videoBG.js",
"http://tilda.ws/js/jquery.parallax-1.1.3.js",
"http://tilda.ws/js/tilda-scripts-2.0.js"
]
}
}
Получить информацию о проекте для экспорта
Строка запроса GET:
http://api.tildacdn.info/v1/getprojectexport/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
{
"status":"FOUND",
"result":{
"id":"0",
"title":"Project name",
"descr":"some description",
"customdomain":"",
"export_csspath":"",
"export_jspath":"",
"export_imgpath":"",
"indexpageid":"",
"css":[{"from":"","to":""},{"from":"","to":""},{"from":"","to":""}],
"js":[{"from":"","to":""},{"from":"","to":""},{"from":"","to":""}],
"images":[{"from":"","to":""},{"from":"","to":""},{"from":"","to":""}],
,"htaccess":""
}
}
Получить список страниц в проекте
Строка запроса GET:
http://api.tildacdn.info/v1/getpageslist/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
Ответ в формате json:
{
"status":"FOUND",
"result":[
{
"id":"1001",
"projectid":"0",
"title":"Page title first",
"descr":"",
"img":"",
"featureimg":"",
"alias":"",
"date":"2014-05-16 14:45:53",
"sort":"80",
"published":"1419702868",
"filename":"page1001.html"
},
{
"id":"1002",
"projectid":"0",
"title":"Page title second",
"descr":"",
"img":"",
"featureimg":"",
"alias":"",
"date":"2014-05-17 10:50:00",
"sort":"90",
"published":"1419702277",
"filename":"page1002.html"
},
...
]
}
Получить информацию о странице
+ body html-код
Строка запроса GET:
http://api.tildacdn.info/v1/getpage/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
{
"status":"FOUND",
"result":
{
"id":"1001",
"projectid":"0",
"title":"Page title",
"descr":"",
"img":"",
"featureimg":"",
"alias":"",
"date":"2014-05-16 14:45:53",
"sort":"80",
"published":"1419702868",
"html":"some html page code",
"filename":"page1001.html"
}
}
Получить информацию о странице
+ полный html-код
Строка запроса GET:
http://api.tildacdn.info/v1/getpagefull/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
{
"status":"FOUND",
"result":
{
"id":"1001",
"projectid":"0",
"title":"Page title",
"descr":"",
"img":"",
"featureimg":"",
"alias":"",
"date":"2014-05-16 14:45:53",
"sort":"80",
"published":"1419702868",
"html":"some html page code",
"filename":"page1001.html"
}
}
Получить информацию о странице для экспорта
+ body page html-code
Строка запроса GET:
http://api.tildacdn.info/v1/getpageexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
{
"status":"FOUND",
"result":
{
"id":"1001",
"projectid":"0",
"title":"Page title",
"descr":"",
"img":"",
"featureimg":"",
"alias":"",
"date":"2014-05-16 14:45:53",
"sort":"80",
"published":"1419702868",
"images":[{"from":"","to":""},{"from":"","to":""},{"from":"","to":""}],
"html":"body page html-code with local links to files",
"filename":"page1001.html"
}
}
Получить информацию о странице для экспорта
+ full page html-code
Строка запроса GET:
http://api.tildacdn.info/v1/getpagefullexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
{
"status":"FOUND",
"result":
{
"id":"1001",
"projectid":"0",
"title":"Page title",
"descr":"",
"img":"",
"featureimg":"",
"alias":"",
"date":"2014-05-16 14:45:53",
"sort":"80",
"published":"1419702868",
"images":[{"from":"","to":""},{"from":"","to":""},{"from":"","to":""}],
"html":"full page html-code with local links to files",
"filename":"page1001.html"
}
}
Webhook (или callback)
Для того, чтобы делать синхронизацию автоматически, вы можете указать адрес скрипта, на который будет присылаться запрос с уведомлением каждый раз, когда пользователь нажимает кнопку Publish. Таким образом, вы можете обновлять контент, а также добавлять новые страницы на своем сервере.

Webhook можно указать на странице, где вы генерировали ключи к API, только чуть ниже.

https://tilda.cc/identity/apikeys/
Уведомление присылается методом GET.
Параметры: pageid, projectid, published, publickey

В ответ вы должны подтвердить, что получили запрос.
Положительный ответ: ok
(В php - просто выведите echo"ok";)

Если Тильда не получит ответ, то будет три попытки повторного запроса на ваш сервер.
Важно: Время максимального ожидания ответа от вашего сервера —10 секунд. Если ответ не получен, соединение обрывается. Поэтому вы должны только зарегистрировать у себя это уведомление, а потом, через cron, сделать синхронизацию. Так как, обычно, если у вас на странице много картинок, этого времени не достаточно.

how to
Примерные сценарии использования
Многие разработчики используют Tilda API в двух случаях: когда вам нужно автоматизировать процесс экспорта, сохраняя у себя на сервере полностью все файлы проекта, либо интегрируя страницы, созданные на Тильде со своими шаблонами сайта.
Экспорт всех страниц в проекте
Наша задача — сохранить полностью локально на нашем сервере проект, который опубликован на Тильде в нашем аккаунте.
  • В личном кабинете в настройках проекта во вкладке export прописываем пути для картинок, js и css файлов. Например /img/ /js/ и /css/
  • Запоминаем projectid нужного нам проекта.
  • У себя на сервере создаем скрипт который будет выполнять запросы к API, создавать файлы и записывать в них информацию.
  • Создаем папки на сервере (js,css,images), куда будем копировать файлы.
  1. Получаем информацию по нужному нам проекту для экспорта. Запрос getprojectexport
  2. Проходим циклом массивы css,js,images, которые мы получили из запроса. В них хранится список файлов. from — адрес файла источника, to — его локальное имя, под которым его нужно сохранить. Копируем нужные файлы js, css, images в нужные нам места. Эти файлы общие для всех страниц в проекте. Создаем файл .htaccess и записываем в него содержимое из переменной htaccess
  3. Получаем список всех страниц в нашем проекте. Запрос getpageslist
  4. Циклом проходим по полученному списку страниц. В цикле:
  5. Для каждой страницы получаем информацию для экспорта. Запрос getpagefullexport.
  6. Сохраняем в нужное место из массива images изображения, которые используются на странице.
  7. Создаем файл с именем страницы (переменная filename) и записываем в нее содержимое переменной html.

Если ваша задача интегрировать страницы с Тильды в ваш шаблон (где уже есть header, menu, footer и т.д.), то все тоже самое, только используйте запрос getpageexport. Он возвращает body html-код, который вы можете вставлять в зону для контента в вашем шаблоне.
Интеграция без копирования изображений и js,css файлов
Если у вас не высоконагруженный проект, и вы не хотите разбираться с копированием файлов — используйте запрос getpage, который возвращает body html-код. Изображения будут грузиться с сервера Тильды. Единственное, не забудьте в вашем шаблоне подключить css и js файлы. Их список можно получить выполнив запрос getproject
Простой запрос на примере PHP:

$result = file_get_contents('http://api.tildacdn.info/v1/getprojectexport/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0');
$project=json_decode($result, true);
print_r($project);
В соответствии с Пользовательским соглашением при использовании функции экспорта через API, вам необходимо самостоятельно указать идентификатор разработчика с ссылкой на принадлежность базовых ресурсов Администрации.
Made on
Tilda