{
  "openapi": "3.0.1",
  "info": {
    "title": "Security Rating and Vendor Risk API: UpGuard CyberRisk",
    "description": "Security ratings and vendor risk data from the UpGuard CyberRisk API: vendor scores, category scores, risks, risk changes, CVE vulnerabilities, domains, IPs, identity breaches, data leaks and typosquat domains for third party risk and attack surface monitoring. Bring your own key.",
    "version": "0.1",
    "x-build-id": "C5S31jmBxi2TI7VfL"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~security-rating-vendor-risk-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-security-rating-vendor-risk-api",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/nabeelbaghoor~security-rating-vendor-risk-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-security-rating-vendor-risk-api",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/nabeelbaghoor~security-rating-vendor-risk-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-security-rating-vendor-risk-api",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "title": "What to get",
            "enum": [
              "vendorRating",
              "monitoredVendors",
              "vendorsWithRisk",
              "vendorRisks",
              "vendorRiskChanges",
              "vendorVulnerabilities",
              "vendorDomains",
              "vendorIps",
              "organisationRating",
              "organisationRisks",
              "organisationRiskChanges",
              "organisationVulnerabilities",
              "organisationDomains",
              "organisationIps",
              "domainDetails",
              "ipDetails",
              "identityBreaches",
              "dataLeakDisclosures",
              "typosquatDomains",
              "riskCatalogue"
            ],
            "type": "string",
            "description": "Vendor modes read third party data for vendors you monitor in UpGuard CyberRisk (key permission VendorRisk). Your organisation modes read your own attack surface (BreachRisk; the rating needs Platform). Identity breaches need IdentityBreaches and data leak disclosures need DataLeaks. Every call is a read only GET.",
            "default": "vendorRating"
          },
          "vendors": {
            "title": "Vendors",
            "type": "array",
            "description": "Vendor modes. One vendor primary hostname per line, such as upguard.com. The security rating mode also takes a numeric UpGuard vendor ID. Ratings come back for vendors you monitor or have an ad hoc report for; this actor never starts monitoring a vendor.",
            "items": {
              "type": "string"
            }
          },
          "hostnames": {
            "title": "Hostnames",
            "type": "array",
            "description": "Domain scan details only. One of your own active domains per line. An inactive domain is refused by the API and not charged.",
            "items": {
              "type": "string"
            }
          },
          "ips": {
            "title": "IP addresses",
            "type": "array",
            "description": "IP scan details only. One of your own active IPv4 or IPv6 addresses per line.",
            "items": {
              "type": "string"
            }
          },
          "riskId": {
            "title": "Risk ID",
            "type": "string",
            "description": "Vendors affected by a risk only. The risk ID to look for, 4 to 120 characters, as the Risk catalogue or Vendor risks modes list it, such as a CVE risk like verified_vuln:CVE-2021-34473."
          },
          "minSeverity": {
            "title": "Minimum severity",
            "enum": [
              "info",
              "low",
              "medium",
              "high",
              "critical"
            ],
            "type": "string",
            "description": "Vendor risks and your organisation risks. Only risks of this severity or higher.",
            "default": "info"
          },
          "includeSources": {
            "title": "Include sources",
            "type": "boolean",
            "description": "Risk and risk change modes. Adds the hostnames and IP addresses each risk was detected on, with ports when available.",
            "default": false
          },
          "includeMeta": {
            "title": "Include risk metadata",
            "type": "boolean",
            "description": "Vendor risks and your organisation risks. Adds per hostname metadata for each risk. Cannot be combined with exclude hostnames.",
            "default": false
          },
          "excludeHostnames": {
            "title": "Exclude hostnames",
            "type": "boolean",
            "description": "Vendor risks only. Leaves out the list of hostnames on each risk for a smaller row.",
            "default": false
          },
          "startDate": {
            "title": "Start date",
            "type": "string",
            "description": "Risk change modes: required, YYYY-MM-DD within the last 2 years; vendor risk changes allow at most 30 days to the end date. Data leak disclosures: optional, only disclosures after this date."
          },
          "endDate": {
            "title": "End date",
            "type": "string",
            "description": "Risk change modes and data leak disclosures, optional, YYYY-MM-DD. Empty means the latest state."
          },
          "domainStatus": {
            "title": "Domain status",
            "enum": [
              "all",
              "active",
              "inactive"
            ],
            "type": "string",
            "description": "Vendor domains and your organisation domains.",
            "default": "all"
          },
          "labels": {
            "title": "Labels",
            "type": "array",
            "description": "Monitored vendors, vendors affected by a risk, domain, IP and organisation vulnerability lists. Only records with these UpGuard labels. A label that does not exist may be refused by the API.",
            "items": {
              "type": "string"
            }
          },
          "domainSortBy": {
            "title": "Sort domains by",
            "enum": [
              "domain",
              "active",
              "automated_score",
              "scanned_at"
            ],
            "type": "string",
            "description": "Vendor domains and your organisation domains.",
            "default": "domain"
          },
          "ipSortBy": {
            "title": "Sort IPs by",
            "enum": [
              "ip",
              "owner",
              "country",
              "asn",
              "as_name",
              "automated_score"
            ],
            "type": "string",
            "description": "Vendor IPs and your organisation IPs.",
            "default": "ip"
          },
          "breachSortBy": {
            "title": "Sort breached identities by",
            "enum": [
              "name",
              "domain",
              "num_breaches",
              "date_last_breach"
            ],
            "type": "string",
            "description": "Identity breaches only.",
            "default": "date_last_breach"
          },
          "sortDescending": {
            "title": "Sort descending",
            "type": "boolean",
            "description": "Domain, IP and identity breach lists. Sorts the chosen field from highest to lowest.",
            "default": false
          },
          "includeVendorRisks": {
            "title": "Include vendor risks",
            "type": "boolean",
            "description": "Monitored vendors only. Adds a summary list of each vendor's risks.",
            "default": false
          },
          "includeAdHocReports": {
            "title": "Include ad hoc report vendors",
            "type": "boolean",
            "description": "Monitored vendors only. Also lists vendors you have an existing ad hoc report for.",
            "default": false
          },
          "waitForScan": {
            "title": "Wait for scan",
            "type": "boolean",
            "description": "Vendor security rating only. Asks the API to wait for scan results on a vendor UpGuard has not seen before, instead of answering that it was scheduled.",
            "default": false
          },
          "minScore": {
            "title": "Minimum vendor score",
            "minimum": 0,
            "maximum": 950,
            "type": "integer",
            "description": "Vendors affected by a risk only. Only vendors with a score of at least this value (0 to 950)."
          },
          "maxScore": {
            "title": "Maximum vendor score",
            "minimum": 0,
            "maximum": 950,
            "type": "integer",
            "description": "Vendors affected by a risk only. Only vendors with a score of at most this value (0 to 950)."
          },
          "namePrefix": {
            "title": "Vendor name starts with",
            "type": "string",
            "description": "Vendors affected by a risk only. Only vendors whose name starts with this text, ignoring case."
          },
          "vendorTiers": {
            "title": "Vendor tiers",
            "type": "array",
            "description": "Vendors affected by a risk only. Only watched vendors in these tiers.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "Tier 1",
                "Tier 2",
                "Tier 3",
                "Tier 4",
                "Tier 5"
              ]
            }
          },
          "breachId": {
            "title": "Breach ID",
            "type": "string",
            "description": "Identity breaches only. Only identities in this breach, using the breach ID from an earlier identity breaches row."
          },
          "disclosureStatuses": {
            "title": "Disclosure statuses",
            "type": "array",
            "description": "Data leak disclosures only. Only disclosures in these statuses. Empty means every status.",
            "items": {
              "type": "string",
              "enum": [
                "Disclosed",
                "Acknowledged",
                "Investigating",
                "Remediating",
                "ClosedNoIssue",
                "ClosedRiskAccepted",
                "ClosedFixedUnverified",
                "ClosedFixedVerified"
              ],
              "enumTitles": [
                "Disclosed",
                "Acknowledged",
                "Investigating",
                "Remediating",
                "Closed, no issue",
                "Closed, risk accepted",
                "Closed, fixed unverified",
                "Closed, fixed verified"
              ]
            }
          },
          "disclosureIds": {
            "title": "Disclosure IDs",
            "type": "array",
            "description": "Data leak disclosures only, optional. Numeric disclosure IDs to read.",
            "items": {
              "type": "string"
            }
          },
          "riskCategory": {
            "title": "Risk category",
            "type": "string",
            "description": "Risk catalogue only, optional. Only risks in this category, as the catalogue names it."
          },
          "riskSeverity": {
            "title": "Risk severity",
            "enum": [
              "any",
              "info",
              "low",
              "medium",
              "high",
              "critical"
            ],
            "type": "string",
            "description": "Risk catalogue only. Only risks of exactly this severity.",
            "default": "any"
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "The most rows this run returns and charges for. Paged lists stop asking for pages once this is reached.",
            "default": 100
          },
          "requestsPerMinute": {
            "title": "Requests per minute",
            "minimum": 1,
            "maximum": 300,
            "type": "integer",
            "description": "Pacing for calls to cyber-risk.upguard.com. Throttled calls are retried after a pause.",
            "default": 60
          },
          "apiKey": {
            "title": "API key",
            "type": "string",
            "description": "Your own UpGuard CyberRisk API key, from Account Settings, API, with the permissions for the modes you use. Stored as a secret and sent only to cyber-risk.upguard.com in the Authorization header; it is never logged. You can instead set the DATA_API_KEY environment secret."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}