Redocly Scout Agent API

The Scout agent is the self-hosted worker half of Scout, deployed inside the customer's own infrastructure (Redocly documents an AWS ECS task definition). Its API is small and operational: a health check plus two webhook receivers that accept GitHub and GitLab events, authenticated by the x-hub-signature-256 and x-gitlab-token signature headers respectively. Errors are RFC 9457 problem documents and the 500 problem carries an `event` member naming the incoming webhook event.

Operations 3

GET /health Get health status #
POST /webhooks/github Create GitHub webhook event #
POST /webhooks/gitlab Create GitLab webhook event #

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/redocly-scout-agent"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

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

OpenAPI Specification

redocly-scout-agent-openapi.yaml Raw ↑
openapi: 3.1.0
x-pagination: none
servers:
  - url: '{host}'
    variables:
      host:
        default: http://localhost
        description: Server host.
info:
  version: '1.0'
  title: Redocly Scout agent
  description: Scout Worker API.
  termsOfService: https://redocly.com/subscription-agreement
  contact:
    name: Redocly Support
    email: team@redocly.com
    url: https://github.com/Redocly/redocly
  license:
    name: Redocly
    url: https://redocly.com/subscription-agreement
tags:
  - name: Health
    description: Operations related to health checks.
  - name: Webhooks
    description: Operations related to incoming git webhooks.
paths:
  /health:
    get:
      tags:
        - Health
      security: []
      summary: Get health status
      operationId: health
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Health'
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /webhooks/github:
    post:
      tags:
        - Webhooks
      security:
        - GithubApiKey: []
      summary: Create GitHub webhook event
      description: >-
        Registers and start process GitHub repository event. For now only push
        and create pull request events are supported.
      operationId: processGithubWebhook
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/push'
                - $ref: '#/components/schemas/pull-request-opened'
                - $ref: '#/components/schemas/pull-request-reopened'
                - $ref: '#/components/schemas/pull-request-synchronize'
      responses:
        '200':
          description: OK.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/WebhookResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /webhooks/gitlab:
    post:
      tags:
        - Webhooks
      security:
        - GitlabApiKey: []
      summary: Create GitLab webhook event
      description: >-
        Register and start to process GitLab repository event. For now only push
        and create merge request events are supported.
      operationId: processGitlabWebhook
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/push-2'
                - $ref: '#/components/schemas/merge-request-open'
                - $ref: '#/components/schemas/merge-request-reopen'
                - $ref: '#/components/schemas/merge-request-update'
      responses:
        '200':
          description: OK.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/WebhookResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  securitySchemes:
    GithubApiKey:
      type: apiKey
      in: header
      name: x-hub-signature-256
    GitlabApiKey:
      type: apiKey
      in: header
      name: x-gitlab-token
  schemas:
    Health:
      type: object
      properties:
        scout:
          type: string
          const: ok
          readOnly: true
          description: Scout health status.
      required:
        - scout
    committer:
      description: Metaproperties for Git author/committer information.
      required:
        - email
        - name
      type: object
      properties:
        name:
          type: string
          description: The git author's name.
        email:
          description: The git author's email address.
          oneOf:
            - type: string
              format: email
            - type: 'null'
        date:
          type: string
          format: date-time
        username:
          type: string
      additionalProperties: false
      title: Committer
    commit:
      required:
        - id
        - tree_id
        - distinct
        - message
        - timestamp
        - url
        - author
        - committer
        - added
        - removed
        - modified
      type: object
      properties:
        id:
          type: string
        tree_id:
          type: string
        distinct:
          type: boolean
          description: >-
            Whether this commit is distinct from any that have been pushed
            before.
        message:
          type: string
          description: The commit message.
        timestamp:
          type: string
          format: date-time
          description: The ISO 8601 timestamp of the commit.
        url:
          type: string
          format: uri
          description: URL that points to the commit API resource.
        author:
          $ref: '#/components/schemas/committer'
        committer:
          $ref: '#/components/schemas/committer'
        added:
          type: array
          items:
            type: string
          description: An array of files added in the commit.
        modified:
          type: array
          items:
            type: string
          description: An array of files modified by the commit.
        removed:
          type: array
          items:
            type: string
          description: An array of files removed in the commit.
      additionalProperties: false
      title: Commit
    user:
      type: object
      required:
        - login
        - id
        - node_id
        - avatar_url
        - gravatar_id
        - url
        - html_url
        - followers_url
        - following_url
        - gists_url
        - starred_url
        - subscriptions_url
        - organizations_url
        - repos_url
        - events_url
        - received_events_url
        - type
        - site_admin
      properties:
        login:
          type: string
        id:
          type: integer
        node_id:
          type: string
        name:
          type: string
        email:
          type:
            - string
            - 'null'
        avatar_url:
          type: string
          format: uri
        gravatar_id:
          type: string
        url:
          type: string
          format: uri
        html_url:
          type: string
          format: uri
        followers_url:
          type: string
          format: uri
        following_url:
          type: string
          format: uri-template
        gists_url:
          type: string
          format: uri-template
        starred_url:
          type: string
          format: uri-template
        subscriptions_url:
          type: string
          format: uri
        organizations_url:
          type: string
          format: uri
        repos_url:
          type: string
          format: uri
        events_url:
          type: string
          format: uri-template
        received_events_url:
          type: string
          format: uri
        type:
          type: string
          enum:
            - Bot
            - User
            - Organization
        site_admin:
          type: boolean
      additionalProperties: false
      title: User
    license:
      type: object
      required:
        - key
        - name
        - spdx_id
        - url
        - node_id
      properties:
        key:
          type: string
        name:
          type: string
        spdx_id:
          type: string
        url:
          type:
            - string
            - 'null'
          format: uri
        node_id:
          type: string
      additionalProperties: false
      title: License
    repository:
      description: A git repository.
      type: object
      required:
        - id
        - node_id
        - name
        - full_name
        - private
        - owner
        - html_url
        - description
        - fork
        - url
        - forks_url
        - keys_url
        - collaborators_url
        - teams_url
        - hooks_url
        - issue_events_url
        - events_url
        - assignees_url
        - branches_url
        - tags_url
        - blobs_url
        - git_tags_url
        - git_refs_url
        - trees_url
        - statuses_url
        - languages_url
        - stargazers_url
        - contributors_url
        - subscribers_url
        - subscription_url
        - commits_url
        - git_commits_url
        - comments_url
        - issue_comment_url
        - contents_url
        - compare_url
        - merges_url
        - archive_url
        - downloads_url
        - issues_url
        - pulls_url
        - milestones_url
        - notifications_url
        - labels_url
        - releases_url
        - deployments_url
        - created_at
        - updated_at
        - pushed_at
        - git_url
        - ssh_url
        - clone_url
        - svn_url
        - homepage
        - size
        - stargazers_count
        - watchers_count
        - language
        - has_issues
        - has_projects
        - has_downloads
        - has_wiki
        - has_pages
        - forks_count
        - mirror_url
        - archived
        - open_issues_count
        - license
        - forks
        - open_issues
        - watchers
        - default_branch
        - is_template
        - web_commit_signoff_required
        - topics
        - visibility
      properties:
        id:
          type: integer
          description: Unique identifier of the repository.
        node_id:
          type: string
          description: The GraphQL identifier of the repository.
        name:
          type: string
          description: The name of the repository.
        full_name:
          type: string
          description: The full, globally unique, name of the repository.
        private:
          type: boolean
          description: Whether the repository is private or public.
        owner:
          $ref: '#/components/schemas/user'
        html_url:
          type: string
          format: uri
          description: The URL to view the repository on GitHub.com.
        description:
          type:
            - string
            - 'null'
          description: The repository description.
        fork:
          type: boolean
          description: Whether the repository is a fork.
        url:
          type: string
          format: uri
          description: >-
            The URL to get more information about the repository from the GitHub
            API.
        forks_url:
          type: string
          format: uri
          description: The API URL to list the forks of the repository.
        keys_url:
          type: string
          format: uri-template
          description: >-
            A template for the API URL to get information about deploy keys on
            the repository.
        collaborators_url:
          type: string
          format: uri-template
          description: >-
            A template for the API URL to get information about collaborators of
            the repository.
        teams_url:
          type: string
          format: uri
          description: The API URL to list the teams on the repository.
        hooks_url:
          type: string
          format: uri
          description: The API URL to list the hooks on the repository.
        issue_events_url:
          type: string
          format: uri-template
          description: >-
            A template for the API URL to get information about issue events on
            the repository.
        events_url:
          type: string
          format: uri
          description: The API URL to list the events of the repository.
        assignees_url:
          type: string
          format: uri-template
          description: >-
            A template for the API URL to list the available assignees for
            issues in the repository.
        branches_url:
          type: string
          format: uri-template
          description: >-
            A template for the API URL to get information about branches in the
            repository.
        tags_url:
          type: string
          format: uri
          description: The API URL to get information about tags on the repository.
        blobs_url:
          type: string
          format: uri-template
          description: >-
            A template for the API URL to create or retrieve a raw Git blob in
            the repository.
        git_tags_url:
          type: string
          format: uri-template
          description: >-
            A template for the API URL to get information about Git tags of the
            repository.
        git_refs_url:
          type: string
          format: uri-template
          description: >-
            A template for the API URL to get information about Git refs of the
            repository.
        trees_url:
          type: string
          format: uri-template
          description: >-
            A template for the API URL to create or retrieve a raw Git tree of
            the repository.
        statuses_url:
          type: string
          format: uri-template
          description: >-
            A template for the API URL to get information about statuses of a
            commit.
        languages_url:
          type: string
          format: uri
          description: >-
            The API URL to get information about the languages of the
            repository.
        stargazers_url:
          type: string
          format: uri
          description: The API URL to list the stargazers on the repository.
        contributors_url:
          type: string
          format: uri
          description: >-
            A template for the API URL to list the contributors to the
            repository.
        subscribers_url:
          type: string
          format: uri
          description: The API URL to list the subscribers on the repository.
        subscription_url:
          type: string
          format: uri
          description: The API URL to subscribe to notifications for this repository.
        commits_url:
          type: string
          format: uri-template
          description: >-
            A template for the API URL to get information about commits on the
            repository.
        git_commits_url:
          type: string
          format: uri-template
          description: >-
            A template for the API URL to get information about Git commits of
            the repository.
        comments_url:
          type: string
          format: uri-template
          description: >-
            A template for the API URL to get information about comments on the
            repository.
        issue_comment_url:
          type: string
          format: uri-template
          description: >-
            A template for the API URL to get information about issue comments
            on the repository.
        contents_url:
          type: string
          format: uri-template
          description: A template for the API URL to get the contents of the repository.
        compare_url:
          type: string
          format: uri-template
          description: A template for the API URL to compare two commits or refs.
        merges_url:
          type: string
          format: uri
          description: The API URL to merge branches in the repository.
        archive_url:
          type: string
          format: uri-template
          description: A template for the API URL to download the repository as an archive.
        downloads_url:
          type: string
          format: uri
          description: The API URL to list the downloads on the repository.
        issues_url:
          type: string
          format: uri-template
          description: >-
            A template for the API URL to get information about issues on the
            repository.
        pulls_url:
          type: string
          format: uri-template
          description: >-
            A template for the API URL to get information about pull requests on
            the repository.
        milestones_url:
          type: string
          format: uri-template
          description: >-
            A template for the API URL to get information about milestones of
            the repository.
        notifications_url:
          type: string
          format: uri-template
          description: >-
            A template for the API URL to get information about notifications on
            the repository.
        labels_url:
          type: string
          format: uri-template
          description: >-
            A template for the API URL to get information about labels of the
            repository.
        releases_url:
          type: string
          format: uri-template
          description: >-
            A template for the API URL to get information about releases on the
            repository.
        deployments_url:
          type: string
          format: uri
          description: The API URL to list the deployments of the repository.
        created_at:
          oneOf:
            - type: integer
            - type: string
              format: date-time
        updated_at:
          type: string
          format: date-time
        pushed_at:
          oneOf:
            - type: integer
            - type: string
              format: date-time
            - type: 'null'
        git_url:
          type: string
          format: uri
        ssh_url:
          type: string
        clone_url:
          type: string
          format: uri
        svn_url:
          type: string
          format: uri
        homepage:
          type:
            - string
            - 'null'
        size:
          type: integer
        stargazers_count:
          type: integer
        watchers_count:
          type: integer
        language:
          type:
            - string
            - 'null'
        has_issues:
          type: boolean
          description: Whether issues are enabled.
          default: true
        has_projects:
          type: boolean
          description: Whether projects are enabled.
          default: true
        has_downloads:
          type: boolean
          description: Whether downloads are enabled.
          default: true
        has_wiki:
          type: boolean
          description: Whether the wiki is enabled.
          default: true
        has_pages:
          type: boolean
        forks_count:
          type: integer
        mirror_url:
          type:
            - string
            - 'null'
          format: uri
        archived:
          type: boolean
          description: Whether the repository is archived.
          default: false
        disabled:
          type: boolean
          description: Returns whether or not this repository is disabled.
        open_issues_count:
          type: integer
        license:
          oneOf:
            - $ref: '#/components/schemas/license'
            - type: 'null'
        forks:
          type: integer
        open_issues:
          type: integer
        watchers:
          type: integer
        stargazers:
          type: integer
        default_branch:
          type: string
          description: The default branch of the repository.
        allow_squash_merge:
          type: boolean
          description: Whether to allow squash merges for pull requests.
          default: true
        allow_merge_commit:
          type: boolean
          description: Whether to allow merge commits for pull requests.
          default: true
        allow_rebase_merge:
          type: boolean
          description: Whether to allow rebase merges for pull requests.
          default: true
        allow_auto_merge:
          type: boolean
          description: Whether to allow auto-merge for pull requests.
          default: false
        allow_forking:
          type: boolean
          description: Whether to allow private forks.
        allow_update_branch:
          type: boolean
        use_squash_pr_title_as_default:
          type: boolean
        is_template:
          type: boolean
        web_commit_signoff_required:
          type: boolean
        topics:
          type: array
          items:
            type: string
        visibility:
          type: string
          enum:
            - public
            - private
            - internal
        delete_branch_on_merge:
          type: boolean
          description: Whether to delete head branches when pull requests are merged.
          default: false
        master_branch:
          type: string
        permissions:
          type: object
          required:
            - pull
            - push
            - admin
          properties:
            pull:
              type: boolean
            push:
              type: boolean
            admin:
              type: boolean
            maintain:
              type: boolean
            triage:
              type: boolean
          additionalProperties: false
        public:
          type: boolean
        organization:
          type: string
      additionalProperties: false
      title: Repository
    installation-lite:
      description: Installation.
      type: object
      required:
        - id
        - node_id
      properties:
        id:
          type: integer
          description: The ID of the installation.
        node_id:
          type: string
      additionalProperties: false
      title: InstallationLite
    organization:
      type: object
      required:
        - login
        - id
        - node_id
        - url
        - repos_url
        - events_url
        - hooks_url
        - issues_url
        - members_url
        - public_members_url
        - avatar_url
        - description
      properties:
        login:
          type: string
        id:
          type: integer
        node_id:
          type: string
        url:
          type: string
          format: uri
        html_url:
          type: string
          format: uri
        repos_url:
          type: string
          format: uri
        events_url:
          type: string
          format: uri
        hooks_url:
          type: string
          format: uri
        issues_url:
          type: string
          format: uri
        members_url:
          type: string
          format: uri-template
        public_members_url:
          type: string
          format: uri-template
        avatar_url:
          type: string
          format: uri
        description:
          type:
            - string
            - 'null'
      additionalProperties: false
      title: Organization
    push:
      type: object
      required:
        - ref
        - before
        - after
        - created
        - deleted
        - forced
        - base_ref
        - compare
        - commits
        - head_commit
        - repository
        - pusher
        - sender
      properties:
        ref:
          type: string
          description: >-
            The full git ref that is pushed. Example: `refs/heads/main` or
            `refs/tags/v3.14.1`.
        before:
          type: string
          description: The SHA of the most recent commit on `ref` before the push.
        after:
          type: string
          description: The SHA of the most recent commit on `ref` after the push.
        created:
          type: boolean
          description: Whether this push created the `ref`.
        deleted:
          type: boolean
          description: Whether this push deleted the `ref`.
        forced:
          type: boolean
          description: Whether this push is a force push of the `ref`.
        base_ref:
          type:
            - string
            - 'null'
        compare:
          type: string
          description: >-
            URL that shows the changes in this `ref` update, from the `before`
            commit to the `after` commit. For a newly created `ref` that is
            directly based on the default branch, this is the comparison between
            the head of the default branch and the `after` commit. Otherwise,
            this shows all commits until the `after` commit.
        commits:
          type: array
          description: >-
            An array of commit objects describing the pushed commits. (Pushed
            commits are all commits that are included in the `compare` between
            the `before` commit and the `after` commit.) The array includes a
            maximum of 20 commits. If necessary, you can use the [Commits
            API](https://docs.github.com/en/rest/reference/repos#commits) to
            fetch additional commits. This limit is applied to timeline events
            only and isn't applied to webhook deliveries.
          items:
            $ref: '#/components/schemas/commit'
        head_commit:
          oneOf:
            - $ref: '#/components/schemas/commit'
            - type: 'null'
          description: >-
            For pushes where `after` is or points to a commit object, an
            expanded representation of that commit. For pushes where `after`
            refers to an annotated tag object, an expanded representation of the
            commit pointed to by the annotated tag.
        repository:
          $ref: '#/components/schemas/repository'
        pusher:
          $ref: '#/components/schemas/committer'
        sender:
          $ref: '#/components/schemas/user'
        installation:
          $ref: '#/components/schemas/installation-lite'
        organization:
          $ref: '#/components/schemas/organization'
      additionalProperties: false
      title: push event
    team:
      description: >-
        Groups of organization members that gives permissions on specified.
        repositories.
      type: object
      required:
        - name
        - id
        - node_id
        - slug
        - description
        - privacy
        - url
        - html_url
        - members_url
        - repositories_url
        - permission
      properties:
        name:
          type: string
          description: Name of the team.
        id:
          type: integer
          description: Unique identifier of the team.
        node_id:
          type: string
        slug:
          type: string
        description:
          type:
            - string
            - 'null'
          description: Description of the team.
        privacy:
          type: string
          enum:
            - open
            - closed
            - secret
        url:
          type: string
          format: uri
          description: URL for the team.
        html_url:
          type: string
          format: uri
        members_url:
          type: string
          format: uri-template
        repositories_url:
          type: string
          format: uri
        permission:
          type: string
          description: Permission that the team has for its repositories.
        parent:
          type:
            - object
            - 'null'
          required:
            - name
            - id
            - node_id
            - slug
            - description
            - privacy
            - url
            - html_url
            - members_url
            - repositories_url
            - permission
          properties:
            name:
              type: string
              description: Name of the team.
            id:
              type: integer
              description: Unique identifier of the team.
            node_id:
              type: string
            slug:
              type: string
            description:
              type:
                - string
                - 'null'
              description: Description of the team.
            privacy:
              type: string
              enum:
                - open
                - closed
                - secret
            url:
              type: string
              format: uri
              description: URL for the team.
            html_url:
              type: string
              format: uri
            members_url:
              type: string
              format: uri-template
            repositories_url:
              type: string
              format: uri
            permission:
              type: string
              description: Permission that the has for its repositories.
          additionalProperties: false
      additionalProperties: false
      title: Team
    label:
      type: object
      required:
        - id
        - node_id
        - url
        - name
        - color
        - default
        - description
      properties:
        id:
          type: integer
        node_id:
          type: string
        url:
          description: URL for the label.
          type: string
          format: uri
        name:
          description: The name of the label.
          type: string
        description:
          type:
            - string
            - 'null'
        color:
          description: '6-character hex code, without the leading #, identifying the color.'
          type: string
        default:
          type: boolean
      additionalProperties: false
      title: Label
    milestone:
      description: A collection of related issues and pull requests.
      required:
        - url
        - html_url
        - labels_url
        - id
        - node_id
        - number
        - title
        - description
        - creator
        - open_issues
        - closed_issues
        - state
        - created_at
        - updated_at
        - due_on
        - closed_at
      type: object
      properties:
        url:
          type: string
          format: uri
        html_url:
          type: string
          format: uri
        labels_url:
          type: string
          format: uri
        id:
          type: integer
        node_id:
          type: string
        number:
          type: integer
          description: The number of the milestone.
        title:
          type: string
          description: The title of the milestone.
        description:
          type:
            - string
            - 'null'
        creator:
          $ref: '#/components/schemas/user'
        open_issues:
          type: integer
        closed_issues:
          type: integer
        state:
          type: string
          enum:
            - open
            - closed
          description: The state of the milestone.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        due_on:
          type:
            - string
            - 'null'
          format: date-time
        closed_at:
          type:
            - string
            - 'null'
          format: date-time
      additionalProperties: false
      title: Milestone
    link:
      required:
        - href
      type: object
      properties:
        href:
          type: string
          format: uri-template
      additionalProperties: false
      title: Link
    author-association:
      type: string
      description: How the author is associated with the repository.
      enum:
        - COLLABORATOR
        - CONTRIBUTOR
        - FIRST_TIMER
        - FIRST_TIME_CONTRIBUTOR
        - MANNEQUIN
        - MEMBER
        - NONE
        - OWNER
      title: AuthorAssociation
    auto-merge:
      type: object
      required:
        - enabled_by
        - merge_method
        - commit_title
        - commit_message
      properties:
        enabled_by:
          $ref: '#/components/schemas/user'
        merge_method:
          type: string
          enum:
            - merge
            - squash
            - rebase
          description: The merge method to use.
        commit_title:
          type: string
          description: Title for the merge commit message.
        commit_message:
          type: string
          description: Commit message for the merge commit.
      additionalProperties: false
      title: PullRequestAutoMerge
      description: The status of auto merging a pull request.
    pull-request:
      required:
        - url
        - id
        - node_id
        - html_url
        - diff_url
        - patch_url
        - issue_url
        - number
        - state
        - locked
        - title
        - user
        - body
        - created_at
        - upd

# --- truncated at 32 KB (66 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/redocly/refs/heads/main/openapi/redocly-scout-agent-openapi.yaml