You became API-first. Now become agent-first on the platform that already runs your APIs.
As organizations transition into the agentic era, Gravitee provides the enterprise-grade architecture to secure, observe, and productize every AI agent, API, and event. We help enterprise AI operations and AI product builders answer the most critical question in modern infrastructure: how do we adopt AI without losing control of cost, security, and data?
Gravitee is the only platform where you can catalog every API, event, MCP server, tool, agent, and model in your enterprise; author fine-grained, catalog-aware authorization policies against those entities; and enforce those policies at the wire level across all LLM, MCP, A2A, API, and event traffic.
Subscribe to our channel for product tutorials, architectural deep-dives, and industry thought leadership covering our core solutions: Agent Management, Authorization Management, Identity & Access Management, and API & Event Stream Management.
Invidious encountered an error while trying to parse this item. For more information see below:
Title: `Missing hash key: "collectionThumbnailViewModel" (KeyError)` Date: `2026-06-02T00:07:23Z` Route: `/channel/UC39qIVFeaGCNbuAfHNxBS2Q/streams` Version: `2026.02.07-118d635 @ (HEAD detached at v2.20260207.0)` <details> <summary>Backtrace</summary> <p> ``` Missing hash key: "collectionThumbnailViewModel" (KeyError) from /usr/share/crystal/src/hash.cr:1198:9 in '??' from /usr/share/crystal/src/json/any.cr:149:5 in 'process' from src/invidious/yt_backend/extractors.cr:524:17 in 'process' from src/invidious/yt_backend/extractors.cr:1035:17 in 'parse_item' from src/invidious/yt_backend/extractors.cr:1082:14 in 'extract_items' from src/invidious/channels/videos.cr:73:12 in 'get_60_livestreams:continuation:sort_by' from src/invidious/routes/channels.cr:127:34 in 'streams' from lib/kemal/src/kemal/route.cr:13:9 in '->' from src/invidious/helpers/handlers.cr:31:37 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/filter_handler.cr:22:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:80:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/ext/kemal_static_file_handler.cr:127:14 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/request_processor.cr:51:11 in 'handle_client' from /usr/share/crystal/src/fiber.cr:170:11 in 'run' from ??? ``` </p> </details>
Invidious encountered an error while trying to parse this item. For more information see below:
Title: `Missing hash key: "collectionThumbnailViewModel" (KeyError)` Date: `2026-06-02T00:07:23Z` Route: `/channel/UC39qIVFeaGCNbuAfHNxBS2Q/streams` Version: `2026.02.07-118d635 @ (HEAD detached at v2.20260207.0)` <details> <summary>Backtrace</summary> <p> ``` Missing hash key: "collectionThumbnailViewModel" (KeyError) from /usr/share/crystal/src/hash.cr:1198:9 in '??' from /usr/share/crystal/src/json/any.cr:149:5 in 'process' from src/invidious/yt_backend/extractors.cr:524:17 in 'process' from src/invidious/yt_backend/extractors.cr:1035:17 in 'parse_item' from src/invidious/yt_backend/extractors.cr:1082:14 in 'extract_items' from src/invidious/channels/videos.cr:73:12 in 'get_60_livestreams:continuation:sort_by' from src/invidious/routes/channels.cr:127:34 in 'streams' from lib/kemal/src/kemal/route.cr:13:9 in '->' from src/invidious/helpers/handlers.cr:31:37 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/filter_handler.cr:22:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:80:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/ext/kemal_static_file_handler.cr:127:14 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/request_processor.cr:51:11 in 'handle_client' from /usr/share/crystal/src/fiber.cr:170:11 in 'run' from ??? ``` </p> </details>
Invidious encountered an error while trying to parse this item. For more information see below:
Title: `Missing hash key: "collectionThumbnailViewModel" (KeyError)` Date: `2026-06-02T00:07:23Z` Route: `/channel/UC39qIVFeaGCNbuAfHNxBS2Q/streams` Version: `2026.02.07-118d635 @ (HEAD detached at v2.20260207.0)` <details> <summary>Backtrace</summary> <p> ``` Missing hash key: "collectionThumbnailViewModel" (KeyError) from /usr/share/crystal/src/hash.cr:1198:9 in '??' from /usr/share/crystal/src/json/any.cr:149:5 in 'process' from src/invidious/yt_backend/extractors.cr:524:17 in 'process' from src/invidious/yt_backend/extractors.cr:1035:17 in 'parse_item' from src/invidious/yt_backend/extractors.cr:1082:14 in 'extract_items' from src/invidious/channels/videos.cr:73:12 in 'get_60_livestreams:continuation:sort_by' from src/invidious/routes/channels.cr:127:34 in 'streams' from lib/kemal/src/kemal/route.cr:13:9 in '->' from src/invidious/helpers/handlers.cr:31:37 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/filter_handler.cr:22:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:80:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/ext/kemal_static_file_handler.cr:127:14 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/request_processor.cr:51:11 in 'handle_client' from /usr/share/crystal/src/fiber.cr:170:11 in 'run' from ??? ``` </p> </details>
Invidious encountered an error while trying to parse this item. For more information see below:
Title: `Missing hash key: "collectionThumbnailViewModel" (KeyError)` Date: `2026-06-02T00:07:23Z` Route: `/channel/UC39qIVFeaGCNbuAfHNxBS2Q/streams` Version: `2026.02.07-118d635 @ (HEAD detached at v2.20260207.0)` <details> <summary>Backtrace</summary> <p> ``` Missing hash key: "collectionThumbnailViewModel" (KeyError) from /usr/share/crystal/src/hash.cr:1198:9 in '??' from /usr/share/crystal/src/json/any.cr:149:5 in 'process' from src/invidious/yt_backend/extractors.cr:524:17 in 'process' from src/invidious/yt_backend/extractors.cr:1035:17 in 'parse_item' from src/invidious/yt_backend/extractors.cr:1082:14 in 'extract_items' from src/invidious/channels/videos.cr:73:12 in 'get_60_livestreams:continuation:sort_by' from src/invidious/routes/channels.cr:127:34 in 'streams' from lib/kemal/src/kemal/route.cr:13:9 in '->' from src/invidious/helpers/handlers.cr:31:37 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/filter_handler.cr:22:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:80:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/ext/kemal_static_file_handler.cr:127:14 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/request_processor.cr:51:11 in 'handle_client' from /usr/share/crystal/src/fiber.cr:170:11 in 'run' from ??? ``` </p> </details>
Invidious encountered an error while trying to parse this item. For more information see below:
Title: `Missing hash key: "collectionThumbnailViewModel" (KeyError)` Date: `2026-06-02T00:07:23Z` Route: `/channel/UC39qIVFeaGCNbuAfHNxBS2Q/streams` Version: `2026.02.07-118d635 @ (HEAD detached at v2.20260207.0)` <details> <summary>Backtrace</summary> <p> ``` Missing hash key: "collectionThumbnailViewModel" (KeyError) from /usr/share/crystal/src/hash.cr:1198:9 in '??' from /usr/share/crystal/src/json/any.cr:149:5 in 'process' from src/invidious/yt_backend/extractors.cr:524:17 in 'process' from src/invidious/yt_backend/extractors.cr:1035:17 in 'parse_item' from src/invidious/yt_backend/extractors.cr:1082:14 in 'extract_items' from src/invidious/channels/videos.cr:73:12 in 'get_60_livestreams:continuation:sort_by' from src/invidious/routes/channels.cr:127:34 in 'streams' from lib/kemal/src/kemal/route.cr:13:9 in '->' from src/invidious/helpers/handlers.cr:31:37 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/filter_handler.cr:22:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:80:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/ext/kemal_static_file_handler.cr:127:14 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/request_processor.cr:51:11 in 'handle_client' from /usr/share/crystal/src/fiber.cr:170:11 in 'run' from ??? ``` </p> </details>
Invidious encountered an error while trying to parse this item. For more information see below:
Title: `Missing hash key: "collectionThumbnailViewModel" (KeyError)` Date: `2026-06-02T00:07:23Z` Route: `/channel/UC39qIVFeaGCNbuAfHNxBS2Q/streams` Version: `2026.02.07-118d635 @ (HEAD detached at v2.20260207.0)` <details> <summary>Backtrace</summary> <p> ``` Missing hash key: "collectionThumbnailViewModel" (KeyError) from /usr/share/crystal/src/hash.cr:1198:9 in '??' from /usr/share/crystal/src/json/any.cr:149:5 in 'process' from src/invidious/yt_backend/extractors.cr:524:17 in 'process' from src/invidious/yt_backend/extractors.cr:1035:17 in 'parse_item' from src/invidious/yt_backend/extractors.cr:1082:14 in 'extract_items' from src/invidious/channels/videos.cr:73:12 in 'get_60_livestreams:continuation:sort_by' from src/invidious/routes/channels.cr:127:34 in 'streams' from lib/kemal/src/kemal/route.cr:13:9 in '->' from src/invidious/helpers/handlers.cr:31:37 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/filter_handler.cr:22:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:80:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/ext/kemal_static_file_handler.cr:127:14 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/request_processor.cr:51:11 in 'handle_client' from /usr/share/crystal/src/fiber.cr:170:11 in 'run' from ??? ``` </p> </details>
Invidious encountered an error while trying to parse this item. For more information see below:
Title: `Missing hash key: "collectionThumbnailViewModel" (KeyError)` Date: `2026-06-02T00:07:23Z` Route: `/channel/UC39qIVFeaGCNbuAfHNxBS2Q/streams` Version: `2026.02.07-118d635 @ (HEAD detached at v2.20260207.0)` <details> <summary>Backtrace</summary> <p> ``` Missing hash key: "collectionThumbnailViewModel" (KeyError) from /usr/share/crystal/src/hash.cr:1198:9 in '??' from /usr/share/crystal/src/json/any.cr:149:5 in 'process' from src/invidious/yt_backend/extractors.cr:524:17 in 'process' from src/invidious/yt_backend/extractors.cr:1035:17 in 'parse_item' from src/invidious/yt_backend/extractors.cr:1082:14 in 'extract_items' from src/invidious/channels/videos.cr:73:12 in 'get_60_livestreams:continuation:sort_by' from src/invidious/routes/channels.cr:127:34 in 'streams' from lib/kemal/src/kemal/route.cr:13:9 in '->' from src/invidious/helpers/handlers.cr:31:37 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/filter_handler.cr:22:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:80:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/ext/kemal_static_file_handler.cr:127:14 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/request_processor.cr:51:11 in 'handle_client' from /usr/share/crystal/src/fiber.cr:170:11 in 'run' from ??? ``` </p> </details>
Invidious encountered an error while trying to parse this item. For more information see below:
Title: `Missing hash key: "collectionThumbnailViewModel" (KeyError)` Date: `2026-06-02T00:07:23Z` Route: `/channel/UC39qIVFeaGCNbuAfHNxBS2Q/streams` Version: `2026.02.07-118d635 @ (HEAD detached at v2.20260207.0)` <details> <summary>Backtrace</summary> <p> ``` Missing hash key: "collectionThumbnailViewModel" (KeyError) from /usr/share/crystal/src/hash.cr:1198:9 in '??' from /usr/share/crystal/src/json/any.cr:149:5 in 'process' from src/invidious/yt_backend/extractors.cr:524:17 in 'process' from src/invidious/yt_backend/extractors.cr:1035:17 in 'parse_item' from src/invidious/yt_backend/extractors.cr:1082:14 in 'extract_items' from src/invidious/channels/videos.cr:73:12 in 'get_60_livestreams:continuation:sort_by' from src/invidious/routes/channels.cr:127:34 in 'streams' from lib/kemal/src/kemal/route.cr:13:9 in '->' from src/invidious/helpers/handlers.cr:31:37 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/filter_handler.cr:22:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:80:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/ext/kemal_static_file_handler.cr:127:14 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call' from /usr/share/crystal/src/http/server/request_processor.cr:51:11 in 'handle_client' from /usr/share/crystal/src/fiber.cr:170:11 in 'run' from ??? ``` </p> </details>