Learn more about Private Locations in the Private Locations overview.
Use Private Location to create private locations for running checks from your own infrastructure, VPCs, or segregated networks. This enables monitoring of internal services and applications not accessible from the public internet.
Before creating private locations, ensure you have:
  • An initialized Checkly CLI project
  • Access to the infrastructure where you’ll deploy the private location agent
  • Network connectivity from your infrastructure to Checkly’s API endpoints
  • Understanding of your internal network topology and security requirements
  • Administrative privileges to deploy and run the private location agent
For additional setup information, see CLI overview.
import { PrivateLocation } from "checkly/constructs"

const myPrivateLocation = new PrivateLocation("private-location-1", {
  name: "My Private Location",
  icon: "server",
  slugName: "my-private-location"
})

Configuration

ParameterTypeRequiredDefaultDescription
namestring-Friendly name for your private location
slugNamestring-Unique slug identifier (must be unique across your account)
iconstring-Octicon name to distinguish the location in the UI
proxyUrlstring-Proxy URL for outgoing HTTP calls from this location

Private Location Options

name
string
required
Friendly name for your private location that will be displayed in the Checkly dashboard and used for identification.Usage:
new PrivateLocation("my-location", {
  name: "Corporate Data Center",
  slugName: "corporate-data-center"
})
slugName
string
required
Unique slug identifier for your private location. This must be unique across your entire Checkly account and is used for referencing the location.Usage:
new PrivateLocation("my-location", {
  name: "My Location",
  slugName: "my-unique-location-slug",
})
Examples:
// Descriptive and stable slugs
new PrivateLocation("corp-vpc-east", {
  name: "Corporate VPC East",
  slugName: "corporate-vpc-east-1",
})

new PrivateLocation("k8s-prod", {
  name: "Production Kubernetes",
  slugName: "k8s-production-cluster"
})

new PrivateLocation("datacenter-west", {
  name: "West Coast Datacenter",
  slugName: "datacenter-west-coast"
})
The slugName must be unique across your entire Checkly account and cannot be changed after creation. Choose descriptive, stable names.
icon
string
Octicon name to visually distinguish the location in the Checkly UI. Choose icons that represent your infrastructure type or purpose.Usage:
new PrivateLocation("my-location", {
  name: "Database Zone",
  icon: "database",
  slugName: "database-zone"
})
Available icons: Any Octicon name (e.g., server, database, cloud, shield, container, tools, building)
proxyUrl
string
Proxy URL for outgoing HTTP calls from this private location. Use when your infrastructure requires all external traffic to go through a corporate proxy.Usage:
new PrivateLocation('corporate-location', {
  name: 'Corporate Network',
  slugName: 'corporate-network',
  proxyUrl: 'http://proxy.company.local:8080'
})

Referencing Existing Locations

Reference private locations by using their construct reference or by slug names if they were created outside your CLI project:
const privateLocationVpcEast = new PrivateLocation("corp-vpc-east", {
  name: "Corporate VPC East",
  slugName: "corporate-vpc-east-1",
})

new ApiCheck("existing-location-reference", {
  name: "Check Using Existing Reference",
  privateLocations: [privateLocationVpcEast], // Construct reference
  request: {
    method: "GET",
    url: "https://internal.company.local/health"
  }
})
All checks and monitors that support the privateLocations option can run in your private location
Examples:
new PrivateLocation("corp-proxy-location", {
  name: "Corporate Network with Proxy",
  slugName: "corporate-with-proxy",
  proxyUrl: "http://proxy.company.local:8080"
})
When proxyUrl is configured, all HTTP calls from API checks running in this private location will route through the specified proxy server.
Use cases: Corporate network compliance, security requirements, traffic routing control.

Examples

import { PrivateLocation, ApiCheck } from "checkly/constructs"

const corporateVpc = new PrivateLocation("corporate-vpc", {
  name: "Corporate VPC",
  icon: "shield",
  slugName: "corporate-vpc"
})

// Monitor internal services
new ApiCheck("intranet-check", {
  name: "Corporate Intranet",
  privateLocations: [corporateVpc],
  request: {
    method: "GET",
    url: "https://intranet.company.local"
  }
})

new ApiCheck("ldap-health-check", {
  name: "LDAP Service Health",
  privateLocations: [corporateVpc],
  request: {
    method: "GET",
    url: "https://ldap-health.company.local/status"
  }
})