CrawlCheck Video API

The Video API from CrawlCheck — 3 operation(s) for video.

GitHub OpenAPI

Operations 3

GET /api/video One YouTube video against the video anchor model: twelve checks, each naming… #
GET /api/video/channel Every upload on a channel, read 50 at a time. #
GET /api/video/site The site half: homepage plus up to 60 sitemap pages read for YouTube embeds… #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/crawlcheck-io:crawlcheck-io-video-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

crawlcheck-io-video-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Crawlcheck Io Video API
  version: '1'
  contact:
    name: CrawlCheck
    url: https://crawlcheck.io/policy
    email: hello@crawlcheck.io
  license:
    name: Terms
    url: https://crawlcheck.io/policy
  x-core-contract:
    promise: 'These operations are the core contract. They stay at /api/v1 and keep answering for at least 180 days after any /api/v2 is announced; their stable fields change only in a new major version, and their provisional fields only after 30 days'' notice, per /docs/api/compatibility. Verifying what they return needs none of these calls: crawlcheck-verify.mjs checks a document on your machine against the published keys (/.well-known/http-message-signatures-directory) and the rotation record, read once with --online or saved for --keys. Everything else documented here is useful but secondary, and may change with the notice its fields'' tags promise.'
    operations:
    - method: GET
      path: /api/v1/resolve
      operationId: resolveDomainV1
    - method: POST
      path: /api/v1/resolve
      operationId: resolveBatchV1
    - method: POST
      path: /api/v1/preflight
      operationId: preflightV1
    - method: GET
      path: /api/v1/decisions/{sha256}
      operationId: decisionCheckV1
    - method: GET
      path: /api/v1/revocations
      operationId: revocations
    - method: GET
      path: /api/v1/visitor
      operationId: visitorResolveV1
    - method: POST
      path: /api/v1/visitor
      operationId: visitorResolveBatchV1
    - method: GET
      path: /api/v1/mcp/scan
      operationId: mcpScanUrl
    - method: POST
      path: /api/v1/mcp/lock/check
      operationId: mcpLockCheck
    list: https://crawlcheck.io/api/v1/core
  description: 'Operations tagged Video across 2 of this provider''s published API definitions: crawlcheck-io-openapi.json, crawlcheck-io-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://crawlcheck.io
tags:
- name: Video
paths:
  /api/video:
    get:
      operationId: videoCheck
      summary: 'One YouTube video against the video anchor model: twelve checks, each naming…'
      parameters:
      - name: v
        in: query
        required: true
        schema:
          type: string
        description: A video id or URL
      - name: fresh
        in: query
        required: false
        schema:
          type: string
          enum:
          - '1'
        description: Bypass the cache
      responses:
        '200':
          description: video, chapters, captions, storyboard, thumbnail, checks{rows, passed, scored}, not_measurable
          content:
            application/json:
              schema:
                type: object
              examples:
                worked:
                  summary: Captured from production on 2026-09-30 (MDT).
                  value:
                    video_id: fR1sqdmSmUM
                    at: '2026-10-01T00:22:32.654Z'
                    sources:
                      oembed:
                        status: 200
                        ok: true
                      data_api:
                        tried: []
                        used: PSI_KEY
                        status: 200
                        reason: null
                      browser_vantage:
                        at: '2026-09-02T18:18:39.271Z'
                        vantage: claude-chrome
                    video:
                      title: Knob-Tailed Gecko Breeding Pair — Nephrurus amyae
                      channel: Terrarium Station LLC
                      channel_url: https://www.youtube.com/@terrariumstation
                      thumbnail_url: https://i.ytimg.com/vi/fR1sqdmSmUM/hqdefault.jpg
                      from: data_api
                      description: 'Breeding pair of rare Australian knob-tailed geckos (Nephrurus amyae).


                        Shop geckos: https://terrar…'
                      description_chars: 407
                      published_at: '2025-01-19T00:21:50Z'
                      channel_id: UCovPo3ogqIHqXQnmeqqd5ZQ
                      tags:
                      - knob tailed gecko
                      - Nephrurus Amyae
                      tag_count: 23
                      category_id: '15'
                      default_language: en-US
                      default_audio_language: en-US
                      duration_iso: PT14S
                      duration_seconds: 14
                      definition: hd
                      caption_flag: false
                      licensed_content: false
                      views: 1684
                      likes: 31
                      comments: 1
                      topic_categories: []
                      made_for_kids: false
                      privacy: public
                      embeddable: true
                      thumbnails:
                      - default
                      - medium
                    chapters:
                      source: description timestamps
                      count: 0
                      starts_at_zero: false
                      in_order: true
                      items: []
                      gaps_seconds: []
                      note: YouTube requires the first stamp to be 0:00, at least 3 stamps in ascending order, and 10 s minimum…
                    captions:
                      measured: true
                      from: browser vantage
                      tracks:
                      - {}
                      manual_tracks: 0
                      asr_only: true
                      transcript:
                        lang: en
                        kind: asr
                        segments: 2
                        words: 31
                        sample: man it's left in my lock don't know what's in store I've been dealing with these blessings that I c…
                      caption_flag_from_data_api: false
                    storyboard:
                      measured: true
                      from: browser vantage
                      present: true
                      levels: 1
                      spec_head: https://i.ytimg.com/sb/fR1sqdmSmUM/storyboard3_L$L/$N.jpg?sqp=-oaymwENSDfyq4qpAwVwAcABBqLzl_8DBgidi…
                    thumbnail:
                      checked:
                      - {}
                      - {}
                      best:
                        size: maxresdefault
                        url: https://i.ytimg.com/vi/fR1sqdmSmUM/maxresdefault.jpg
                        bytes: 181849
                        nominal: 1280x720
                      has_maxres: true
                    not_measurable:
                    - click and query data
                    - watch time and retention
                    chapters_player:
                      source: player macro markers (browser vantage)
                      count: 0
                      items: []
                    player:
                      title: Knob-Tailed Gecko Breeding Pair — Nephrurus amyae
                      length_seconds: 14
                      is_family_safe: true
                      keywords: 23
                      is_live: false
                    transcript_full: man it's left in my lock don't know what's in store I've been dealing with these blessings that I c…
                    ms: 816
                    checks:
                      rows:
                      - {}
                      - {}
                      passed: 2
                      scored: 5
                      measured_only: 9
                      not_measurable:
                      - click and query data
                      - watch time and retention
        '404':
          description: No such video
      x-codeSamples:
      - lang: Shell
        label: curl
        source: "curl -s \\\n  'https://crawlcheck.io/api/video?v=fR1sqdmSmUM'"
      security: []
      x-auth: public; no credential read
      tags:
      - Video
    servers:
    - url: https://crawlcheck.io
  /api/video/channel:
    get:
      operationId: videoChannel
      summary: Every upload on a channel, read 50 at a time.
      parameters:
      - name: handle
        in: query
        required: false
        schema:
          type: string
        description: '@channel; give this or id'
      - name: id
        in: query
        required: false
        schema:
          type: string
        description: Channel id
      - name: checks
        in: query
        required: false
        schema:
          type: string
          enum:
          - '1'
        description: Check every upload and tally per check
      responses:
        '200':
          description: 'rollup{check: {pass, judged, na}} and videos[] sorted by views'
          content:
            application/json:
              schema:
                type: object
              examples:
                worked:
                  summary: Captured from production on 2026-09-30 (MDT).
                  value:
                    channel_id: UCovPo3ogqIHqXQnmeqqd5ZQ
                    title: Terrarium Station LLC
                    handle: '@terrariumstation'
                    description_chars: 804
                    country: US
                    published_at: '2022-05-28T21:03:40.26552Z'
                    subscribers: 1260
                    videos: 85
                    views: 339108
                    uploads_playlist: UUovPo3ogqIHqXQnmeqqd5ZQ
                    items:
                    - video_id: fR1sqdmSmUM
                      title: Knob-Tailed Gecko Breeding Pair — Nephrurus amyae
                      published_at: '2025-01-19T00:21:50Z'
                    - video_id: F5POxE8A2pE
                      title: Millipede Terrarium Setup — Bioactive Enclosure Build for Rare Flame Leg Millipedes
                      published_at: '2024-10-04T22:06:36Z'
                    - video_id: Z4v-ru9inIA
                      title: Crested Gecko Holdbacks — Empty Back & Super Empty Back Morphs
                      published_at: '2024-02-18T16:43:54Z'
                    - video_id: r7qEJQBNyQQ
                      title: REPTI ZOO 18x18x24 Terrarium Review — Neon Blue Day Gecko Setup
                      published_at: '2023-11-28T05:04:53Z'
                    at: '2026-10-01T00:20:12.102Z'
        '404':
          description: No such channel
      x-codeSamples:
      - lang: Shell
        label: curl
        source: "curl -s \\\n  'https://crawlcheck.io/api/video/channel?handle=@terrariumstation'"
      security: []
      x-auth: public; no credential read
      tags:
      - Video
    servers:
    - url: https://crawlcheck.io
  /api/video/site:
    get:
      operationId: videoSite
      summary: 'The site half: homepage plus up to 60 sitemap pages read for YouTube embeds…'
      parameters:
      - name: domain
        in: query
        required: true
        schema:
          type: string
      - name: handle
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: pages[] with embeds and VideoObject counts, videos{} keyed by id, rows[] with passed/scored
          content:
            application/json:
              schema:
                type: object
              examples:
                worked:
                  summary: Captured from production on 2026-09-30 (MDT).
                  value:
                    host: terrariumstation.com
                    at: '2026-10-01T00:20:00.712Z'
                    pages_checked: 61
                    pages_failed: 0
                    pages:
                    - path: /videos/
                      embeds:
                      - wQNWTdSPwng
                      - OF2rCA6E7f0
                      - F5POxE8A2pE
                      facades: []
                      video_objects: 3
                      words: 264
                    - path: /millipede-care/
                      embeds:
                      - GiEE-gwyab0
                      facades: []
                      video_objects: 1
                      words: 837
                    - path: /millipede-enclosure/
                      embeds:
                      - FNQCa-OsLMI
                      facades: []
                      video_objects: 1
                      words: 1170
                    - path: /millipedes-for-sale/
                      embeds:
                      - S3HmMgcTbAQ
                      facades: []
                      video_objects: 1
                      words: 1395
                    videos:
                      wQNWTdSPwng:
                        pages:
                        - /videos/
                        schema: 1
                        facade: 0
                      OF2rCA6E7f0:
                        pages:
                        - /videos/
                        schema: 1
                        facade: 0
                      F5POxE8A2pE:
                        pages:
                        - /videos/
                        schema: 1
                        facade: 0
                      GiEE-gwyab0:
                        pages:
                        - /millipede-care/
                        schema: 1
                        facade: 0
                      FNQCa-OsLMI:
                        pages:
                        - /millipede-enclosure/
                        schema: 1
                        facade: 0
                      S3HmMgcTbAQ:
                        pages:
                        - /millipedes-for-sale/
                        schema: 1
                        facade: 0
                    video_objects: 6
                    video_objects_complete: 6
                    embeds: 6
                    rows:
                    - id: site_pages_with_video
                      k: Pages carrying a YouTube video
                      basis: Whether the site carries video at all
                      cur: 4 of 61 pages read
                      opt: video on the pages it belongs to
                      ok: null
                      why: the site-level video score reads how much of the site is video-bearing; shown, not judged
                    - id: video_object_present
                      k: Videos on the page described by VideoObject schema
                      basis: Video rich-result eligibility
                      cur: 6 of 6 videos shown
                      opt: every shown video has a VideoObject
                      ok: true
                      why: a player Google cannot describe earns nothing; with VideoObject the page is eligible for a video result. A facade with VideoObject is fine
                    - id: video_object_orphan
                      k: VideoObject declared for a video the page does not show
                      basis: video rich result guidelines (video must be on the page)
                      cur: none
                      opt: none
                      ok: true
                      why: schema claiming a video that is not on the page is the FAQ-parity mistake in video form
                    - id: video_object_complete
                      k: VideoObject nodes complete
                      basis: video rich result required properties
                      cur: 6 of 6 carry name, description, thumbnailUrl and uploadDate
                      opt: all four required properties on every node
                      ok: true
                      why: Google's required set for a video result; duration and embedUrl are recommended
                    from_record: true
                    path_source: live /wp-sitemap.xml
                    passed: 4
                    scored: 4
        '400':
          description: No domain
      x-codeSamples:
      - lang: Shell
        label: curl
        source: "curl -s \\\n  'https://crawlcheck.io/api/video/site?domain=terrariumstation.com'"
      security: []
      x-auth: public; no credential read
      tags:
      - Video
    servers:
    - url: https://crawlcheck.io
components:
  securitySchemes:
    licenceKey:
      type: apiKey
      in: header
      name: x-crawlcheck-key
      description: 'Your licence key: cc_ followed by 32 hex characters. Sent on every keyed call.'
    bearer:
      type: http
      scheme: bearer
      description: The same licence key as a Bearer token. Accepted on /api/v1/* and /api/usage.
externalDocs:
  url: https://crawlcheck.io/docs/api
  description: Human-readable reference
x-refined-from:
- crawlcheck-io-openapi.json
- crawlcheck-io-openapi.yml