Инструкция по Tumblr API

Tumblr API: Блог — Метрики поста по идентификатору блога

Получайте агрегированные показатели по сущности «Блог» из Tumblr без самостоятельного расчёта по полному набору объектов.

Операция «Метрики поста по идентификатору блога» подходит для дашбордов, скоринга и регулярной отчётности, когда важен компактный срез показателей.

Метод GET
Сущность Блог
Версии 1
Что делает этот эндпоинт

Что можно сделать с этим API-методом

Сначала оцените результат и сценарии применения, затем переходите к параметрам и рабочему примеру запроса.

Результат запроса

Ответ содержит готовую сводку по сущности «Блог»: ключевые счётчики и показатели в структуре выбранной версии API.

Когда использовать

Операция «Метрики поста по идентификатору блога» подходит для дашбордов, скоринга и регулярной отчётности, когда важен компактный срез показателей.

Типовые сценарии использования

Продуктовые дашборды

Показывайте основные показатели Tumblr без загрузки и обработки полной коллекции.

Динамика и мониторинг

Сохраняйте периодические срезы и сравнивайте изменение метрик во времени.

Скоринг объектов

Используйте готовые показатели как признаки для внутренних рейтингов и правил.

Доступные версии

Версия ответа

Обе версии решают одну и ту же задачу и принимают одинаковые параметры. Переключатель нужен, чтобы сравнить структуру ответа и выбрать версию, которую ожидает ваш клиент.

Версия ответа V2

Переключайте версии на этой странице, чтобы сравнивать структуру ответа без смены URL инструкции.

V1 Недоступно

Что остается одинаковым

Аутентификация, обязательные параметры и форма запроса одинаковы для V1 и V2. Версия задаётся в пути запроса и определяет структуру ответа.

Что меняется между версиями

Главное отличие — envelope ответа. Для новых интеграций лучше использовать V2, а V1 оставлять только для совместимости с уже существующей клиентской интеграцией.

Как использовать

Как вызвать метод

Для обеих версий используется один заголовок API-ключа и одинаковые параметры строки запроса. Ниже сначала показаны общие параметры, затем путь и примеры кода для выбранной версии.

Входные параметры

Общие параметры
Параметр Обязателен Тип Пример Описание
blog_identifier Да str staff Tumblr blog username or host without protocol or path. Pass `staff` or `staff.tumblr.com`, not a full URL. Example: staff.
post_type Нет all | regular | photo | quote | link | conversation | audio | video | answer all Optional Tumblr post type filter. Use `all` for the default mixed timeline. Examples: all, photo.
tag Нет str | None tumblr staff Optional Tumblr tag filter. Spaces are allowed, slashes and URL fragments are not. Example: tumblr staff.

Путь запроса для выбранной версии

V2

Версию имеет смысл выбирать, когда вы копируете точный путь эндпоинта, пример URL и фрагмент кода. Список параметров выше при этом остается тем же самым.

GET /api/v2/tumblr.com/blog/post-metrics-by-blog-identifier

Нормализованный формат

Примеры кода

curl --request GET \
  --url "https://www.scrapestorm.net/api/v2/tumblr.com/blog/post-metrics-by-blog-identifier" \
  --header "X-API-Key: 00000000-0000-4000-8000-000000000000" \
  --get --data-urlencode 'blog_identifier=staff' \
  # Optional parameters:
  # --data-urlencode 'post_type=all'
  # --data-urlencode 'tag=tumblr staff'
Пример ответа

Пример ответа по версиям

Пример сокращён до ключевых полей и первых элементов коллекций, чтобы структуру ответа можно было быстро оценить. Переключатель версии меняет формат JSON.

Пример ответа

V2 — JSON

Проверенный пример

Компактный JSON-пример сформирован из последней успешной проверки версии V2.

{
  "success": true,
  "status": "ok",
  "search_context": {
    "blog_identifier": "staff",
    "post_type": "all",
    "tag": "tumblr staff"
  },
  "data": {
    "blog": {
      "url": "https://staff.tumblr.com",
      "blog_identifier": "staff.tumblr.com",
      "uuid": "t:0aY0xL2Fi1OFJg4YxpmegQ",
      "username": "staff",
      "display_name": "Tumblr Staff",
      "description": null,
      "emails": [],
      "external_links": [],
      "rss_url": null,
      "timezone": "US/Eastern",
      "is_custom_domain": false,
      "avatar_url": "https://example.com/image.jpg",
      "avatar_urls": "https://example.com/image.jpg"
    },
    "analytics": {
      "all_posts": {
        "analyzed_posts_count": 1,
        "last_post_date": "2026-04-15T20:05:52+00:00",
        "total_engagement": 46265,
        "avg_engagement_rate_per_post": 0.0,
        "peak_engagement_rate_per_post": 0.0,
        "avg_weighted_engagement_score": 46265.0,
        "total_engagement_rate": 0.0,
        "median_engagement_per_post": 46265.0,
        "max_engagement_per_post": 46265,
        "avg_caption_length": 499,
        "avg_posts_per_week": 0,
        "avg_posts_per_month": 1,
        "posts_count_last_7_days": 0,
        "posts_count_last_30_days": 0,
        "total_notes": 46265,
        "avg_notes_per_post": 46265,
        "total_note_rate": 0.0,
        "content_format_breakdown": [
          {
            "format": "regular",
            "count": 1,
            "percentage": 100.0
          }
        ],
        "posting_time_analysis": {
          "by_day_of_week": [
            {
              "day": "Wednesday",
              "count": 1
            }
          ],
          "by_hour_of_day": [
            {
              "hour": 20,
              "count": 1
            }
          ]
        },
        "top_posts_by_engagement": [
          {
            "item_id": "813992302192263168",
            "post_id": "813992302192263168",
            "url": "https://staff.tumblr.com/post/813992302192263168/a-note-from-the-tumblr-team",
            "title": "A note from the Tumblr team A few weeks ago, a small but higher-than-normal number of accounts were mistakenly suspended. The suspensions were quickly reversed, but our response…",
            "text": "A note from the Tumblr team A few weeks ago, a small but higher-than-normal number of accounts were mistakenly suspended. The suspensions were quickly reversed, but our response…",
            "created_at": "2026-04-15T20:05:52+00:00",
            "content_format": "regular",
            "engagement": 46265,
            "is_sponsored": false,
            "sponsored_detection_source": null,
            "sponsored_detection_confidence": null,
            "notes": 46265
          }
        ],
        "engagement_by_format": [
          {
            "format": "regular",
            "count": 1,
            "total_engagement": 46265,
            "avg_engagement_per_post": 46265.0,
            "avg_engagement_rate_per_post": 0.0
          }
        ]
      },
      "sponsored_posts": {
        "analyzed_posts_count": 0,
        "total_engagement": 0,
        "avg_engagement_rate_per_post": 0.0,
        "peak_engagement_rate_per_post": 0.0,
        "avg_weighted_engagement_score": 0.0,
        "total_engagement_rate": 0.0,
        "median_engagement_per_post": 0.0,
        "max_engagement_per_post": 0,
        "avg_caption_length": 0,
        "avg_posts_per_week": 0,
        "avg_posts_per_month": 0,
        "posts_count_last_7_days": 0,
        "posts_count_last_30_days": 0
      },
      "organic_posts": {
        "analyzed_posts_count": 1,
        "last_post_date": "2026-04-15T20:05:52+00:00",
        "total_engagement": 46265,
        "avg_engagement_rate_per_post": 0.0,
        "peak_engagement_rate_per_post": 0.0,
        "avg_weighted_engagement_score": 46265.0,
        "total_engagement_rate": 0.0,
        "median_engagement_per_post": 46265.0,
        "max_engagement_per_post": 46265,
        "avg_caption_length": 499,
        "avg_posts_per_week": 0,
        "avg_posts_per_month": 1,
        "posts_count_last_7_days": 0,
        "posts_count_last_30_days": 0,
        "total_notes": 46265,
        "avg_notes_per_post": 46265,
        "total_note_rate": 0.0,
        "content_format_breakdown": [
          {
            "format": "regular",
            "count": 1,
            "percentage": 100.0
          }
        ],
        "posting_time_analysis": {
          "by_day_of_week": [
            {
              "day": "Wednesday",
              "count": 1
            }
          ],
          "by_hour_of_day": [
            {
              "hour": 20,
              "count": 1
            }
          ]
        },
        "top_posts_by_engagement": [
          {
            "item_id": "813992302192263168",
            "post_id": "813992302192263168",
            "url": "https://staff.tumblr.com/post/813992302192263168/a-note-from-the-tumblr-team",
            "title": "A note from the Tumblr team A few weeks ago, a small but higher-than-normal number of accounts were mistakenly suspended. The suspensions were quickly reversed, but our response…",
            "text": "A note from the Tumblr team A few weeks ago, a small but higher-than-normal number of accounts were mistakenly suspended. The suspensions were quickly reversed, but our response…",
            "created_at": "2026-04-15T20:05:52+00:00",
            "content_format": "regular",
            "engagement": 46265,
            "is_sponsored": false,
            "sponsored_detection_source": null,
            "sponsored_detection_confidence": null,
            "notes": 46265
          }
        ],
        "engagement_by_format": [
          {
            "format": "regular",
            "count": 1,
            "total_engagement": 46265,
            "avg_engagement_per_post": 46265.0,
            "avg_engagement_rate_per_post": 0.0
          }
        ]
      },
      "segment_comparison": {
        "sponsored_content_share": 0.0,
        "organic_content_share": 100.0,
        "organic_vs_sponsored_engagement_rate_gap": 0.0,
        "sponsored_to_organic_avg_engagement_ratio": 0.0
      }
    },
    "feed": {
      "count": 1,
      "items": [
        {
          "url": "https://staff.tumblr.com/post/813992302192263168/a-note-from-the-tumblr-team",
          "post_id": "813992302192263168",
          "summary": "A note from the Tumblr team A few weeks ago, a small but higher-than-normal number of accounts were mistakenly suspended. The suspensions were quickly reversed, but our response…",
          "body_html": "<h2><b>A note from the Tumblr team</b></h2><p>A few weeks ago, a small but higher-than-normal number of accounts were mistakenly suspended. The suspensions were quickly reversed…",
          "blog_username": "staff",
          "blog_display_name": "Tumblr Staff",
          "blog_url": "https://staff.tumblr.com",
          "blog_avatar_url": "https://example.com/image.jpg",
          "blog_avatar_urls": "https://example.com/image.jpg",
          "published_at": "2026-04-15T20:05:52Z",
          "note_count": 46265,
          "type": "regular",
          "slug": "a-note-from-the-tumblr-team",
          "tags": [
            "tumblr staff"
          ],
          "is_sponsored": false,
          "sponsored_detection_source": null,
          "sponsored_detection_confidence": null
        }
      ]
    }
  }
}
Что делать дальше

Продолжить оценку API-метода

Используйте инструкцию как первую точку принятия решения, а затем переходите к покрытию, стоимости и общим правилам интеграции перед запуском API-метода.

Открыть страницу Tumblr API

Сравните соседние сущности, группы API-методов и связанные инструкции перед внедрением.

Открыть страницу платформы

Сравнить стоимость API-методов

Посмотрите, где этот API-метод находится в публичной таблице цен, прежде чем масштабировать использование.

Открыть тарифы

Проверить правила интеграции

Откройте стартовую документацию, чтобы быстро проверить аутентификацию, версионирование, повторы запросов и различия между тестовым и рабочим API.

Открыть документацию
FAQ

Вопросы, которые команды задают до внедрения

Эти ответы помогают понять, подходит ли API-метод под ваш сценарий, выбор версии и запуск.

Какие данные возвращает этот метод Tumblr API?

Метод выполняет операцию «Метрики поста по идентификатору блога» для сущности «Блог». Точный набор полей показан в компактном примере ответа ниже.

Какую версию ответа выбрать: V1 или V2?

Для новой интеграции выбирайте V2 с нормализованной структурой. V1 нужен только для совместимости с клиентами, которые уже используют исходный формат платформы.

Что нужно для первого запроса?

Создайте API-ключ, передайте его в заголовке и заполните обязательные параметры из таблицы. Готовые примеры кода уже содержат правильный путь и структуру запроса.