Ultimaps MCP

официальный

Превращайте данные в картографические изображения: хороплетные, категорийные и точечные карты мира, стран, штатов, округов и почтовых индексов.

Что можно делать с Ultimaps MCP?

  • Render choropleth maps — Запросите карту, окрашенную по числовым значениям, и получите классифицированный PNG с легендой и подписями.
  • Highlight specific regions — Запросите карту с указанными штатами, округами или почтовыми индексами, залитыми пользовательскими цветами, например, «Где мы работаем».
  • Add location pins — Нанесите маркеры по широте/долготе с пользовательскими заголовками, цветами и позициями подписей на любой карте.
  • Validate map data — Запустите пробный прогон, чтобы проверить, какие ключи регионов совпадают, получите исправления опечаток и увидите значения разбивки перед рендерингом.
  • List available maps — Спросите, какие из 187 карт (страны, штаты, округа, почтовые зоны) доступны через list_maps.
  • Get region identifiers — Найдите точные ключи или названия регионов карты для использования в вашем запросе на рендеринг через get_map_regions.

Документация

API карт изображений

Данные на входе, изображение карты на выходе. Один URL отображает хороплетную, категорийную или точечную карту любой страны, штата, округа или ZIP-зоны в формате PNG. Без аккаунта, без ключа, без картографической библиотеки в вашем стеке.

https://api.ultimaps.com/v1/renders?spec=%7B%22mapId%22%3A%22united-states%22%2C%22regions%22%3A%7B%22US-CA%22%3A%22%231D4ED8%22%2C%22US-TX%22%3A%22%23F59E0B%22%2C%22New%20York%22%3A%22%2310B981%22%7D%2C%22title%22%3A%7B%22text%22%3A%22Where%20we%20operate%22%7D%2C%22style%22%3A%7B%22labels%22%3A%7B%22show%22%3Atrue%7D%7D%2C%22output%22%3A%7B%22width%22%3A1200%7D%7D

Это весь запрос. Параметр spec — это JSON в URL-кодировке, а ответ — само изображение.

US map rendered by the Ultimaps API, every state labelled, with California, Texas and New York filled in

Отображается в реальном времени по URL слева, кэшируется на 24 часа.

Встраивается куда угодно

URL возвращает изображение, поэтому оно работает в теге <img>, в README, на странице Notion или в ячейке Google Sheets.

GET или POST

GET принимает все функции, но ограничивает спецификацию 6 КБ и всегда отображает PNG без ключа размером до 1600 пикселей. Отправьте тот же JSON в POST /v1/renders для большего объема данных, ключ для большего холста или Pro-ключ для SVG.

Редактирование после создания

Каждое изображение несет заголовок Link, который открывает рендер в Ultimaps Studio как настоящую карту. Рендеры без ключа открываются для любого, у кого есть ссылка. Рендер с ключом открывается только для того, кто вошел в рабочее пространство этого ключа.

Поваренная книга

Шесть полных запросов. Каждый проверяется на соответствие актуальной схеме запросов в CI, поэтому вы можете копировать их как есть, менять mapId и значения — и работать. Каждое изображение — это ответ на запрос рядом с ним, включая водяной знак, на бесплатном тарифе без ключа.

Выделение нескольких регионов

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

{
  "mapId": "united-states",
  "regions": {
    "US-CA": "#1D4ED8",
    "US-TX": "#F59E0B",
    "New York": "#10B981"
  },
  "title": {
    "text": "Where we operate"
  },
  "style": {
    "labels": {
      "show": true
    }
  },
  "output": {
    "width": 1200
  }
}
curl https://api.ultimaps.com/v1/renders \
  -H "Content-Type: application/json" \
  -d '{
    "mapId": "united-states",
    "regions": {
      "US-CA": "#1D4ED8",
      "US-TX": "#F59E0B",
      "New York": "#10B981"
    },
    "title": {
      "text": "Where we operate"
    },
    "style": {
      "labels": {
        "show": true
      }
    },
    "output": {
      "width": 1200
    }
  }' \
  -o map.png

Map of the United States titled "Where we operate", with California blue, Texas orange and New York green, every other state in the theme default and labelled with its abbreviation

Карта Соединенных Штатов с заголовком «Где мы работаем», с Калифорнией синим, Техасом оранжевым и Нью-Йорком зеленым, все остальные штаты в теме по умолчанию и с подписями их аббревиатур

  • Ключи регионов гибкие. «US-CA», «California» и «CA» ведут к одному и тому же региону.
  • Цвета — это hex-строки. Регионы, которые вы пропустили, сохраняют тему по умолчанию.
  • «style.labels.show» выводит названия всех регионов. Невозможно подписать только те регионы, которые вы раскрасили.

Открыть этот рендер в новой вкладке

Хороплет из чисел

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

{
  "mapId": "united-states",
  "choropleth": {
    "values": {
      "California": 39.5,
      "Texas": 30.5,
      "Florida": 22.6,
      "New York": 19.6,
      "Pennsylvania": 13,
      "Illinois": 12.5,
      "Ohio": 11.8,
      "Georgia": 11,
      "North Carolina": 10.8,
      "Michigan": 10
    },
    "type": "groups",
    "palette": "blues",
    "classes": 5,
    "method": "quantile",
    "noDataColor": "#EEEEEE",
    "format": {
      "decimals": 1,
      "suffix": "M"
    }
  },
  "legend": {
    "position": "left"
  },
  "title": {
    "text": "Population by state, 2025"
  },
  "style": {
    "labels": {
      "show": true,
      "content": "value"
    }
  },
  "output": {
    "width": 1600,
    "scale": 1
  }
}
curl https://api.ultimaps.com/v1/renders \
  -H "Content-Type: application/json" \
  -d '{
    "mapId": "united-states",
    "choropleth": {
      "values": {
        "California": 39.5,
        "Texas": 30.5,
        "Florida": 22.6,
        "New York": 19.6,
        "Pennsylvania": 13,
        "Illinois": 12.5,
        "Ohio": 11.8,
        "Georgia": 11,
        "North Carolina": 10.8,
        "Michigan": 10
      },
      "type": "groups",
      "palette": "blues",
      "classes": 5,
      "method": "quantile",
      "noDataColor": "#EEEEEE",
      "format": {
        "decimals": 1,
        "suffix": "M"
      }
    },
    "legend": {
      "position": "left"
    },
    "title": {
      "text": "Population by state, 2025"
    },
    "style": {
      "labels": {
        "show": true,
        "content": "value"
      }
    },
    "output": {
      "width": 1600,
      "scale": 1
    }
  }' \
  -o map.png

Choropleth map of US state population in 2025, shaded across five blue quantile classes with the break labels in a legend and each value printed in millions on its state

Хороплетная карта населения штатов США в 2025 году, затененная по пяти синим квантильным классам с подписями разрывов в легенде и значениями в миллионах на каждом штате

  • Опустите «type», «classes» и «method» — API определит их по вашим данным.
  • «palette» принимает любую из 26 встроенных палитр. «noDataColor» закрашивает регионы, не покрытые вашими данными.
  • «format» управляет подписями разрывов в легенде, а не форматом изображения.

Открыть этот рендер в новой вкладке

Точки

Маркеры широты и долготы. Точки сочетаются со всем остальным, поэтому вы можете разместить их на хороплетной или обычной карте.

Для вывода SVG нужен Pro-ключ. Опустите «format» для PNG на любом тарифе.

{
  "mapId": "united-states",
  "style": {
    "theme": "paper",
    "defaultRegionColor": "#F1F5F9"
  },
  "locations": [
    {
      "title": "Austin HQ",
      "lat": 30.2672,
      "lon": -97.7431,
      "color": "#1D4ED8"
    },
    {
      "title": "Denver",
      "lat": 39.7392,
      "lon": -104.9903,
      "labelPosition": "right"
    },
    {
      "title": "Seattle",
      "lat": 47.6062,
      "lon": -122.3321
    }
  ],
  "output": {
    "width": 1400,
    "format": "svg"
  }
}
curl https://api.ultimaps.com/v1/renders \
  -H "Content-Type: application/json" \
  -d '{
    "mapId": "united-states",
    "style": {
      "theme": "paper",
      "defaultRegionColor": "#F1F5F9"
    },
    "locations": [
      {
        "title": "Austin HQ",
        "lat": 30.2672,
        "lon": -97.7431,
        "color": "#1D4ED8"
      },
      {
        "title": "Denver",
        "lat": 39.7392,
        "lon": -104.9903,
        "labelPosition": "right"
      },
      {
        "title": "Seattle",
        "lat": 47.6062,
        "lon": -122.3321
      }
    ],
    "output": {
      "width": 1400,
      "format": "svg"
    }
  }' \
  -o map.svg

Map of the United States on a pale theme with labelled pins on Austin, Denver and Seattle, the Austin pin in blue and the other two in the default red

Показано как PNG — запрос запрашивает SVG. Карта в любом случае одинаковая.

  • Каждая точка имеет свой цвет, сторону подписи и видимость подписи.
  • Точки размещаются по координатам. API не геокодирует адреса.

Для SVG нужен Pro-ключ. Путь GET без ключа возвращает только PNG.

Проверка запроса перед рендером

Сухой прогон возвращает JSON вместо изображения: какие ключи совпали, какие нет, что было исправлено и какие получились разрывы. Это не расходует квоту.

{
  "mapId": "united-states",
  "choropleth": {
    "values": {
      "Calfornia": 39.5,
      "Texas": 30.5,
      "Florida": 22.6,
      "Atlantis": 1
    }
  },
  "dryRun": true
}
curl https://api.ultimaps.com/v1/renders \
  -H "Content-Type: application/json" \
  -d '{
    "mapId": "united-states",
    "choropleth": {
      "values": {
        "Calfornia": 39.5,
        "Texas": 30.5,
        "Florida": 22.6,
        "Atlantis": 1
      }
    },
    "dryRun": true
  }'
  • Опечатка «Calfornia» возвращается исправленной на California. «Atlantis» возвращается как несовпавший.
  • Используйте это при подключении данных, затем отключите «dryRun».

Открыть JSON сухого прогона, который возвращается

Ошибка при неверных ключах вместо угадывания

По умолчанию несовпавшие ключи пропускаются. Установите «onUnmatched» в «error», и API вернет 400 с предложениями по каждому ключу — это то, что нужно в запланированном задании.

{
  "mapId": "united-states",
  "choropleth": {
    "values": {
      "California": 39.5,
      "Texassss": 30.5,
      "Atlantis": 1
    }
  },
  "onUnmatched": "error"
}
curl https://api.ultimaps.com/v1/renders \
  -H "Content-Type: application/json" \
  -d '{
    "mapId": "united-states",
    "choropleth": {
      "values": {
        "California": 39.5,
        "Texassss": 30.5,
        "Atlantis": 1
      }
    },
    "onUnmatched": "error"
  }' \
  -o map.png
  • Ошибка 400 — это документ проблемы RFC 9457. Ветвитесь по «code», а не по сообщению.

Открыть 400, который возвращается

Полный справочник полей, включая все 26 палитр, четыре метода разрывов, темы, дополнительные слои и форматирование чисел: справочник API.

Карты, которые можно отобразить

187 карт: от карт мира и континентов до округов США и ZIP-зон. mapId — это слаг карты на этом сайте, и он никогда не меняется после публикации.

united-states-canada france-departments india europe canada united-states united-arab-emirates united-kingdom-counties world

Ключи и лимиты

Ключ повышает лимиты скорости и размер холста. Pro-ключ убирает водяной знак и открывает SVG. Создайте его в Studio в разделе Workspace, затем API. Ключи показываются один раз.

curl https://api.ultimaps.com/v1/renders \
  -H "Authorization: Bearer $ULTIMAPS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "mapId": "united-states",
    "choropleth": {
      "values": {
        "California": 39.5,
        "Texas": 30.5,
        "Florida": 22.6,
        "New York": 19.6,
        "Pennsylvania": 13,
        "Illinois": 12.5,
        "Ohio": 11.8,
        "Georgia": 11,
        "North Carolina": 10.8,
        "Michigan": 10
      },
      "type": "groups",
      "palette": "blues",
      "classes": 5,
      "method": "quantile",
      "noDataColor": "#EEEEEE",
      "format": {
        "decimals": 1,
        "suffix": "M"
      }
    },
    "legend": {
      "position": "left"
    },
    "title": {
      "text": "Population by state, 2025"
    },
    "style": {
      "labels": {
        "show": true,
        "content": "value"
      }
    },
    "output": {
      "width": 1600,
      "scale": 1
    }
  }' \
  -o map.png
ТарифАутентификацияФорматыАтрибуцияХолстЛимит скоростиМесячный лимит
Без ключанетPNGполный водяной знак≤ 1600 px, масштаб 130/час на IP, всплеск 5/минбез месячного лимита
Бесплатный ключBearer um_live_…PNGполный водяной знак≤ 1600 px, масштаб ≤ 210/мин, 50/день500 рендеров
Pro-ключBearer um_live_…PNG, SVGнет≤ 4000 px, масштаб ≤ 430/мин, 1,000/день5,000 рендеров

Месячная квота — это состояние биллинга и возвращает 402, никогда не повторяется. Лимиты скорости и параллелизма возвращают 429 с Retry-After. Сухие прогоны никогда не расходуют квоту. Проверьте GET /v1/usage, чтобы узнать свое положение.

Из Claude, Codex или любого MCP-клиента

Попросите карту в чате — и изображение вернется в разговор. @ultimaps/mcp — это этот API в виде MCP-инструментов через stdio, без аккаунта: render_map, list_maps и get_map_regions.

claude mcp add ultimaps -- npx -y @ultimaps/mcp
codex mcp add ultimaps -- npx -y @ultimaps/mcp

Клиенты, которые читают файл конфигурации, принимают те же два значения. Это claude_desktop_config.json.

{
  "mcpServers": {
    "ultimaps": {
      "command": "npx",
      "args": ["-y", "@ultimaps/mcp"],
      "env": { "ULTIMAPS_API_KEY": "" }
    }
  }
}

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

Не в v1

v1 отображает изображения. Он не делает следующего:

  • Публикация интерактивных или встраиваемых карт
  • Вывод в PDF
  • Геокодирование адресов в координаты
  • Чтение геометрии, лежащей в основе карты

Если вам нужно что-то из этого, скажите нам, что именно, и мы сообщим, когда это появится. То, о чем просят люди, — это то, что мы строим дальше.

Справочник

Справочник API

Каждая конечная точка и поле, в реальном времени против работающего API.

Коды ошибок

Каждый код, его HTTP-статус и нужно ли повторять запрос.

openapi.json

Контракт OpenAPI 3.1. Сгенерируйте клиент из него.

llms-full.txt

Весь API одним текстовым файлом для агентов кодирования.

@ultimaps/mcp

MCP-сервер. Три инструмента, stdio, без аккаунта.

Часто задаваемые вопросы

Есть ли API хороплетных карт?

Да, это основная функция этого API. Отправьте набор ключей регионов и чисел — и получите классифицированную, раскрашенную карту с легендой в формате PNG. API выбирает метод разрывов, количество классов и палитру из ваших данных, если вы не зададите их сами.

Как сгенерировать изображение карты из URL?

Поместите JSON запроса в параметр spec запроса GET /v1/renders — и ответом будет сам PNG. Этот URL работает в теге img, в markdown-изображении, в блоке изображения Notion или в формуле IMAGE() Google Sheets, без ключа и без аккаунта.

Можно ли использовать API карт изображений без ключа?

Да. Тариф без ключа отображает PNG до 1600 на 1600 пикселей при 30 рендерах в час на IP, с водяным знаком Ultimaps. Ключ повышает лимиты, а Pro-ключ убирает водяной знак и добавляет SVG.

Это API карт округов? Можно ли получить границы округов?

Он отображает карты округов как изображения, включая все 3 143 округа США, но не предоставляет геометрию границ. Если вам нужны GeoJSON или шейп-файлы для собственной обработки, используйте Census TIGER или Natural Earth. Этот API возвращает картинки.

Геокодирует ли он адреса?

Нет. Точки размещаются по широте и долготе, а цвета регионов сопоставляются по ключу или названию региона. Геокодирование — это функция Studio, а не API.

Есть ли MCP-сервер?

Да. Установите @ultimaps/mcp в Claude Code, Codex, Claude Desktop, Cursor, VS Code или любой другой MCP-клиент — и он предоставит render_map, list_maps и get_map_regions через stdio. Он работает на Node.js 20 или новее, не требует аккаунта и читает ULTIMAPS_API_KEY, если вы его задали.

Можно ли получить SVG вместо PNG?

Да, с Pro-ключом. Установите output.format в svg. Тарифы без ключа и с бесплатным ключом возвращают PNG.

Что будет, если названия моих регионов не совпадут?

Ключи сопоставляются без учета регистра с кодами регионов, названиями, распространенными псевдонимами и нормализованными названиями, поэтому US-CA, California и CA ведут к одному региону, а однозначные опечатки исправляются и сообщаются. По умолчанию несовпавшие ключи пропускаются и сообщаются в заголовке ответа. Установите onUnmatched в error — и запрос завершится ошибкой с предложениями по каждому ключу.

Как поместить карту в README на GitHub?

Используйте URL GET без ключа как markdown-изображение. GitHub проксирует его через Camo, и поскольку API отправляет заголовок кэша на 24 часа, изображение обновляется ежедневно, а не замораживается.

Можно ли отобразить карту на серверной стороне?

Да. Каждый рендер происходит на наших серверах, поэтому в вашем стеке нет браузера, headless Chrome или картографической библиотеки. Один HTTP-вызов возвращает готовое изображение.