### POST /v1/measurements Source: https://api.globalping.io/v1/spec.yaml Creates a new measurement with parameters set in the request body. The measurement runs asynchronously and you can retrieve its current state at the URL returned in the `Location` header. ### Client guidelines - If the application is running in interactive mode, set the `inProgressUpdates` option to `true` to have the API return partial results as soon as they are available. This allows the user to see the measurement progress in real time. - If the application is interactive by default but also implements a "CI" mode for scripting, do not set the flag in the CI mode. - To perform multiple measurements using exactly the same probes, create a single measurement first, then pass its `id` in the `locations` field for the other measurements. - When you receive a `429` response, inform the user about their current rate limit status based on the response headers. Depending on the exact situation and on what your application supports, you may also suggest: - Signing in or using an access token. - Learning more about how to get additional credits at https://globalping.io/credits. - Repeating the measurement with fewer probes. ```markdown ### Request Body **Content-Type:** application/json - **type** (string (ping|traceroute|dns|mtr|http)) (required): The measurement type. ("ping"|"traceroute"|"dns"|"mtr"|"http") - **target** (string) (required): A publicly reachable measurement target. Typically a hostname, an IPv4 address, or IPv6 address, depending on the measurement `type`. Support for IPv6 targets is currently considered experimental. - **inProgressUpdates** (boolean): Indicates whether you want to get partial results while the measurement is still running: - If `true`, partial results are returned as soon as they are available, and you can present them to the user in real time. Note that only the first 5 tests from the `results` array will update in real time. - If `false`, the result of each test is updated only after the test finishes. - **locations** (array (MeasurementLocationOption)): An array of locations from which to run the measurement. Each object specifies a location using one or more keys, such as country, city, ASN, etc. Array items: - **continent** (string (AF|AN|AS|EU|NA|OC|SA)): A two-letter continent code. ("AF"|"AN"|"AS"|"EU"|"NA"|"OC"|"SA") - **region** (string (Northern Africa|Eastern Africa|Middle Africa|Southern Africa|Western Africa|Caribbean|Central America|South America|Northern America|Central Asia|Eastern Asia|South-eastern Asia|Southern Asia|Western Asia|Eastern Europe|Northern Europe|Southern Europe|Western Europe|Australia and New Zealand|Melanesia|Micronesia|Polynesia)): A geographic region name based on UN [Standard Country or Area Codes for Statistical Use (M49)](https://unstats.un.org/unsd/methodology/m49/). ("Northern Africa"|"Eastern Africa"|"Middle Africa"|"Southern Africa"|"Western Africa"|"Caribbean"|"Central America"|"South America"|"Northern America"|"Central Asia"|"Eastern Asia"|"South-eastern Asia"|"Southern Asia"|"Western Asia"|"Eastern Europe"|"Northern Europe"|"Southern Europe"|"Western Europe"|"Australia and New Zealand"|"Melanesia"|"Micronesia"|"Polynesia") - **country** (string): A two-letter country code based on [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements). - **state** (string,null): A two-letter [US state code](https://www.faa.gov/air_traffic/publications/atpubs/cnt_html/appendix_a.html). - **city** (string): A city name in English. - **asn** (integer): An autonomous system number (ASN). - **network** (string): A network name, such as "Google LLC" or "DigitalOcean, LLC". - **tags** (array (string)): An array of additional values to fine-tune probe selection: - Probes hosted in [AWS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions) and [Google Cloud](https://cloud.google.com/compute/docs/regions-zones#available) are automatically assigned the service region code. For example: `aws-eu-west-1` and `gcp-us-south1`. - Probes are automatically assigned `datacenter-network` and `eyeball-network` tags to distinguish between datacenter and end-user locations. - **magic** (string): Locations defined in a single string instead of the respective location properties. The API performs fuzzy matching on the `country`, `city`, `state` (using `US-` prefix, e.g., `US-NY`), `continent`, `region`, `asn` (using `AS` prefix, e.g., `AS123`), `tags`, and `network` values. Supports full names, ISO codes (where applicable), and common aliases. Multiple conditions can be combined using the `+` character, which behaves as a logical `AND`. Note that in some cases, the names of cities, states, and countries, as well as the ISO codes of countries and continents, overlap. Additionally, city names are not unique across countries. We recommend that you: - refer to US states via their full [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2:US) codes, e.g., `US-NY`, - refer to cities in combination with their country or US state, - refer to continents by their name (not the two letter codes). - **limit** (integer): The maximum number of probes that should run the measurement in this location. Non-authenticated requests are limited to a maximum of 50 probes. The result count might be lower if there aren't enough probes available in this location. Mutually exclusive with the global `limit` property. - **limit** (integer): The maximum number of probes that should run the measurement. The result count might be lower if there aren't enough probes available in the specified locations. Mutually exclusive with the `limit` property that can be set for individual locations. Non-authenticated requests are limited to a maximum of 50 probes. - **measurementOptions** (object) - **packets** (integer): The number of packets to send. - **protocol** (string (ICMP|TCP)): The transport protocol to use. ("ICMP"|"TCP") - **port** (integer): The destination port for the packets. Applies only for the `TCP` protocol. - **ipVersion** (integer): EXPERIMENTAL: The IP version to use. Only allowed if the target is a hostname. ("4"|"6") ### Responses #### 202 - response **CreateMeasurementResponse** - **id** (string) (required): The measurement ID. > **Tip**: You can use the ID to create a new measurement request, reusing the same probes. - **probesCount** (integer) (required): The actual number of probes that performed the measurement tests. Smaller or equal to `limit`, depending on probe availability. #### 400 - response - **error** (object) (required): Information about the error. - **type** (string) (required): The type of the error. - **message** (string) (required): A human-readable description of the error. - **params** (object): Additional information that might be present if the error is related to a specific parameter or payload field. #### 422 - response - **error** (object) (required) - **type** (string) (required) - **message** (string) (required) #### 429 - response - **error** (object) (required) - **type** (string) (required) - **message** (string) (required) ### Example Usage ```bash curl -X POST "https://api.globalping.io/v1/measurements" \ -H "Content-Type: application/json" \ -d '{ "type": "value", "target": "value", "inProgressUpdates": "false", "locations": "value", "limit": "value", "measurementOptions": "value" }' ``` ``` -------------------------------- ### API Overview: Globalping API Source: https://api.globalping.io/v1/spec.yaml The Globalping API allows you to monitor, debug, and benchmark your internet infrastructure using a globally distributed network of probes. The supported test types are ping, traceroute, MTR, DNS resolve, and HTTP. The API is public, free to use, and doesn't require authentication, but it implements rate limits to ensure fair usage and reliability. Authenticated users get higher free limits and may run additional tests by spending credits. Sign up on the [Globalping Dashboard](https://dash.globalping.io/) to enjoy the higher limits. Root endpoint: https://api.globalping.io ## Limits and credits | Operation | Unauthenticated user | Authenticated user | |---|---|---| | **Measurements** ||| | Create a measurement | 250 free tests/hour
50 probes/measurement | 500 free tests/hour*
500 probes/measurement | | Get a measurement by ID | 2 requests/second/measurement | 2 requests/second/measurement | | **Probes** ||| | List probes currently online | no limit | no limit | | **Limits** ||| | Get current rate limits | no limit | no limit | \*Additional measurements may be created by spending credits. Each test above the limit costs one credit. Learn more about credits on the [Globalping website](https://globalping.io/credits). ## Client guidelines If you're implementing an application that interacts with the API, please refer to the "Client guidelines" section in the description of each endpoint. This way, you can provide the best UX and reduce the likelihood of your app breaking in the future. ### General guidelines for non-browser-based apps: - Set a `User-Agent` header. We recommend that you follow the format and approach [used here](https://github.com/jsdelivr/data.jsdelivr.com/blob/60c5154d26c403ba9dd403a8ddc5e42a31931f0d/config/default.js#L9). - Set an `Accept-Encoding` header with a value of either `br` (preferred) or `gzip`, depending on what your client can support. Compression has a significant impact on the response size. - Implement ETag-based client-side caching using the `ETag`/`If-None-Match` headers when requesting the measurement status. ```yaml # Globalping API # Version: 1.0.0 The Globalping API allows you to monitor, debug, and benchmark your internet infrastructure using a globally distributed network of probes. The supported test types are ping, traceroute, MTR, DNS resolve, and HTTP. The API is public, free to use, and doesn't require authentication, but it implements rate limits to ensure fair usage and reliability. Authenticated users get higher free limits and may run additional tests by spending credits. Sign up on the [Globalping Dashboard](https://dash.globalping.io/) to enjoy the higher limits. Root endpoint: https://api.globalping.io ## Limits and credits | Operation | Unauthenticated user | Authenticated user | |---|---|---| | **Measurements** ||| | Create a measurement | 250 free tests/hour
50 probes/measurement | 500 free tests/hour*
500 probes/measurement | | Get a measurement by ID | 2 requests/second/measurement | 2 requests/second/measurement | | **Probes** ||| | List probes currently online | no limit | no limit | | **Limits** ||| | Get current rate limits | no limit | no limit | \*Additional measurements may be created by spending credits. Each test above the limit costs one credit. Learn more about credits on the [Globalping website](https://globalping.io/credits). ## Client guidelines If you're implementing an application that interacts with the API, please refer to the "Client guidelines" section in the description of each endpoint. This way, you can provide the best UX and reduce the likelihood of your app breaking in the future. ### General guidelines for non-browser-based apps: - Set a `User-Agent` header. We recommend that you follow the format and approach [used here](https://github.com/jsdelivr/data.jsdelivr.com/blob/60c5154d26c403ba9dd403a8ddc5e42a31931f0d/config/default.js#L9). - Set an `Accept-Encoding` header with a value of either `br` (preferred) or `gzip`, depending on what your client can support. Compression has a significant impact on the response size. - Implement ETag-based client-side caching using the `ETag`/`If-None-Match` headers when requesting the measurement status. # Base URL: https://api.globalping.io ``` -------------------------------- ### GET /v1/probes Source: https://api.globalping.io/v1/spec.yaml Returns a list of all probes currently online and their metadata, such as location and assigned tags. > **Note**: Probes don't expose unique IDs that would allow you to explicitly select them. Instead, specify the requested location or an ID of an existing measurement when creating new measurements. ```markdown ### Responses #### 200 - response **Probes** - Array of Probe ### Example Usage ```bash curl -X GET "https://api.globalping.io/v1/probes" ``` ``` -------------------------------- ### GET /v1/measurements/{id} Source: https://api.globalping.io/v1/spec.yaml Returns the status and results of an existing measurement. Measurements are typically available for up to 7 days after creation. > **Tip**: A link to this endpoint is returned in the `Location` response header when creating the measurement. ### Client guidelines As it can take a few seconds for a measurement to complete, you should use the following process for retrieving the results: 1. Request the measurement to retrieve its status. 2. If the status is `in-progress`, wait 500 milliseconds and start again at step 1. Note that it's important to wait 500 ms *after* receiving the response rather than using an "every 500ms" interval as for large measurements, the request itself may take a few hundred milliseconds to complete. 3. If the status is anything **other** than `in-progress`, stop. The measurement is no longer running, and its results are final. > **Important**: Do not query the results of a single measurement more often than every 500 milliseconds. Sending more than two requests per second may trigger a rate limit and prevent you from accessing the results for a few seconds. ```markdown ### Responses #### 200 - response - **id** (string) (required): The measurement ID. - **type** (string (ping|traceroute|dns|mtr|http)) (required): The measurement type. ("ping"|"traceroute"|"dns"|"mtr"|"http") - **target** (string) (required): A publicly reachable measurement target. Typically a hostname, an IPv4 address, or IPv6 address, depending on the measurement `type`. Support for IPv6 targets is currently considered experimental. - **status** (string (in-progress|finished)) (required): The current measurement status. Any value other than `in-progress` is final. ("in-progress"|"finished") - **createdAt** (string (date-time)) (required): The date and time when the measurement was created. - **updatedAt** (string (date-time)) (required): The date and time when the measurement was last updated. - **probesCount** (integer) (required): The actual number of probes that performed the measurement tests. Smaller or equal to `limit`, depending on probe availability. - **locations** (array (MeasurementLocationOption)): The locations you specified when creating the measurement. If you passed in an `id` of a previous measurement, the value will be filled in from that measurement. Array items: - **continent** (string (AF|AN|AS|EU|NA|OC|SA)): A two-letter continent code. ("AF"|"AN"|"AS"|"EU"|"NA"|"OC"|"SA") - **region** (string (Northern Africa|Eastern Africa|Middle Africa|Southern Africa|Western Africa|Caribbean|Central America|South America|Northern America|Central Asia|Eastern Asia|South-eastern Asia|Southern Asia|Western Asia|Eastern Europe|Northern Europe|Southern Europe|Western Europe|Australia and New Zealand|Melanesia|Micronesia|Polynesia)): A geographic region name based on UN [Standard Country or Area Codes for Statistical Use (M49)](https://unstats.un.org/unsd/methodology/m49/). ("Northern Africa"|"Eastern Africa"|"Middle Africa"|"Southern Africa"|"Western Africa"|"Caribbean"|"Central America"|"South America"|"Northern America"|"Central Asia"|"Eastern Asia"|"South-eastern Asia"|"Southern Asia"|"Western Asia"|"Eastern Europe"|"Northern Europe"|"Southern Europe"|"Western Europe"|"Australia and New Zealand"|"Melanesia"|"Micronesia"|"Polynesia") - **country** (string): A two-letter country code based on [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements). - **state** (string,null): A two-letter [US state code](https://www.faa.gov/air_traffic/publications/atpubs/cnt_html/appendix_a.html). - **city** (string): A city name in English. - **asn** (integer): An autonomous system number (ASN). - **network** (string): A network name, such as "Google LLC" or "DigitalOcean, LLC". - **tags** (array (string)): An array of additional values to fine-tune probe selection: - Probes hosted in [AWS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions) and [Google Cloud](https://cloud.google.com/compute/docs/regions-zones#available) are automatically assigned the service region code. For example: `aws-eu-west-1` and `gcp-us-south1`. - Probes are automatically assigned `datacenter-network` and `eyeball-network` tags to distinguish between datacenter and end-user locations. - **magic** (string): Locations defined in a single string instead of the respective location properties. The API performs fuzzy matching on the `country`, `city`, `state` (using `US-` prefix, e.g., `US-NY`), `continent`, `region`, `asn` (using `AS` prefix, e.g., `AS123`), `tags`, and `network` values. Supports full names, ISO codes (where applicable), and common aliases. Multiple conditions can be combined using the `+` character, which behaves as a logical `AND`. Note that in some cases, the names of cities, states, and countries, as well as the ISO codes of countries and continents, overlap. Additionally, city names are not unique across countries. We recommend that you: - refer to US states via their full [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2:US) codes, e.g., `US-NY`, - refer to cities in combination with their country or US state, - refer to continents by their name (not the two letter codes). - **limit** (integer): The maximum number of probes that should run the measurement in this location. Non-authenticated requests are limited to a maximum of 50 probes. The result count might be lower if there aren't enough probes available in this location. Mutually exclusive with the global `limit` property. - **limit** (integer): The limit you specified when creating the measurement if different from the default value. - **measurementOptions** (object): The options you specified when creating the measurement if different from the default. - **packets** (integer): The number of packets to send. - **protocol** (string (ICMP|TCP)): The transport protocol to use. ("ICMP"|"TCP") - **port** (integer): The destination port for the packets. Applies only for the `TCP` protocol. - **ipVersion** (integer): EXPERIMENTAL: The IP version to use. Only allowed if the target is a hostname. ("4"|"6") - **results** (array (MeasurementResultItem)) (required): An array containing the measurement results. Array items: - **probe** (object) (required): Information about the probe that performed this test, such as its location, tags, and resolvers. - **result** (object) (required): Represents an `in-progress` test where most fields are not yet available. - **status** (string) (required): The current test status. Any value other than `in-progress` is final. - **rawOutput** (string) (required): The raw output of the test. Can be presented to users but is not meant to be parsed by clients. Please use the individual values provided in other fields for automated processing. #### 404 - response - **error** (object) (required) - **type** (string) (required) - **message** (string) (required) #### 429 - response - **error** (object) (required) - **type** (string) (required) - **message** (string) (required) ### Example Usage ```bash curl -X GET "https://api.globalping.io/v1/measurements/{id}" ``` ``` -------------------------------- ### GET /v1/limits Source: https://api.globalping.io/v1/spec.yaml Returns rate limits for the current user (if authenticated) or IP address (if not authenticated). ```markdown ### Responses #### 200 - response **Limits** - **rateLimit** (object) (required): Object containing rate limits information. - **measurements** (object) (required): Measurements rate limits. - **create** (object) (required): Rate limit for creating measurements. - **type** (string (ip|user)) (required): Type of the rate limit. ("ip"|"user") - **limit** (integer) (required): The number of rate limit points available in a given time window. - **remaining** (integer) (required): The number of rate limit points remaining in the current time window. - **reset** (integer) (required): The number of seconds until the limit resets. - **credits** (object): Object containing credits information (only for authenticated requests). - **remaining** (integer): The number of user's remaining credits. ### Example Usage ```bash curl -X GET "https://api.globalping.io/v1/limits" ``` ``` -------------------------------- ### Security: BearerAuth Source: https://api.globalping.io/v1/spec.yaml For end users - generate a token in the [Globalping Dashboard](https://dash.globalping.io/tokens) and send it with your requests to get higher limits. ```markdown ## Security: BearerAuth **Description:** For end users - generate a token in the [Globalping Dashboard](https://dash.globalping.io/tokens) and send it with your requests to get higher limits. **Type:** http **Scheme:** bearer ``` -------------------------------- ### Schema: IpVersion Source: https://api.globalping.io/v1/spec.yaml EXPERIMENTAL: The IP version to use. Only allowed if the target is a hostname. ```markdown ## Schema: IpVersion EXPERIMENTAL: The IP version to use. Only allowed if the target is a hostname. **Type:** integer ``` -------------------------------- ### Schema: HttpRequestMethod Source: https://api.globalping.io/v1/spec.yaml The HTTP method to use. ```markdown ## Schema: HttpRequestMethod The HTTP method to use. **Type:** string ``` -------------------------------- ### Schema: TracerouteProtocol Source: https://api.globalping.io/v1/spec.yaml The transport protocol to use. ```markdown ## Schema: TracerouteProtocol The transport protocol to use. **Type:** string ``` -------------------------------- ### Schema: Tags Source: https://api.globalping.io/v1/spec.yaml An array of additional values to fine-tune probe selection: - Probes hosted in [AWS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions) and [Google Cloud](https://cloud.google.com/compute/docs/regions-zones#available) are automatically assigned the service region code. For example: `aws-eu-west-1` and `gcp-us-south1`. - Probes are automatically assigned `datacenter-network` and `eyeball-network` tags to distinguish between datacenter and end-user locations. ```markdown ## Schema: Tags An array of additional values to fine-tune probe selection: - Probes hosted in [AWS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions) and [Google Cloud](https://cloud.google.com/compute/docs/regions-zones#available) are automatically assigned the service region code. For example: `aws-eu-west-1` and `gcp-us-south1`. - Probes are automatically assigned `datacenter-network` and `eyeball-network` tags to distinguish between datacenter and end-user locations. **Type:** array - Array of string ``` -------------------------------- ### Schema: PingProtocol Source: https://api.globalping.io/v1/spec.yaml The transport protocol to use. ```markdown ## Schema: PingProtocol The transport protocol to use. **Type:** string ``` -------------------------------- ### Schema: DnsProtocol Source: https://api.globalping.io/v1/spec.yaml The protocol to use for the DNS query. ```markdown ## Schema: DnsProtocol The protocol to use for the DNS query. **Type:** string ``` -------------------------------- ### Schema: CreateMeasurementResponse Source: https://api.globalping.io/v1/spec.yaml Contains information about the newly created measurement. ```markdown ## Schema: CreateMeasurementResponse Contains information about the newly created measurement. **Type:** object - **id** (string) (required): The measurement ID. > **Tip**: You can use the ID to create a new measurement request, reusing the same probes. - **probesCount** (integer) (required): The actual number of probes that performed the measurement tests. Smaller or equal to `limit`, depending on probe availability. ``` -------------------------------- ### Schema: FinishedSimpleDnsTestResult Source: https://api.globalping.io/v1/spec.yaml Represents a `finished` DNS test with `trace` disabled. ```markdown ## Schema: FinishedSimpleDnsTestResult Represents a `finished` DNS test with `trace` disabled. **Type:** object - **status** (string) (required): The current test status. Any value other than `in-progress` is final. - **rawOutput** (string) (required): The raw output of the test. Can be presented to users but is not meant to be parsed by clients. Please use the individual values provided in other fields for automated processing. - **statusCode** (integer) (required): The DNS [response code](https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#table-dns-parameters-6). - **statusCodeName** (string) (required): The DNS [response code name](https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#table-dns-parameters-6). - **resolver** (string) (required): The hostname or IP of the resolver that answered the query. - **answers** (array (DnsTestAnswer)) (required): An array of the received resource records. Array items: - **name** (string) (required): The record domain name. - **type** (string) (required): The record type. - **ttl** (integer) (required): The record time-to-live value in seconds. - **class** (string) (required): The record class. - **value** (string) (required): The record value. - **timings** (object) (required): Details about the query times. All times are in milliseconds. - **total** (number) (required): The total query time. ``` -------------------------------- ### Schema: HttpProtocol Source: https://api.globalping.io/v1/spec.yaml Schema definition for HttpProtocol ```markdown ## Schema: HttpProtocol Schema definition for HttpProtocol **Type:** string ``` -------------------------------- ### Schema: Probe Source: https://api.globalping.io/v1/spec.yaml Schema definition for Probe ```markdown ## Schema: Probe Schema definition for Probe **Type:** object - **version** (string) (required): The probe version. - **location** (object) (required): The probe location information. - **continent** (string (AF|AN|AS|EU|NA|OC|SA)) (required): A two-letter continent code. ("AF"|"AN"|"AS"|"EU"|"NA"|"OC"|"SA") - **region** (string (Northern Africa|Eastern Africa|Middle Africa|Southern Africa|Western Africa|Caribbean|Central America|South America|Northern America|Central Asia|Eastern Asia|South-eastern Asia|Southern Asia|Western Asia|Eastern Europe|Northern Europe|Southern Europe|Western Europe|Australia and New Zealand|Melanesia|Micronesia|Polynesia)) (required): A geographic region name based on UN [Standard Country or Area Codes for Statistical Use (M49)](https://unstats.un.org/unsd/methodology/m49/). ("Northern Africa"|"Eastern Africa"|"Middle Africa"|"Southern Africa"|"Western Africa"|"Caribbean"|"Central America"|"South America"|"Northern America"|"Central Asia"|"Eastern Asia"|"South-eastern Asia"|"Southern Asia"|"Western Asia"|"Eastern Europe"|"Northern Europe"|"Southern Europe"|"Western Europe"|"Australia and New Zealand"|"Melanesia"|"Micronesia"|"Polynesia") - **country** (string) (required): A two-letter country code based on [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements). - **state** (string,null) (required): A two-letter [US state code](https://www.faa.gov/air_traffic/publications/atpubs/cnt_html/appendix_a.html). - **city** (string) (required): A city name in English. - **asn** (integer) (required): An autonomous system number (ASN). - **network** (string) (required): A network name, such as "Google LLC" or "DigitalOcean, LLC". - **latitude** (number) (required): The latitude of probe location. - **longitude** (number) (required): The longitude of probe location. - **tags** (array (string)) (required): An array of additional values to fine-tune probe selection: - Probes hosted in [AWS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions) and [Google Cloud](https://cloud.google.com/compute/docs/regions-zones#available) are automatically assigned the service region code. For example: `aws-eu-west-1` and `gcp-us-south1`. - Probes are automatically assigned `datacenter-network` and `eyeball-network` tags to distinguish between datacenter and end-user locations. - **resolvers** (array (ProbeResolver)) (required): An array of the default resolvers configured on the probe. ``` -------------------------------- ### Schema: FinishedMtrTestResult Source: https://api.globalping.io/v1/spec.yaml Represents a `finished` MTR test. ```markdown ## Schema: FinishedMtrTestResult Represents a `finished` MTR test. **Type:** object - **status** (string) (required): The current test status. Any value other than `in-progress` is final. - **rawOutput** (string) (required): The raw output of the test. Can be presented to users but is not meant to be parsed by clients. Please use the individual values provided in other fields for automated processing. - **resolvedAddress** (string,null) (required): The resolved IP address of the `target`. - **resolvedHostname** (string,null) (required): The resolved hostname of the `target`. - **hops** (array (object)) (required): An array containing details about each hop. Array items: - **resolvedAddress** (string,null) (required): The resolved IP address of this hop. - **resolvedHostname** (string,null) (required): The resolved hostname of this hop. - **asn** (array (integer)) (required): An array containing the ASNs assigned to this hop. - **stats** (object) (required): Summary `rtt` and packet loss statistics. All times are in milliseconds. - **min** (number) (required): The lowest `rtt` value. - **avg** (number) (required): The average `rtt` value. - **max** (number) (required): The highest `rtt` value. - **stDev** (number) (required): The standard deviation of the `rtt` values. - **jMin** (number) (required): The lowest jitter value. - **jAvg** (number) (required): The average jitter value. - **jMax** (number) (required): The highest jitter value. - **total** (integer) (required): The number of packets sent. - **rcv** (integer) (required): The number of received packets. - **drop** (integer) (required): The number of dropped packets (`total` - `rcv`). - **loss** (number) (required): The percentage of dropped packets. - **timings** (array (object)) (required): An array containing details for each packet. All times are in milliseconds. Array items: - **rtt** (number) (required): The round-trip time for this packet. ``` -------------------------------- ### Schema: HttpOptions Source: https://api.globalping.io/v1/spec.yaml Schema definition for MeasurementHttpOptions ```markdown ## Schema: HttpOptions Schema definition for MeasurementHttpOptions **Type:** object - **request** (object): The HTTP request properties. - **host** (string): An optional override for the `Host` header. The default value is based on the `target`. - **path** (string): The path portion of the URL. - **query** (string): The query string portion of the URL. - **method** (string (HEAD|GET|OPTIONS)): The HTTP method to use. ("HEAD"|"GET"|"OPTIONS") - **headers** (object): Additional request headers. Note that the `Host` and `User-Agent` are reserved and internally overridden. - **resolver** (string (ipv4)): The IPv4 address of the resolver. - **protocol** (string (HTTP|HTTPS|HTTP2)) ("HTTP"|"HTTPS"|"HTTP2") - **port** (integer): The port number to use. - **ipVersion** (integer): EXPERIMENTAL: The IP version to use. Only allowed if the target is a hostname. ("4"|"6") ``` -------------------------------- ### Schema: FinishedTraceDnsTestResult Source: https://api.globalping.io/v1/spec.yaml Represents a `finished` DNS test with `trace` enabled. ```markdown ## Schema: FinishedTraceDnsTestResult Represents a `finished` DNS test with `trace` enabled. **Type:** object - **status** (string) (required): The current test status. Any value other than `in-progress` is final. - **rawOutput** (string) (required): The raw output of the test. Can be presented to users but is not meant to be parsed by clients. Please use the individual values provided in other fields for automated processing. - **hops** (array (DnsTestHopResult)) (required): An array containing details about each hop. Array items: - **resolver** (string) (required): The hostname or IP of the resolver that answered the query. - **answers** (array (DnsTestAnswer)) (required): An array of the received resource records. Array items: - **name** (string) (required): The record domain name. - **type** (string) (required): The record type. - **ttl** (integer) (required): The record time-to-live value in seconds. - **class** (string) (required): The record class. - **value** (string) (required): The record value. - **timings** (object) (required): Details about the query times. All times are in milliseconds. - **total** (number) (required): The total query time. ``` -------------------------------- ### Schema: NullableInteger Source: https://api.globalping.io/v1/spec.yaml Schema definition for NullableInteger ```markdown ## Schema: NullableInteger Schema definition for NullableInteger **Type:** integer,null ``` -------------------------------- ### Schema: FinishedHttpTestResult Source: https://api.globalping.io/v1/spec.yaml Represents a `finished` HTTP test. ```markdown ## Schema: FinishedHttpTestResult Represents a `finished` HTTP test. **Type:** object - **status** (string) (required): The current test status. Any value other than `in-progress` is final. - **rawOutput** (string) (required): The raw output of the test. Can be presented to users but is not meant to be parsed by clients. Please use the individual values provided in other fields for automated processing. - **rawHeaders** (string) (required): The raw HTTP response headers. - **rawBody** (string,null) (required): The raw HTTP response body or `null` if there was no body in response. Note that only the first 10 kb are returned. - **truncated** (boolean) (required): Indicates whether the `rawHeaders` or `rawBody` value was truncated due to being too big. - **headers** (object) (required): The HTTP response headers. The value may be an array of strings for headers with multiple values, e.g., `Set-Cookie`. - **statusCode** (integer) (required): The HTTP response status code. - **statusCodeName** (string) (required): The HTTP response status code name. - **resolvedAddress** (string,null) (required): The resolved IP address of the `target`. - **timings** (object) (required): Details about the HTTP request times. All times are in milliseconds. - **total** (integer,null) (required): The total HTTP request time. - **dns** (integer,null) (required): The time required to perform the DNS lookup. - **tcp** (integer,null) (required): The time from performing the DNS lookup to establishing the TCP connection. - **tls** (integer,null) (required): The time from establishing the TCP connection to establishing the TLS session. - **firstByte** (integer,null) (required): The time from establishing the TCP/TLS connection to the first response byte. - **download** (integer,null) (required): The time from the first response byte to downloading the entire response. - **tls** (object) (required) - **protocol** (string) (required): The negotiated SSL/TLS protocol version. - **cipherName** (string) (required): The OpenSSL name of the cipher suite. - **authorized** (boolean) (required): Indicates whether a trusted authority signed the certificate. - **error** (string): The reason for rejecting the certificate if `authorized` is `false`. - **createdAt** (string (date-time)) (required): The creation date and time of the certificate. - **expiresAt** (string (date-time)) (required): The expiration date and time of the certificate. - **subject** (object) (required): Information about the certificate subject. - **CN** (string): The subject's common name. - **alt** (string): The subject's alternative names. - **issuer** (object) (required): Information about the certificate issuer. - **C** (string): The issuer's country. - **O** (string): The issuer's organization. - **CN** (string): The issuer's common name. - **keyType** (string,null) (required): The type of the used key, or `null` for unrecognized types. ("RSA"|"EC"|"null") - **keyBits** (number,null) (required): The size of the used key, or `null` for unrecognized types. - **serialNumber** (string) (required): The certificate serial number as a : separated HEX string. - **fingerprint256** (string) (required): The SHA-256 digest of the DER-encoded certificate as a : separated HEX string. - **publicKey** (string,null) (required): The public key as a : separated HEX string, or `null` for unrecognized types. ``` -------------------------------- ### Schema: StatsJitterMin Source: https://api.globalping.io/v1/spec.yaml The lowest jitter value. ```markdown ## Schema: StatsJitterMin The lowest jitter value. **Type:** number ``` -------------------------------- ### Schema: FinishedTracerouteTestResult Source: https://api.globalping.io/v1/spec.yaml Represents a `finished` traceroute test. ```markdown ## Schema: FinishedTracerouteTestResult Represents a `finished` traceroute test. **Type:** object - **status** (string) (required): The current test status. Any value other than `in-progress` is final. - **rawOutput** (string) (required): The raw output of the test. Can be presented to users but is not meant to be parsed by clients. Please use the individual values provided in other fields for automated processing. - **resolvedAddress** (string,null) (required): The resolved IP address of the `target`. - **resolvedHostname** (string,null) (required): The resolved hostname of the `target`. - **hops** (array (object)) (required): An array containing details about each hop. Array items: - **resolvedAddress** (string,null) (required): The resolved IP address of the `target`. - **resolvedHostname** (string,null) (required): The resolved hostname of the `target`. - **timings** (array (object)) (required): An array containing details for each packet. All times are in milliseconds. Array items: - **rtt** (number) (required): The round-trip time for this packet. ``` -------------------------------- ### Schema: MeasurementOptions Source: https://api.globalping.io/v1/spec.yaml Additional optional fields depending on the measurement `type`. ```markdown ## Schema: MeasurementOptions Additional optional fields depending on the measurement `type`. **Type:** object - **packets** (integer): The number of packets to send. - **protocol** (string (ICMP|TCP)): The transport protocol to use. ("ICMP"|"TCP") - **port** (integer): The destination port for the packets. Applies only for the `TCP` protocol. - **ipVersion** (integer): EXPERIMENTAL: The IP version to use. Only allowed if the target is a hostname. ("4"|"6") ``` -------------------------------- ### Schema: RateLimitDetails Source: https://api.globalping.io/v1/spec.yaml Schema definition for RateLimitDetails ```markdown ## Schema: RateLimitDetails Schema definition for RateLimitDetails **Type:** object - **type** (string (ip|user)) (required): Type of the rate limit. ("ip"|"user") - **limit** (integer) (required): The number of rate limit points available in a given time window. - **remaining** (integer) (required): The number of rate limit points remaining in the current time window. - **reset** (integer) (required): The number of seconds until the limit resets. ``` -------------------------------- ### Schema: TlsCertificateIssuer Source: https://api.globalping.io/v1/spec.yaml Information about the certificate issuer. ```markdown ## Schema: TlsCertificateIssuer Information about the certificate issuer. **Type:** object - **C** (string): The issuer's country. - **O** (string): The issuer's organization. - **CN** (string): The issuer's common name. ``` -------------------------------- ### Schema: TracerouteOptions Source: https://api.globalping.io/v1/spec.yaml Schema definition for MeasurementTracerouteOptions ```markdown ## Schema: TracerouteOptions Schema definition for MeasurementTracerouteOptions **Type:** object - **protocol** (string (ICMP|TCP|UDP)): The transport protocol to use. ("ICMP"|"TCP"|"UDP") - **port** (integer): The destination port for the packets. Applies only for the `TCP` protocol. - **ipVersion** (integer): EXPERIMENTAL: The IP version to use. Only allowed if the target is a hostname. ("4"|"6") ``` -------------------------------- ### Schema: TlsCertificateSubject Source: https://api.globalping.io/v1/spec.yaml Information about the certificate subject. ```markdown ## Schema: TlsCertificateSubject Information about the certificate subject. **Type:** object - **CN** (string): The subject's common name. - **alt** (string): The subject's alternative names. ``` -------------------------------- ### Schema: ProbeResolver Source: https://api.globalping.io/v1/spec.yaml Schema definition for ProbeResolver ```markdown ## Schema: ProbeResolver Schema definition for ProbeResolver **Type:** object ``` -------------------------------- ### Schema: ProbeResolvers Source: https://api.globalping.io/v1/spec.yaml An array of the default resolvers configured on the probe. ```markdown ## Schema: ProbeResolvers An array of the default resolvers configured on the probe. **Type:** array - Array of ProbeResolver ``` -------------------------------- ### Schema: Limits Source: https://api.globalping.io/v1/spec.yaml Schema definition for Limits ```markdown ## Schema: Limits Schema definition for Limits **Type:** object - **rateLimit** (object) (required): Object containing rate limits information. - **measurements** (object) (required): Measurements rate limits. - **create** (object) (required): Rate limit for creating measurements. - **type** (string (ip|user)) (required): Type of the rate limit. ("ip"|"user") - **limit** (integer) (required): The number of rate limit points available in a given time window. - **remaining** (integer) (required): The number of rate limit points remaining in the current time window. - **reset** (integer) (required): The number of seconds until the limit resets. - **credits** (object): Object containing credits information (only for authenticated requests). - **remaining** (integer): The number of user's remaining credits. ``` -------------------------------- ### Schema: TimingHttpFirstByteNullable Source: https://api.globalping.io/v1/spec.yaml Schema definition for TimingHttpFirstByteNullable ```markdown ## Schema: TimingHttpFirstByteNullable Schema definition for TimingHttpFirstByteNullable **Type:** object ``` -------------------------------- ### Schema: RateLimitType Source: https://api.globalping.io/v1/spec.yaml Type of the rate limit. ```markdown ## Schema: RateLimitType Type of the rate limit. **Type:** string ```