Contrast Security · Schema

PageV4Application

Application SecurityAppSecIASTRASPSoftware Composition AnalysisDevSecOpsRuntime Protection

Properties

Name Type Description
totalElements integer The toal number of Elements.
totalPages integer The toal number of Pages.
first boolean Whether the current Page is the first one.
last boolean Whether the current Page is the last one.
size integer The size of the Page.
content array
number integer The number of the current Page. Is always non-negative.
sort object
pageable object
numberOfElements integer The number of elements currently on this Page.
empty boolean Whether the current Page is empty.
View JSON Schema on GitHub

JSON Schema

contrast-security-page-v4-application-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/contrast-security/main/json-schema/contrast-security-page-v4-application-schema.json",
  "title": "PageV4Application",
  "x-generated": "2026-10-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/contrast-security-applications-api-openapi.yml#/components/schemas/PageV4Application",
  "type": "object",
  "properties": {
    "totalElements": {
      "description": "The toal number of Elements.",
      "type": "integer",
      "format": "int64"
    },
    "totalPages": {
      "description": "The toal number of Pages.",
      "type": "integer",
      "format": "int32"
    },
    "first": {
      "description": "Whether the current Page is the first one.",
      "type": "boolean"
    },
    "last": {
      "description": "Whether the current Page is the last one.",
      "type": "boolean"
    },
    "size": {
      "description": "The size of the Page.",
      "type": "integer",
      "format": "int32"
    },
    "content": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/V4Application"
      }
    },
    "number": {
      "description": "The number of the current Page. Is always non-negative.",
      "type": "integer",
      "format": "int32"
    },
    "sort": {
      "$ref": "#/$defs/SortObject"
    },
    "pageable": {
      "$ref": "#/$defs/PageableObject"
    },
    "numberOfElements": {
      "description": "The number of elements currently on this Page.",
      "type": "integer",
      "format": "int32"
    },
    "empty": {
      "description": "Whether the current Page is empty.",
      "type": "boolean"
    }
  },
  "$defs": {
    "PageableObject": {
      "type": "object",
      "properties": {
        "offset": {
          "description": "The offset to be taken according to the underlying page and page size.",
          "type": "integer",
          "format": "int64"
        },
        "sort": {
          "description": "The sorting parameters.",
          "$ref": "#/$defs/SortObject"
        },
        "paged": {
          "description": "True if this response is paginated.",
          "type": "boolean"
        },
        "unpaged": {
          "description": "True if this response is not paginated.",
          "type": "boolean"
        },
        "pageSize": {
          "description": "The number of items per page.",
          "type": "integer",
          "format": "int32"
        },
        "pageNumber": {
          "description": "The current page number.",
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "SortObject": {
      "type": "object",
      "properties": {
        "empty": {
          "description": "True if the request had no sort parameters defined.",
          "type": "boolean"
        },
        "unsorted": {
          "description": "True if this response is not sorted.",
          "type": "boolean"
        },
        "sorted": {
          "description": "True if this response is sorted.",
          "type": "boolean"
        }
      }
    },
    "V4Application": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Application ID.",
          "format": "uuid"
        },
        "name": {
          "type": "string",
          "description": "Application name. For applications created in Assess or Protect, the agent assigns the name."
        },
        "displayName": {
          "type": "string",
          "description": "Name that appears in Contrast when displaying this application. Overrides the name field if present."
        },
        "path": {
          "type": "string",
          "description": "The root path this application is hosted on in the web server. This is discovered by the Assess or Protect agent."
        },
        "language": {
          "type": "string",
          "description": "The application's programming language.",
          "enum": [
            "JAVA",
            "DOTNET",
            "NODE",
            "RUBY",
            "PROXY",
            "PYTHON",
            "DOTNET_CORE",
            "GO",
            "PHP"
          ]
        },
        "importance": {
          "type": "string",
          "description": "Level of importance of this application in the organization. Applications with a higher level of importance are more scrutinized for security issues.",
          "enum": [
            "UNIMPORTANT",
            "LOW",
            "MEDIUM",
            "HIGH",
            "CRITICAL"
          ]
        },
        "isArchived": {
          "type": "boolean",
          "description": "Archived application"
        },
        "technologies": {
          "type": "array",
          "description": "Technologies associated with this application.",
          "items": {
            "type": "string"
          }
        },
        "tags": {
          "type": "array",
          "description": "Application tags. Tags are labels that can be assigned to applications to help organize applications and improve search functionality. These can be configured in the agent's configuration file or via the Contrast web interface.",
          "items": {
            "type": "string"
          }
        },
        "metadata": {
          "type": "array",
          "description": "Metadata assigned to this application. This is a set of key-value pairs that are defined either in the agent's configuration file or in the Contrast web interface. Metadata fields are predefined at the Organization level and strongly typed.",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "firstSeenTime": {
          "type": "string",
          "description": "The first time this application was observed by an agent, or the time this application was manually created (if not created by an agent).",
          "format": "date-time"
        },
        "lastSeenTime": {
          "type": "string",
          "description": "The most recent time an Assess or Protect agent observed activity for this application or it was scanned by SCA.",
          "format": "date-time"
        }
      },
      "description": "Represents a single executable component that can be instrumented or otherwise assessed for security vulnerabilities."
    }
  }
}

Work with this as data

Every JSON Schema 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 schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • 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 JSON Schema
curl "https://apis.io/api/v1/json-schemas/contrast-security-page-v4-application"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

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

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.