Instana Synthetic Settings API
The API endpoints of this group can be used to manage Synthetic Locations, Synthetic Tests and Synthetic Credentials. ## Synthetic Location Properties: - **id** Unique identifier of the location resource. - **label** Friendly name of the location. - **description** The description of the location. - **locationType** Indicates if the location is managed or private. - **playbackCapability** The playback capabilities provided by this location resource. The playbackCapability object has the following properties: - **syntheticType** Different types of synthetic tests that can be executed at this location. Possible values are HTTPAction, HTTPScript, BrowserScript, WebpageAction, WebpageScript, SSLCertificate, and DNS. The values are corresponding to the syntheticType parameter available in the createSyntheticTest endpoint. - **browserType** Different types of supported Web browsers when creating synthetic tests for BrowserScript, WebpageAction and WebpageScript. Right now, only Chrome and Firefox are supported. - **geoPoint** An object includes the longitude, latitude, country name, and city name properties of a location. - **popVersion** PoP's version - **customProperties** An object with name/value pairs to provide additional information of the Synthetic location. - **createdAt** The location created time, following RFC3339 standard. - **modifiedAt** The location modified time, following RFC3339 standard. - **observedAt** The timestamp when PoP requests a Synthetic test, following RFC3339 standard. ## Synthetic Test Properties: - **id** Unique identifier of the Synthetic test resource. - **label** Friendly name of the Synthetic test resource. - **description** The description of the Synthetic test. - **active** Indicates if the Synthetic test is started or not. The default is true. - **applicationId** Unique identifier of the Application Perspective. - **configuration** An object which has two properties: syntheticType and the corresponding configuration object: - **syntheticType** The type of the Synthetic test. Supported values are HTTPAction, HTTScript, BrowserScript, WebpageAction, WebpageScript, SSLCertificate, and DNS. The locations assigned to execute this Synthetic test must support this syntheticType, i.e. the location's playbackCapabilities property. - **markSyntheticCall** Flag used to control if HTTP calls will be marked as synthetic calls/endpoints in Instana backend, so they can be ignored when calculating service and application KPIs, users can also check "Hide Synthetic Calls" checkbox to hide/show them in UI. - **retries** An integer type from 0 to 2, 0 by default. It indicates how many attempts (max 2) will be allowed to get a successful connection (not necessarily a successful result). For API Simple, failures like socket hangups, gateway timeouts, and DNS lookup fails cause retires, but 404's 400's, do not. API Script and Browser Script test will retry if script failed for any reason. - **retryInterval** The time interval between retries in seconds. The default is 1s, max is 10s. - **timeout** The timeout to be used by the PoP playback engines running the test. Values are in integers followed by a time unit (ms, s, m). It is the minimum value of test configuration `timeout`, `testFrequency` and `maxTimeout` configured in PoP deployment. - If user defined timeout value exceeds the `maxTimeout` or `testFrequency` in test configuration, the timeout value does not take effect and PoP playback engines use the smaller one of `maxTimeout` and `testFrequency` as the actual timeout value. - If timeout value in test configuration is not provided, the default value is **1m** for HTTPAction and HTTPScript tests. BrowserScript, WebpageAction, and WebpageScript tests use the smaller one of `maxTimeout` and `testFrequency` as the actual timeout value. - **XXXConfiguration** The configuration corresponding to the syntheticType. Configuration types are HTTPActionConfiguration, HTTPScriptConfiguration, BrowserScriptConfiguration, WebpageActionConfiguration, WebpageScriptConfiguration, SSLCertificateConfiguration, and DNSConfiguration. - **HTTPActionConfiguration** has the following properties: - **url** The URL is being tested. It is required. - **syntheticType** Its value is HTTPAction. It is required. - **operation** An operation being used must be one of GET, HEAD, OPTIONS, PATCH, POST, PUT, and DELETE. By default, it is GET. - **headers** An object with header/value pairs - **header** The header to be sent in operation. It should not contain the terminating ':' character. - **value** The value of the header. - **body** The body content to send with the operation. - **validationString** An expression to be evaluated. - **followRedirect** A boolean type, true by default; to allow redirect. - **allowInsecure** A boolean type, true by default; if set to true then allow insecure certificates (expired, self-signed, etc). - **expectStatus** An integer type, by default, the Synthetic passes for any 2XX status code. This forces just one status code to cause a pass, including what would normally be a fail, for example, a 404. - **expectJson** An optional object to be used to check against the test response object. - **expectMatch** An optional regular expression string to be used to check the test response. - **expectExists** An optional list of property labels used to check if they are present in the test response object. - **expectNotEmpty** An optional list of property labels used to check if they are present in the test response object with a non-empty value. - **HTTPScriptConfiguration** has the following properties: - **script** The Javascript content, it is plain text, not base64 encoded. **script** and **scripts** are mutually exclusive. - **scripts** Multi script package. **script** and **scripts** are mutually exclusive. - **scriptFile** The name of the file to run - **bundle** All required js files bundled up into a single zip file with base64 encoded - **syntheticType** Its value is HTTPScript. It is required. - The API Script Guide, including examples, can be found at: https://www.ibm.com/docs/en/instana-observability/current?topic=monitoring-using-api-scripts - **BrowserScriptConfiguration** has the following properties: - **script** A Node.js based test script, it is plain text, not base64 encoded. **script** and **scripts** are mutually exclusive. - **scripts** Multi script package. **script** and **scripts** are mutually exclusive. - **scriptFile** The name of the file to run - **bundle** All required js files bundled up into a single zip file with base64 encoded - **scriptType** The type of the script, right now, only Basic type is supported. - **browser** The type of the browser: chrome or firefox, chrome by default. - **recordVideo** A boolean type, false by default. - **syntheticType** Its value is BrowserScript. It is required. - **WebpageActionConfiguration** has the following properties: - **url** The URL of the Web page being tested. It is required. - **browser** The type of the browser: chrome or firefox, chrome by default. - **recordVideo** A boolean type, false by default. - **syntheticType** Its value is WebpageAction. It is required. - **WebpageScriptConfiguration** has the following properties: - **script** A Selenium IDE recording script. It is required. - **browser** The type of the browser: chrome or firefox, chrome by default. - **recordVideo** A boolean type, false by default. - **syntheticType** Its value is WebpageScript. It is required. - **SSLCertificateConfiguration** has the following properties: - **hostname** The hostname of the SSL enabled website. - **port** The SSL port, set to 443 by default. - **daysRemainingCheck** The number of days to use on the validation check. The test will fail when the certificate validity has less than this number of days remaining until expiration. - **acceptSelfSignedCertificate** A boolean type, false by default, used to support self-signed certificates. - **DNSConfiguration** has the following properties: - **acceptCNAME** A boolean type, false by default. When enabled, the canonical name in the DNS response is accepted and no further lookups are performed. - **lookup** The name or IP address of the host whose record is being queried. - **lookupServerName** A boolean type, false by default, that enables recursive DNS lookups. - **port** The DNS server listening port, set to 53 by default. - **queryTime** An optional filter to be used to validate the test response time. Syntax: \\\, where: - **key** is the name of the property to be validated. Only **responseTime** is supported. - **operator** is one of EQUALS, GREATER_THAN, LESS_THAN. - **value** is a numeric value, in milliseconds, Default is 10000. - **queryType** The DNS query type used in the test. Value must be one of ALL, ALL_CONDITIONS, ANY, A, AAAA, CNAME, NS. Default value is A. - If **ALL** is defined, all available query types will be executed. - If **ALL_CONDITIONS** is defined, only the query types defined in **targetValues** will be executed. - **recursiveLookups** A boolean type, false by default, that enables recursive DNS lookups. - **server** The IP address of the DNS server. - **serverRetries** The number of times to try a timed-out DNS lookup before returning failure. Default is 1. - **targetValues** An optional list of filters to be used to validate the test response. Syntax: [\\\, ...], where: - **key** is the name of the property to be validated. - **operator** is one of CONTAINS, IS, MATCHES, NOT_MATCHES. - **value** is the expected property value. - **transport** The protocol used to do DNS check. Only UDP is supported. - **createdAt** The test created time, following RFC3339 standard. - **createdBy** The user identifier who created the test resource. - **customProperties** An object with name/value pairs to provide additional information of the Synthetic test. - **locations** It is an array of the PoP location IDs where the Synthetic tests are located. - **applications** It is an array of the unique identifiers of the Application Perspectives associated to this test. - **modifiedAt** The test last updated time, following RFC3339 standard. - **modifiedBy** The user identifier who updated the test resource. - **playbackMode** Defines how the Synthetic test should be executed across multiple PoPs. This property is optional, and its default value is Simultaneous, and only Simultaneous is supported, i.e., Synthetic tests run at all locations simultaneously. - **testFrequency** How often the playback for a Synthetic test is scheduled. The unit of the testFrequency parameter is minute. The default is every 15 minutes. The range is from 1 minute to 120 minutes. For SSLCertificate tests, the default is every 24 hours and the range is from 60 minute to 1440 minutes. ## Synthetic Credentials: Synthetic credentials can be used to store passwords and/or secrets used by the Synthetic Tests. All Script Tests can use credentials in their body and API Simple Tests can use them on header parameters. It is required that the credentials used in the test be created before the test is created or modified. Credentials can be associated to multiple Application Perspectives, Websites, and Mobile Apps. Tests using credentials are validated during test creation and update whether you use the API or UI, as follows: 1. The user Id of the logged in user or API Token being used to create or modify the test must have permission to use credentials. Requests to create or update a test referencing credentials without the correct permission will fail with return code `Forbidden`. 2. The credentials or secrets used in the test must exist. Requests to create or update a test referencing credentials that do not exist will fail with return code `Bad Request`. 3. Credentials associated to Application Perspectives, Websites, and Mobile Apps can only be used by tests that are associated to at least one common Application Perspective, Websites, and MobileApps. Requests to create or update a test referencing credentials without matching Application Perspectives, Websites, or Mobile Apps will fail with return code `Bad Request`.
Documentation
Specifications
Other Resources
openapi: 3.0.1
info:
contact:
email: support@instana.com
name: © Instana
url: http://instana.com
termsOfService: https://www.instana.com/terms-of-use/
title: Instana REST API documentation Synthetic Settings API
version: 1.307.1417
x-ibm-ahub-try: true
x-logo:
altText: instana logo
backgroundColor: '#FAFBFC'
url: header-logo.svg
description: "Searching for answers and best pratices? Check our [IBM Instana Community](https://community.ibm.com/community/user/aiops/communities/community-home?CommunityKey=58f324a3-3104-41be-9510-5b7c413cc48f).\n\n<div style=\"background-color:#e6f0ff; padding: 12px; border-left: 6px solid #0052cc; font-size: 14px; display: flex; align-items: center;\">\n <img src=\"https://img.icons8.com/ios-filled/50/0052cc/info.png\" width=\"18\" height=\"18\" style=\"margin-right: 8px;\" alt=\"info icon\"/>\n <span>\n <b>Our API documentation is moving to</b> \n <a href=\"https://developer.ibm.com/apis/catalog/instana--instana-rest-api/Introduction\" target=\"_blank\">API Hub</a>\n\t — please update your bookmarks now, as the current site will be deprecated after Release-306.\n </span>\n</div>\n\n## Overview\nThe Instana REST API provides programmatic access to the Instana platform. It can be used to retrieve data available through the Instana UI Dashboard -- metrics, events, traces, etc -- and also to automate configuration tasks such as user management.\n\n### Navigating the API documentation\nThe API endpoints are grouped by product area and functionality. This generally maps to how our UI Dashboard is organized, hopefully making it easier to locate which endpoints you'd use to fetch the data you see visualized in our UI. The [UI sections](https://www.ibm.com/docs/en/instana-observability/current?topic=working-user-interface#navigation-menu) include:\n- Websites & Mobile Apps\n- Applications\n- Infrastructure\n- Synthetic Monitoring\n- Events\n- Automation\n- Service Levels\n- Settings\n- etc\n\n### Rate Limiting\nA rate limit is applied to API usage. Up to 5,000 calls per hour can be made. How many remaining calls can be made and when this call limit resets, can inspected via three headers that are part of the responses of the API server.\n\n- **X-RateLimit-Limit:** Shows the maximum number of calls that may be executed per hour.\n- **X-RateLimit-Remaining:** How many calls may still be executed within the current hour.\n- **X-RateLimit-Reset:** Time when the remaining calls will be reset to the limit. For compatibility reasons with other rate limited APIs, this date is not the date in milliseconds, but instead in seconds since 1970-01-01T00:00:00+00:00.\n\n### Further Reading\nWe provide additional documentation for our REST API in our [product documentation](https://www.ibm.com/docs/en/instana-observability/current?topic=apis-web-rest-api). Here you'll also find some common queries for retrieving data and configuring Instana.\n\n## Getting Started with the REST API\n\n### API base URL\nThe base URL for an specific instance of Instana can be determined using the tenant and unit information.\n- `base`: This is the base URL of a tenant unit, e.g. `https://test-example.instana.io`. This is the same URL that is used to access the Instana user interface.\n- `apiToken`: Requests against the Instana API require valid API tokens. An initial API token can be generated via the Instana user interface. Any additional API tokens can be generated via the API itself.\n\n### Curl Example\nHere is an Example to use the REST API with Curl. First lets get all the available metrics with possible aggregations with a GET call.\n\n```bash\ncurl --request GET \\\n --url https://test-instana.instana.io/api/application-monitoring/catalog/metrics \\\n --header 'authorization: apiToken xxxxxxxxxxxxxxxx'\n```\n\nNext we can get every call grouped by the endpoint name that has an error count greater then zero. As a metric we could get the mean error rate for example.\n\n```bash\ncurl --request POST \\\n --url https://test-instana.instana.io/api/application-monitoring/analyze/call-groups \\\n --header 'authorization: apiToken xxxxxxxxxxxxxxxx' \\\n --header 'content-type: application/json' \\\n --data '{\n \"group\":{\n \"groupbyTag\":\"endpoint.name\"\n },\n \"tagFilters\":[\n \t{\n \t\t\"name\":\"call.error.count\",\n \t\t\"value\":\"0\",\n \t\t\"operator\":\"GREATER_THAN\"\n \t}\n ],\n \"metrics\":[\n \t{\n \t\t\"metric\":\"errors\",\n \t\t\"aggregation\":\"MEAN\"\n \t}\n ]\n }'\n```\n\n### Generating REST API clients\n\nThe API is specified using the [OpenAPI v3](https://github.com/OAI/OpenAPI-Specification) (previously known as Swagger) format.\nYou can download the current specification at our [GitHub API documentation](https://instana.github.io/openapi/openapi.yaml).\n\nOpenAPI tries to solve the issue of ever-evolving APIs and clients lagging behind. Please make sure that you always use the latest version of the generator, as a number of improvements are regularly made.\nTo generate a client library for your language, you can use the [OpenAPI client generators](https://github.com/OpenAPITools/openapi-generator).\n\n#### Go\nFor example, to generate a client library for Go to interact with our backend, you can use the following script; mind replacing the values of the `UNIT_NAME` and `TENANT_NAME` environment variables using those for your tenant unit:\n\n```bash\n#!/bin/bash\n\n### This script assumes you have the `java` and `wget` commands on the path\n\nexport UNIT_NAME='myunit' # for example: prod\nexport TENANT_NAME='mytenant' # for example: awesomecompany\n\n//Download the generator to your current working directory:\nwget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/4.3.1/openapi-generator-cli-4.3.1.jar -O openapi-generator-cli.jar --server-variables \"tenant=${TENANT_NAME},unit=${UNIT_NAME}\"\n\n//generate a client library that you can vendor into your repository\njava -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g go \\\n -o pkg/instana/openapi \\\n --skip-validate-spec\n\n//(optional) format the Go code according to the Go code standard\ngofmt -s -w pkg/instana/openapi\n```\n\nThe generated clients contain comprehensive READMEs, and you can start right away using the client from the example above:\n\n```go\nimport instana \"./pkg/instana/openapi\"\n\n// readTags will read all available application monitoring tags along with their type and category\nfunc readTags() {\n\tconfiguration := instana.NewConfiguration()\n\tconfiguration.Host = \"tenant-unit.instana.io\"\n\tconfiguration.BasePath = \"https://tenant-unit.instana.io\"\n\n\tclient := instana.NewAPIClient(configuration)\n\tauth := context.WithValue(context.Background(), instana.ContextAPIKey, instana.APIKey{\n\t\tKey: apiKey,\n\t\tPrefix: \"apiToken\",\n\t})\n\n\ttags, _, err := client.ApplicationCatalogApi.GetApplicationTagCatalog(auth)\n\tif err != nil {\n\t\tfmt.Fatalf(\"Error calling the API, aborting.\")\n\t}\n\n\tfor _, tag := range tags {\n\t\tfmt.Printf(\"%s (%s): %s\\n\", tag.Category, tag.Type, tag.Name)\n\t}\n}\n```\n\n#### Java\nFollow the instructions provided in the official documentation from [OpenAPI Tools](https://github.com/OpenAPITools) to download the [openapi-generator-cli.jar](https://github.com/OpenAPITools/openapi-generator?tab=readme-ov-file#13---download-jar).\n\nDepending on your environment, use one of the following java http client implementations which will create a valid client for our OpenAPI specification:\n```\n//Nativ Java HTTP Client\njava -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8 --library native\n\n//Spring WebClient\njava -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library webclient\n\n//Spring RestTemplate\njava -jar openapi-generator-cli.jar generate -i https://instana.github.io/openapi/openapi.yaml -g java -o pkg/instana/openapi --skip-validate-spec -p dateLibrary=java8,hideGenerationTimestamp=true --library resttemplate\n\n```\n"
servers:
- description: Instana Backend
url: https://{unit}-{tenant}.instana.io
variables:
tenant:
default: tenant
description: Customer tenant unit
unit:
default: unit
description: Customer tenant name
- description: Instana Self-Hosted Backend
url: https://{domain}
variables:
domain:
default: example.com
description: Customer Self-Hosted domain
tags:
- name: Synthetic Settings
description: "The API endpoints of this group can be used to manage Synthetic Locations, Synthetic Tests and Synthetic Credentials. \n\n## Synthetic Location Properties:\n- **id** Unique identifier of the location resource.\n- **label** Friendly name of the location.\n- **description** The description of the location.\n- **locationType** Indicates if the location is managed or private.\n- **playbackCapability** The playback capabilities provided by this location resource.\n The playbackCapability object has the following properties: \n - **syntheticType** Different types of synthetic tests that can be executed at this location. \n Possible values are HTTPAction, HTTPScript, BrowserScript, WebpageAction, WebpageScript, SSLCertificate, and DNS. \n The values are corresponding to the syntheticType parameter available in the createSyntheticTest endpoint.\n - **browserType** Different types of supported Web browsers when creating synthetic tests for BrowserScript, WebpageAction and WebpageScript.\n Right now, only Chrome and Firefox are supported. \n- **geoPoint** An object includes the longitude, latitude, country name, and city name properties of a location. \n- **popVersion** PoP's version\n- **customProperties** An object with name/value pairs to provide additional information of the Synthetic location.\n- **createdAt** The location created time, following RFC3339 standard.\n- **modifiedAt** The location modified time, following RFC3339 standard.\n- **observedAt** The timestamp when PoP requests a Synthetic test, following RFC3339 standard.\n\n## Synthetic Test Properties:\n- **id** Unique identifier of the Synthetic test resource.\n- **label** Friendly name of the Synthetic test resource.\n- **description** The description of the Synthetic test.\n- **active** Indicates if the Synthetic test is started or not. The default is true.\n- **applicationId** Unique identifier of the Application Perspective.\n- **configuration** An object which has two properties: syntheticType and the corresponding configuration object:\n - **syntheticType** The type of the Synthetic test. Supported values are HTTPAction, HTTScript, BrowserScript, WebpageAction,\n WebpageScript, SSLCertificate, and DNS. The locations assigned to execute this Synthetic\n test must support this syntheticType, i.e. the location's playbackCapabilities property.\n - **markSyntheticCall** Flag used to control if HTTP calls will be marked as synthetic calls/endpoints in Instana backend, so they can be ignored when calculating service and application KPIs, users can also check \"Hide Synthetic Calls\" checkbox to hide/show them in UI.\n - **retries** An integer type from 0 to 2, 0 by default.\n It indicates how many attempts (max 2) will be allowed\n to get a successful connection (not necessarily a successful result).\n For API Simple, failures like socket hangups, gateway timeouts, and DNS lookup fails cause retires, but 404's 400's, do not.\n API Script and Browser Script test will retry if script failed for any reason.\n - **retryInterval** The time interval between retries in seconds. The default is 1s, max is 10s.\n - **timeout** The timeout to be used by the PoP playback engines running the test. Values are in integers followed by a time unit (ms, s, m). \n It is the minimum value of test configuration `timeout`, `testFrequency` and `maxTimeout` configured in PoP deployment.\n - If user defined timeout value exceeds the `maxTimeout` or `testFrequency` in test configuration, the timeout value does not take effect \n and PoP playback engines use the smaller one of `maxTimeout` and `testFrequency` as the actual timeout value.\n - If timeout value in test configuration is not provided, the default value is **1m** for HTTPAction and HTTPScript tests. \n BrowserScript, WebpageAction, and WebpageScript tests use the smaller one of `maxTimeout` and `testFrequency` as the actual timeout value.\n - **XXXConfiguration** The configuration corresponding to the syntheticType. Configuration types are HTTPActionConfiguration, HTTPScriptConfiguration,\n BrowserScriptConfiguration, WebpageActionConfiguration, WebpageScriptConfiguration, SSLCertificateConfiguration, and DNSConfiguration. \n - **HTTPActionConfiguration** has the following properties:\n - **url** The URL is being tested. It is required.\n - **syntheticType** Its value is HTTPAction. It is required.\n - **operation** An operation being used must be one of GET, HEAD, OPTIONS, PATCH, POST, PUT, and DELETE. By default, it is GET.\n - **headers** An object with header/value pairs\n - **header** The header to be sent in operation. It should not contain the terminating ':' character.\n - **value** The value of the header.\n - **body** The body content to send with the operation.\n - **validationString** An expression to be evaluated.\n - **followRedirect** A boolean type, true by default; to allow redirect.\n - **allowInsecure** A boolean type, true by default; if set to true then allow insecure certificates\n (expired, self-signed, etc).\n - **expectStatus** An integer type, by default, the Synthetic passes for any 2XX status code.\n This forces just one status code to cause a pass, including what would normally be a fail, for example, a 404.\n - **expectJson** An optional object to be used to check against the test response object.\n - **expectMatch** An optional regular expression string to be used to check the test response.\n - **expectExists** An optional list of property labels used to check if they are present in the test response object.\n - **expectNotEmpty** An optional list of property labels used to check if they are present in the test response object with a non-empty value.\n - **HTTPScriptConfiguration** has the following properties:\n - **script** The Javascript content, it is plain text, not base64 encoded. **script** and **scripts** are mutually exclusive.\n - **scripts** Multi script package. **script** and **scripts** are mutually exclusive.\n - **scriptFile** The name of the file to run\n - **bundle** All required js files bundled up into a single zip file with base64 encoded\n - **syntheticType** Its value is HTTPScript. It is required.\n - The API Script Guide, including examples, can be found at: https://www.ibm.com/docs/en/instana-observability/current?topic=monitoring-using-api-scripts\n - **BrowserScriptConfiguration** has the following properties:\n - **script** A Node.js based test script, it is plain text, not base64 encoded. **script** and **scripts** are mutually exclusive.\n - **scripts** Multi script package. **script** and **scripts** are mutually exclusive.\n - **scriptFile** The name of the file to run\n - **bundle** All required js files bundled up into a single zip file with base64 encoded\n - **scriptType** The type of the script, right now, only Basic type is supported. \n - **browser** The type of the browser: chrome or firefox, chrome by default.\n - **recordVideo** A boolean type, false by default.\n - **syntheticType** Its value is BrowserScript. It is required.\n - **WebpageActionConfiguration** has the following properties:\n - **url** The URL of the Web page being tested. It is required.\n - **browser** The type of the browser: chrome or firefox, chrome by default.\n - **recordVideo** A boolean type, false by default.\n - **syntheticType** Its value is WebpageAction. It is required.\n - **WebpageScriptConfiguration** has the following properties:\n - **script** A Selenium IDE recording script. It is required.\n - **browser** The type of the browser: chrome or firefox, chrome by default.\n - **recordVideo** A boolean type, false by default.\n - **syntheticType** Its value is WebpageScript. It is required.\n - **SSLCertificateConfiguration** has the following properties:\n - **hostname** The hostname of the SSL enabled website.\n - **port** The SSL port, set to 443 by default.\n - **daysRemainingCheck** The number of days to use on the validation check. The test will fail when the certificate validity has less than this number of days remaining until expiration.\n - **acceptSelfSignedCertificate** A boolean type, false by default, used to support self-signed certificates. \n - **DNSConfiguration** has the following properties:\n - **acceptCNAME** A boolean type, false by default. When enabled, the canonical name in the DNS response is accepted and no further lookups are performed.\n - **lookup** The name or IP address of the host whose record is being queried.\n - **lookupServerName** A boolean type, false by default, that enables recursive DNS lookups.\n - **port** The DNS server listening port, set to 53 by default.\n - **queryTime** An optional filter to be used to validate the test response time. \n Syntax: \\<key\\>\\<operator\\>\\<value\\>, where:\n - **key** is the name of the property to be validated. Only **responseTime** is supported.\n - **operator** is one of EQUALS, GREATER_THAN, LESS_THAN.\n - **value** is a numeric value, in milliseconds, Default is 10000.\n - **queryType** The DNS query type used in the test. Value must be one of ALL, ALL_CONDITIONS, ANY, A, AAAA, CNAME, NS. Default value is A.\n - If **ALL** is defined, all available query types will be executed.\n - If **ALL_CONDITIONS** is defined, only the query types defined in **targetValues** will be executed.\n - **recursiveLookups** A boolean type, false by default, that enables recursive DNS lookups.\n - **server** The IP address of the DNS server.\n - **serverRetries** The number of times to try a timed-out DNS lookup before returning failure. Default is 1. \n - **targetValues** An optional list of filters to be used to validate the test response.\n Syntax: [\\<key\\>\\<operator\\>\\<value\\>, ...], where:\n - **key** is the name of the property to be validated.\n - **operator** is one of CONTAINS, IS, MATCHES, NOT_MATCHES.\n - **value** is the expected property value.\n - **transport** The protocol used to do DNS check. Only UDP is supported.\n- **createdAt** The test created time, following RFC3339 standard.\n- **createdBy** The user identifier who created the test resource.\n- **customProperties** An object with name/value pairs to provide additional information of the Synthetic test.\n- **locations** It is an array of the PoP location IDs where the Synthetic tests are located.\n- **applications** It is an array of the unique identifiers of the Application Perspectives associated to this test.\n- **modifiedAt** The test last updated time, following RFC3339 standard.\n- **modifiedBy** The user identifier who updated the test resource.\n- **playbackMode** Defines how the Synthetic test should be executed across multiple\n PoPs. This property is optional, and its default value is Simultaneous, and only Simultaneous is supported, i.e.,\n Synthetic tests run at all locations simultaneously. \n- **testFrequency** How often the playback for a Synthetic test is scheduled. The unit of the testFrequency parameter is minute.\n The default is every 15 minutes. The range is from 1 minute to 120 minutes. \n For SSLCertificate tests, the default is every 24 hours and the range is from 60 minute to 1440 minutes.\n\n## Synthetic Credentials:\n\nSynthetic credentials can be used to store passwords and/or secrets used by the Synthetic Tests.\n\nAll Script Tests can use credentials in their body and API Simple Tests can use them on header parameters.\n\nIt is required that the credentials used in the test be created before the test is created or modified.\n\nCredentials can be associated to multiple Application Perspectives, Websites, and Mobile Apps.\n\nTests using credentials are validated during test creation and update whether you use the API or UI, as follows:\n\n1. The user Id of the logged in user or API Token being used to create or modify the test must have permission to use credentials. \n Requests to create or update a test referencing credentials without the correct permission will fail with return code `Forbidden`.\n\n2. The credentials or secrets used in the test must exist. \n Requests to create or update a test referencing credentials that do not exist will fail with return code `Bad Request`.\n\n3. Credentials associated to Application Perspectives, Websites, and Mobile Apps can only be used by tests that are associated to at least one common Application Perspective, Websites, and MobileApps.\n Requests to create or update a test referencing credentials without matching Application Perspectives, Websites, or Mobile Apps will fail with return code `Bad Request`."
paths:
/api/synthetics/settings/credentials:
get:
description: 'API request to retrieve the names of all Synthetic Credentials.
For more information on Synthetic Settings please access the https://developer.ibm.com/apis/catalog/instana--instana-rest-api/Synthetic+Monitoring#synthetic-settings.'
operationId: getSyntheticCredentialNames
responses:
'200':
content:
application/json:
example:
- kittyhawk_test2
- user1_password
- user1_name
- MyBearer
- MY_CREDS333
- Test_Creds
- credName5
- credName4
- credName3
- credName2
- credName1
- MY_CREDS1
- MY_PASS
- USER_NAME_TEST
schema:
type: array
items:
type: string
description: OK
'401':
description: Unauthorized access - requires user authentication.
'403':
description: Insufficient permissions.
'404':
description: Resource not found.
'500':
description: Internal server error.
security:
- ApiKeyAuth:
- canUseSyntheticCredentials
- canConfigureSyntheticTests
summary: All Synthetic credential names
tags:
- Synthetic Settings
x-ibm-ahub-byok: true
post:
description: 'API request to create a Synthetic Credential.
For more information on Synthetic Settings please access the https://developer.ibm.com/apis/catalog/instana--instana-rest-api/Synthetic+Monitoring#synthetic-settings.'
operationId: createSyntheticCredential
requestBody:
content:
application/json:
example:
credentialName: userPassword
credentialValue: '123456'
rbacTags:
- id: test
displayName: test
schema:
$ref: '#/components/schemas/SyntheticCredential'
required: true
responses:
'200':
content:
application/json: {}
description: OK
'401':
description: Unauthorized access - requires user authentication.
'403':
description: Insufficient permissions.
'500':
description: Internal server error.
security:
- ApiKeyAuth:
- canConfigureSyntheticCredentials
summary: Create a Synthetic credential
tags:
- Synthetic Settings
x-ibm-ahub-byok: true
/api/synthetics/settings/credentials/associations:
get:
description: 'API request to retrieve all Synthetic Credentials.
For more information on Synthetic Settings please access the https://developer.ibm.com/apis/catalog/instana--instana-rest-api/Synthetic+Monitoring#synthetic-settings.'
operationId: getSyntheticCredentialAssociations
responses:
'200':
content:
application/json:
example:
- credentialName: password1
createdAt: 1717617206785
modifiedAt: 1717617206785
- credentialName: password2
applications:
- f4KX5zd8RW2pERKKFUCZgQ
applicationLabels:
- All Services
createdAt: 1717620972843
modifiedAt: 1717620972843
schema:
type: array
items:
$ref: '#/components/schemas/SyntheticCredential'
description: OK
'401':
description: Unauthorized access - requires user authentication.
'403':
description: Insufficient permissions.
'404':
description: Resource not found.
'500':
description: Internal server error.
security:
- ApiKeyAuth:
- canUseSyntheticCredentials
- canConfigureSyntheticTests
summary: All Synthetic credentials
tags:
- Synthetic Settings
x-ibm-ahub-byok: true
/api/synthetics/settings/credentials/associations/{name}:
get:
description: 'API request to retrieve a Synthetic Credential with matching name.
For more information on Synthetic Settings please access the https://developer.ibm.com/apis/catalog/instana--instana-rest-api/Synthetic+Monitoring#synthetic-settings.'
operationId: getOneSyntheticCredentialAssociations
parameters:
- description: Name of the credential to be retrieved
example: password4test
in: path
name: name
required: true
schema:
type: string
responses:
'200':
content:
application/json:
example:
credentialName: password4test
applications:
- f4KX5zd8RW2pERKKFUCZgQ
applicationLabels:
- All Services
createdAt: 1717620972843
modifiedAt: 1717620972843
schema:
$ref: '#/components/schemas/SyntheticCredential'
description: OK
'401':
description: Unauthorized access - requires user authentication.
'403':
description: Insufficient permissions.
'404':
description: Resource not found.
'500':
description: Internal server error.
security:
- ApiKeyAuth:
- canUseSyntheticCredentials
- canConfigureSyntheticTests
summary: A Synthetic credential
tags:
- Synthetic Settings
x-ibm-ahub-byok: true
/api/synthetics/settings/credentials/{name}:
delete:
description: 'API request to delete a Synthetic Credential.
For more information on Synthetic Settings please access the https://developer.ibm.com/apis/catalog/instana--instana-rest-api/Synthetic+Monitoring#synthetic-settings.'
operationId: deleteSyntheticCredential
parameters:
- description: Name of the credential to be deleted
example: password4test
in: path
name: name
required: true
schema:
type: string
responses:
'204':
description: Successful - no content to return.
'401':
description: Unauthorized access - requires user authentication.
'403':
description: Insufficient permissions.
'500':
description: Internal server error.
security:
- ApiKeyAuth:
- canConfigureSyntheticCredentials
summary: Delete a Synthetic credential
tags:
- Synthetic Settings
x-ibm-ahub-byok: true
patch:
operationId: patchSyntheticCredential
parameters:
- description: Name of the credential to be patched
example: password4test
in: path
name: name
required: true
schema:
type: string
requestBody:
content:
application/json:
example:
credentialValue: password4test
applications:
- f4KX5zd8RW2pERKKFUCZgQ
rbacTags:
- id: test
displayName: test
schema:
$ref: '#/components/schemas/SyntheticCredential'
required: true
responses:
'200':
content:
application/json: {}
description: OK
'401':
description: Unauthorized access - requires user authentication.
'403':
description: Insufficient permissions.
'500':
description: Internal server error.
security:
- ApiKeyAuth:
- canUseSyntheticCredentials
- canConfigureSyntheticTests
summary: Patch a Synthetic credential
tags:
- Synthetic Settings
x-ibm-ahub-byok: true
put:
description: 'API request to update a Synthetic Credential.
For more information on Synthetic Settings please access the https://developer.ibm.com/apis/catalog/instana--instana-rest-api/Synthetic+Monitoring#synthetic-settings.'
operationId: updateSyntheticCredential
parameters:
- description: Name of the credential to be updated
example: password4db2
in: path
name: name
required: true
schema:
type: string
requestBody:
content:
application/json:
example:
credentialName: password4db2
credentialValue: '123456'
applications:
- f4KX5zd8RW2pERKKFUCZgQ
rbacTags:
- id: test
displayName: test
schema:
$ref: '#/components/schemas/SyntheticCredential'
required: true
responses:
'201':
content:
application/json: {}
description: Successful - resource created
'401':
description: Unauthorized access - requires user authentication.
'403':
description: Insufficient permissions.
'500':
description: Internal server error.
security:
- ApiKeyAuth:
- canConfigureSyntheticCredentials
summary: Update a Synthetic credential
tags:
- Synthetic Settings
x-ibm-ahub-byok: true
/api/synthetics/settings/datacenters:
get:
description: 'API request to retrieve all Synthetic Datacenters.
For more information on Synthetic Settings please access the https://developer.ibm.com/apis/catalog/instana--instana-rest-api/Synthetic+Monitoring#synthetic-settings.'
operationId: getSyntheticDatacenters
responses:
'200':
content:
application/json:
example:
- code: us-east-1
label: us-east-1(NVirginia)
provider: aws
countryName: USA
cityName: NVirginia
latitude: 37.22
longitude: -81.44
status: Active
modifiedAt: 1728096600396
configuration:
ipAddresses:
- 34.226.13.189
locationLabel: instana-test-aws-us-east-1-NVirginia
datacenterId: aws-us-east-1-NVirginia
- code: eu-central-1
label: eu-central-1(Frankfurt)
provider: aws
countryName: DEU
cityName: Frankfurt
latitude: 50.11
longitude: 8.68
# --- truncated at 32 KB (91 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/instana/refs/heads/main/openapi/instana-synthetic-settings-api-openapi.yml