CiteLadder Site Crawls API

The site-crawls API from CiteLadder — 2 operation(s) for site-crawls.

Operations 2

GET /v1/projects/{project_id}/site-crawls/{crawl_id}/pages Get projects by project id site crawls by crawl id pages #
GET /v1/projects/{project_id}/site-crawls/{crawl_id}/issues Get projects by project id site crawls by crawl id issues #

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/citeladder-com:citeladder-com-site-crawls-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

citeladder-com-site-crawls-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: CiteLadder Site Crawls API
  version: '1'
servers:
- url: https://api.citeladder.com
security:
- apiKey: []
tags:
- name: site-crawls
paths:
  /v1/projects/{project_id}/site-crawls/{crawl_id}/pages:
    get:
      tags:
      - site-crawls
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagesPage'
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      - name: crawl_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      - name: limit
        in: query
        required: false
        schema:
          default: 50
          type: integer
          minimum: 1
          maximum: 200
      - name: cursor
        in: query
        required: false
        schema:
          type:
          - string
          - 'null'
      - name: status
        in: query
        required: false
        schema:
          type:
          - string
          - 'null'
      - name: monitored
        in: query
        required: false
        schema:
          type:
          - boolean
          - 'null'
      - name: page_kind
        in: query
        required: false
        schema:
          type:
          - string
          - 'null'
      - name: sort
        in: query
        required: false
        schema:
          default: status
          type: string
          enum:
          - status
          - url
          - inbound
          - main_content_inbound
          - depth
      x-citeladder-scope: read
      summary: Get projects by project id site crawls by crawl id pages
      x-summary-source: derived
      operationId: getV1ProjectsByProjectIdSiteCrawlsByCrawlIdPages
      x-operation-id-source: derived
  /v1/projects/{project_id}/site-crawls/{crawl_id}/issues:
    get:
      tags:
      - site-crawls
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SiteIssuesPage'
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      - name: crawl_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      - name: limit
        in: query
        required: false
        schema:
          default: 50
          type: integer
          minimum: 1
          maximum: 200
      - name: cursor
        in: query
        required: false
        schema:
          type:
          - string
          - 'null'
      - name: query
        in: query
        required: false
        schema:
          type:
          - string
          - 'null'
      - name: severity
        in: query
        required: false
        schema:
          type:
          - string
          - 'null'
      - name: category
        in: query
        required: false
        schema:
          type:
          - string
          - 'null'
      - name: dimension
        in: query
        required: false
        schema:
          type:
          - string
          - 'null'
      - name: rule
        in: query
        required: false
        schema:
          type:
          - string
          - 'null'
      - name: site_url_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          - type: 'null'
      - name: page_kind
        in: query
        required: false
        schema:
          type:
          - string
          - 'null'
      - name: finding_class
        in: query
        required: false
        schema:
          default: defect
          type: string
          enum:
          - defect
          - advisory
      - name: detail_limit
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 1
            maximum: 200
          - type: 'null'
      x-citeladder-scope: read
      summary: Get projects by project id site crawls by crawl id issues
      x-summary-source: derived
      operationId: getV1ProjectsByProjectIdSiteCrawlsByCrawlIdIssues
      x-operation-id-source: derived
components:
  schemas:
    PagesPage:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/PageSummary'
        next_cursor:
          type:
          - string
          - 'null'
        root_errors:
          type: array
          items:
            $ref: '#/components/schemas/RootError'
      required:
      - items
      - next_cursor
      - root_errors
      additionalProperties: false
    IssueOccurrence:
      type: object
      properties:
        occurrence_id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        evaluation_id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        crawl_id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        rule_id:
          type: string
        site_url_id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        normalized_url:
          type: string
        display_url:
          type: string
        title:
          type:
          - string
          - 'null'
        page_kind:
          anyOf:
          - $ref: '#/components/schemas/PageKind'
          - type: 'null'
        dimension:
          $ref: '#/components/schemas/IssueDimension'
        category:
          type: string
        severity:
          $ref: '#/components/schemas/IssueSeverity'
        finding_class:
          $ref: '#/components/schemas/FindingClass'
        issue_title:
          type: string
        description:
          type: string
        remediation:
          type: string
        reason_code:
          type: string
        evidence:
          type: object
          propertyNames:
            type: string
          additionalProperties: {}
        analyzer_version:
          type: string
        rule_version:
          type: string
        created_at:
          type: string
      required:
      - occurrence_id
      - evaluation_id
      - crawl_id
      - rule_id
      - site_url_id
      - normalized_url
      - display_url
      - title
      - page_kind
      - dimension
      - category
      - severity
      - finding_class
      - issue_title
      - description
      - remediation
      - reason_code
      - evidence
      - analyzer_version
      - rule_version
      - created_at
      additionalProperties: false
    SiteIssue:
      type: object
      properties:
        group_id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        crawl_id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        rule_id:
          type: string
        page_kinds:
          type: array
          items:
            type: string
        dimension:
          $ref: '#/components/schemas/IssueDimension'
        category:
          type: string
        severity:
          $ref: '#/components/schemas/IssueSeverity'
        finding_class:
          $ref: '#/components/schemas/FindingClass'
        title:
          type: string
        description:
          type: string
        remediation:
          type: string
        remediation_route:
          type: string
        affected_url_count:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        analyzer_version:
          type: string
        rule_version:
          type: string
        created_at:
          type: string
      required:
      - group_id
      - crawl_id
      - rule_id
      - page_kinds
      - dimension
      - category
      - severity
      - finding_class
      - title
      - description
      - remediation
      - remediation_route
      - affected_url_count
      - analyzer_version
      - rule_version
      - created_at
      additionalProperties: false
    IssueDimension:
      type: string
      enum:
      - technical
      - aeo
    Referrer:
      type: object
      properties:
        site_url_id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        url:
          type: string
      required:
      - site_url_id
      - url
      additionalProperties: false
    RootError:
      type: object
      properties:
        method:
          type: string
        target:
          type: string
        outcome:
          type: string
        error_code:
          type: string
        status_code:
          anyOf:
          - type: integer
            minimum: -9007199254740991
            maximum: 9007199254740991
          - type: 'null'
        latency_ms:
          anyOf:
          - type: integer
            minimum: -9007199254740991
            maximum: 9007199254740991
          - type: 'null'
      required:
      - method
      - target
      - outcome
      - error_code
      - status_code
      - latency_ms
      additionalProperties: false
    SiteIssueDetail:
      type: object
      properties:
        group_id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        crawl_id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        rule_id:
          type: string
        dimension:
          $ref: '#/components/schemas/IssueDimension'
        category:
          type: string
        severity:
          $ref: '#/components/schemas/IssueSeverity'
        finding_class:
          $ref: '#/components/schemas/FindingClass'
        title:
          type: string
        description:
          type: string
        remediation:
          type: string
        remediation_route:
          type: string
        occurrences:
          type: array
          items:
            $ref: '#/components/schemas/IssueOccurrence'
        occurrence_count:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        affected_url_count:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        analyzer_version:
          type: string
        rule_version:
          type: string
        created_at:
          type: string
        next_cursor:
          type:
          - string
          - 'null'
      required:
      - group_id
      - crawl_id
      - rule_id
      - dimension
      - category
      - severity
      - finding_class
      - title
      - description
      - remediation
      - remediation_route
      - occurrences
      - occurrence_count
      - affected_url_count
      - analyzer_version
      - rule_version
      - created_at
      additionalProperties: false
    PageSummary:
      type: object
      properties:
        site_url_id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        crawl_id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        normalized_url:
          type: string
        display_url:
          type: string
        title:
          type:
          - string
          - 'null'
        monitored:
          type: boolean
        analysis_status:
          $ref: '#/components/schemas/PageAnalysisStatus'
        error_code:
          type: string
        linked_from:
          type: array
          items:
            $ref: '#/components/schemas/Referrer'
        issue_count:
          anyOf:
          - type: integer
            minimum: -9007199254740991
            maximum: 9007199254740991
          - type: 'null'
        web_fundamentals_score:
          type:
          - number
          - 'null'
        web_fundamentals_coverage:
          type:
          - number
          - 'null'
        web_fundamentals_state:
          type: string
          enum:
          - measured
          - limited_evidence
          - not_measured
          - excluded
        aeo_readiness_score:
          type:
          - number
          - 'null'
        aeo_measurement_coverage:
          type:
          - number
          - 'null'
        aeo_measurement_state:
          type: string
          enum:
          - measured
          - limited_evidence
          - not_measured
          - excluded
        aeo_measurement_reason:
          type: string
        main_content_indexable:
          type:
          - boolean
          - 'null'
        last_audited:
          type:
          - string
          - 'null'
        page_kind:
          anyOf:
          - $ref: '#/components/schemas/PageKind'
          - type: 'null'
        inbound_count:
          anyOf:
          - type: integer
            minimum: -9007199254740991
            maximum: 9007199254740991
          - type: 'null'
        main_content_inbound_count:
          anyOf:
          - type: integer
            minimum: -9007199254740991
            maximum: 9007199254740991
          - type: 'null'
        depth_from_home:
          anyOf:
          - type: integer
            minimum: -9007199254740991
            maximum: 9007199254740991
          - type: 'null'
      required:
      - site_url_id
      - crawl_id
      - normalized_url
      - display_url
      - title
      - monitored
      - analysis_status
      - error_code
      - linked_from
      - issue_count
      - web_fundamentals_score
      - web_fundamentals_coverage
      - web_fundamentals_state
      - aeo_readiness_score
      - aeo_measurement_coverage
      - aeo_measurement_state
      - aeo_measurement_reason
      - main_content_indexable
      - last_audited
      - page_kind
      - inbound_count
      - main_content_inbound_count
      - depth_from_home
      additionalProperties: false
    IssueSeverity:
      type: string
      enum:
      - critical
      - high
      - medium
      - low
      - info
    IssuesSummary:
      type: object
      properties:
        issue_count:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        defect_issue_type_count:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        advisory_issue_type_count:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        occurrence_count:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        severity_counts:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            type: integer
            minimum: -9007199254740991
            maximum: 9007199254740991
        dimension_counts:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            type: integer
            minimum: -9007199254740991
            maximum: 9007199254740991
        affected_url_count:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        monitored_affected_url_count:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
      required:
      - issue_count
      - defect_issue_type_count
      - advisory_issue_type_count
      - occurrence_count
      - severity_counts
      - dimension_counts
      - affected_url_count
      - monitored_affected_url_count
      additionalProperties: false
    SiteIssuesPage:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/SiteIssue'
        next_cursor:
          type:
          - string
          - 'null'
        summary:
          $ref: '#/components/schemas/IssuesSummary'
        first_issue:
          $ref: '#/components/schemas/SiteIssueDetail'
      required:
      - items
      - next_cursor
      - summary
      additionalProperties: false
    FindingClass:
      type: string
      enum:
      - defect
      - advisory
      - diagnostic
    PageKind:
      type: string
      enum:
      - homepage
      - article
      - editorial_index
      - product
      - category
      - pricing
      - docs
      - faq
      - about_contact
      - service
      - local
      - guide
      - how_to
      - listicle
      - comparison
      - alternative
      - case_study_review
      - trust_policy
      - other
    PageAnalysisStatus:
      type: string
      enum:
      - not_selected
      - not_measured
      - pending
      - running
      - completed
      - partially_completed
      - failed
      - error
      - blocked
      - cancelled
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: 'An API key created in Settings → API keys, sent as `Authorization: Bearer cl_live_…`.'