openapi: 3.1.0
info:
title: RapidAPI Testing API
description: >-
RapidAPI Testing provides a comprehensive API testing and monitoring
solution that supports REST, SOAP, and GraphQL APIs. It offers an
intuitive interface for creating and running functional tests, performance
tests, and automated monitoring checks. The testing platform integrates
with CI/CD pipelines, enabling teams to verify API behavior as part of
their development workflow. Tests can be scheduled to run periodically
across 9 AWS regions to monitor API health and detect regressions.
version: '1.0'
contact:
name: RapidAPI Support
url: https://docs.rapidapi.com
termsOfService: https://rapidapi.com/terms
externalDocs:
description: RapidAPI Testing Documentation
url: https://docs.rapidapi.com/docs/testing-getting-started
servers:
- url: https://testing.rapidapi.com/v1
description: Production Server
tags:
- name: Alerts
description: >-
Endpoints for configuring alert notifications when tests fail, including
integrations with PagerDuty, Slack, and Twilio.
- name: Environments
description: >-
Endpoints for managing test environments with variable sets that can be
used across tests for different deployment stages.
- name: Executions
description: >-
Endpoints for viewing test execution results, including pass/fail
statuses, response times, and detailed assertion outcomes.
- name: Locations
description: >-
Endpoints for listing available monitoring locations across global AWS
regions where tests can be executed.
- name: Schedules
description: >-
Endpoints for managing test schedules, including frequency, environment,
and location settings for automated monitoring.
- name: Tests
description: >-
Endpoints for creating, reading, updating, deleting, and executing API
tests, including functional and performance test flows.
security:
- rapidApiKey: []
paths:
/tests:
get:
operationId: listTests
summary: List all tests
description: >-
Retrieves a list of all API tests in the account, including test names,
types, statuses, and associated APIs.
tags:
- Tests
parameters:
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/limit'
- name: apiId
in: query
required: false
description: Filter tests by associated API identifier
schema:
type: string
responses:
'200':
description: A list of tests
content:
application/json:
schema:
type: object
properties:
tests:
type: array
items:
$ref: '#/components/schemas/Test'
totalCount:
type: integer
description: Total number of tests
'401':
description: Unauthorized - invalid or missing API key
post:
operationId: createTest
summary: Create a test
description: >-
Creates a new API test with defined steps, assertions, and
configuration. Tests can call multiple API endpoints and chain data
between them to mimic real application behavior.
tags:
- Tests
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TestCreateInput'
responses:
'201':
description: Test created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Test'
'400':
description: Bad request - invalid test configuration
'401':
description: Unauthorized - invalid or missing API key
/tests/{testId}:
get:
operationId: getTest
summary: Get a test
description: >-
Retrieves the full details of a specific test, including all steps,
assertions, and configuration settings.
tags:
- Tests
parameters:
- $ref: '#/components/parameters/testId'
responses:
'200':
description: Test details
content:
application/json:
schema:
$ref: '#/components/schemas/Test'
'401':
description: Unauthorized - invalid or missing API key
'404':
description: Test not found
put:
operationId: updateTest
summary: Update a test
description: >-
Updates the configuration, steps, and assertions of an existing API
test.
tags:
- Tests
parameters:
- $ref: '#/components/parameters/testId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TestUpdateInput'
responses:
'200':
description: Test updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Test'
'400':
description: Bad request - invalid test configuration
'401':
description: Unauthorized - invalid or missing API key
'404':
description: Test not found
delete:
operationId: deleteTest
summary: Delete a test
description: >-
Deletes an API test and all associated execution history and schedules.
tags:
- Tests
parameters:
- $ref: '#/components/parameters/testId'
responses:
'204':
description: Test deleted successfully
'401':
description: Unauthorized - invalid or missing API key
'404':
description: Test not found
/tests/{testId}/run:
post:
operationId: runTest
summary: Run a test
description: >-
Triggers an immediate execution of a specific test. The test runs
against the configured environment and location, and results are
available through the executions endpoint.
tags:
- Tests
parameters:
- $ref: '#/components/parameters/testId'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
environmentId:
type: string
description: Override the default environment for this run
locationId:
type: string
description: Override the default location for this run
responses:
'202':
description: Test execution started
content:
application/json:
schema:
$ref: '#/components/schemas/Execution'
'401':
description: Unauthorized - invalid or missing API key
'404':
description: Test not found
/schedules:
get:
operationId: listSchedules
summary: List all schedules
description: >-
Retrieves all configured test schedules, including their frequency,
associated test, environment, and monitoring locations.
tags:
- Schedules
responses:
'200':
description: A list of schedules
content:
application/json:
schema:
type: object
properties:
schedules:
type: array
items:
$ref: '#/components/schemas/Schedule'
'401':
description: Unauthorized - invalid or missing API key
post:
operationId: createSchedule
summary: Create a schedule
description: >-
Creates a new test schedule that runs a test at a specified frequency
from one or more monitoring locations. Frequency options include
intervals ranging from every 5 minutes to every 24 hours.
tags:
- Schedules
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ScheduleInput'
responses:
'201':
description: Schedule created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Schedule'
'400':
description: Bad request - invalid schedule configuration
'401':
description: Unauthorized - invalid or missing API key
/schedules/{scheduleId}:
put:
operationId: updateSchedule
summary: Update a schedule
description: >-
Updates the frequency, environment, or location settings of an
existing test schedule.
tags:
- Schedules
parameters:
- $ref: '#/components/parameters/scheduleId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ScheduleInput'
responses:
'200':
description: Schedule updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Schedule'
'400':
description: Bad request - invalid schedule configuration
'401':
description: Unauthorized - invalid or missing API key
'404':
description: Schedule not found
delete:
operationId: deleteSchedule
summary: Delete a schedule
description: >-
Deletes a test schedule. The associated test is not deleted.
tags:
- Schedules
parameters:
- $ref: '#/components/parameters/scheduleId'
responses:
'204':
description: Schedule deleted successfully
'401':
description: Unauthorized - invalid or missing API key
'404':
description: Schedule not found
/executions:
get:
operationId: listExecutions
summary: List test executions
description: >-
Retrieves a list of test execution results, optionally filtered by
test identifier, status, or date range.
tags:
- Executions
parameters:
- name: testId
in: query
required: false
description: Filter executions by test identifier
schema:
type: string
- name: status
in: query
required: false
description: Filter executions by result status
schema:
type: string
enum:
- passed
- failed
- running
- error
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: A list of test executions
content:
application/json:
schema:
type: object
properties:
executions:
type: array
items:
$ref: '#/components/schemas/Execution'
totalCount:
type: integer
description: Total number of executions
'401':
description: Unauthorized - invalid or missing API key
/executions/{executionId}:
get:
operationId: getExecution
summary: Get execution details
description: >-
Retrieves the detailed results of a specific test execution, including
per-step results, response times, assertion outcomes, and any errors.
tags:
- Executions
parameters:
- $ref: '#/components/parameters/executionId'
responses:
'200':
description: Execution details
content:
application/json:
schema:
$ref: '#/components/schemas/ExecutionDetail'
'401':
description: Unauthorized - invalid or missing API key
'404':
description: Execution not found
/environments:
get:
operationId: listEnvironments
summary: List environments
description: >-
Retrieves all test environments with their variable configurations.
Environments allow defining different variable sets for development,
staging, and production.
tags:
- Environments
responses:
'200':
description: A list of environments
content:
application/json:
schema:
type: object
properties:
environments:
type: array
items:
$ref: '#/components/schemas/Environment'
'401':
description: Unauthorized - invalid or missing API key
post:
operationId: createEnvironment
summary: Create an environment
description: >-
Creates a new test environment with a set of variables that can be
used across test configurations.
tags:
- Environments
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/EnvironmentInput'
responses:
'201':
description: Environment created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Environment'
'400':
description: Bad request - invalid environment configuration
'401':
description: Unauthorized - invalid or missing API key
/environments/{environmentId}:
put:
operationId: updateEnvironment
summary: Update an environment
description: >-
Updates an existing test environment's name and variable set.
tags:
- Environments
parameters:
- $ref: '#/components/parameters/environmentId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/EnvironmentInput'
responses:
'200':
description: Environment updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Environment'
'400':
description: Bad request - invalid environment configuration
'401':
description: Unauthorized - invalid or missing API key
'404':
description: Environment not found
delete:
operationId: deleteEnvironment
summary: Delete an environment
description: >-
Deletes a test environment. Tests using this environment will need to
be reconfigured.
tags:
- Environments
parameters:
- $ref: '#/components/parameters/environmentId'
responses:
'204':
description: Environment deleted successfully
'401':
description: Unauthorized - invalid or missing API key
'404':
description: Environment not found
/alerts:
get:
operationId: listAlerts
summary: List alert configurations
description: >-
Retrieves all configured alert notifications for test failures,
including integration settings for PagerDuty, Slack, and Twilio.
tags:
- Alerts
responses:
'200':
description: A list of alert configurations
content:
application/json:
schema:
type: object
properties:
alerts:
type: array
items:
$ref: '#/components/schemas/Alert'
'401':
description: Unauthorized - invalid or missing API key
post:
operationId: createAlert
summary: Create an alert
description: >-
Creates a new alert configuration that sends notifications when a
specified test fails. Supports integration with PagerDuty, Slack,
Twilio, and email.
tags:
- Alerts
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AlertInput'
responses:
'201':
description: Alert created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Alert'
'400':
description: Bad request - invalid alert configuration
'401':
description: Unauthorized - invalid or missing API key
/alerts/{alertId}:
delete:
operationId: deleteAlert
summary: Delete an alert
description: >-
Deletes an alert configuration. Notifications will no longer be sent
for the associated test failures.
tags:
- Alerts
parameters:
- $ref: '#/components/parameters/alertId'
responses:
'204':
description: Alert deleted successfully
'401':
description: Unauthorized - invalid or missing API key
'404':
description: Alert not found
/locations:
get:
operationId: listLocations
summary: List monitoring locations
description: >-
Retrieves the list of available global monitoring locations where
tests can be executed. Includes AWS regions and any custom locations.
tags:
- Locations
responses:
'200':
description: A list of available monitoring locations
content:
application/json:
schema:
type: object
properties:
locations:
type: array
items:
$ref: '#/components/schemas/Location'
'401':
description: Unauthorized - invalid or missing API key
components:
securitySchemes:
rapidApiKey:
type: apiKey
name: X-RapidAPI-Key
in: header
description: >-
RapidAPI key used for authenticating requests to the Testing API.
parameters:
testId:
name: testId
in: path
required: true
description: The unique identifier of the test
schema:
type: string
scheduleId:
name: scheduleId
in: path
required: true
description: The unique identifier of the schedule
schema:
type: string
executionId:
name: executionId
in: path
required: true
description: The unique identifier of the test execution
schema:
type: string
environmentId:
name: environmentId
in: path
required: true
description: The unique identifier of the environment
schema:
type: string
alertId:
name: alertId
in: path
required: true
description: The unique identifier of the alert
schema:
type: string
offset:
name: offset
in: query
required: false
description: The number of items to skip for pagination
schema:
type: integer
minimum: 0
default: 0
limit:
name: limit
in: query
required: false
description: The maximum number of items to return
schema:
type: integer
minimum: 1
maximum: 100
default: 25
schemas:
Test:
type: object
properties:
id:
type: string
description: Unique identifier for the test
name:
type: string
description: Display name of the test
description:
type: string
description: Description of what the test validates
apiId:
type: string
description: The API this test is associated with
type:
type: string
enum:
- functional
- performance
description: The type of test
steps:
type: array
items:
$ref: '#/components/schemas/TestStep'
description: Ordered list of test steps
status:
type: string
enum:
- active
- draft
- archived
description: Current status of the test
createdAt:
type: string
format: date-time
description: Timestamp when the test was created
updatedAt:
type: string
format: date-time
description: Timestamp when the test was last updated
TestCreateInput:
type: object
required:
- name
- steps
properties:
name:
type: string
description: Display name of the test
description:
type: string
description: Description of what the test validates
apiId:
type: string
description: The API to associate this test with
type:
type: string
enum:
- functional
- performance
description: The type of test
steps:
type: array
items:
$ref: '#/components/schemas/TestStepInput'
description: Ordered list of test steps
TestUpdateInput:
type: object
properties:
name:
type: string
description: Updated test name
description:
type: string
description: Updated test description
steps:
type: array
items:
$ref: '#/components/schemas/TestStepInput'
description: Updated list of test steps
TestStep:
type: object
properties:
id:
type: string
description: Unique identifier for the step
name:
type: string
description: Step name
method:
type: string
enum:
- GET
- POST
- PUT
- PATCH
- DELETE
description: HTTP method for the API call
url:
type: string
format: uri
description: The endpoint URL to call
headers:
type: object
additionalProperties:
type: string
description: HTTP headers to include in the request
body:
type: string
description: Request body content
assertions:
type: array
items:
$ref: '#/components/schemas/Assertion'
description: Assertions to validate the response
TestStepInput:
type: object
required:
- name
- method
- url
properties:
name:
type: string
description: Step name
method:
type: string
enum:
- GET
- POST
- PUT
- PATCH
- DELETE
description: HTTP method for the API call
url:
type: string
format: uri
description: The endpoint URL to call
headers:
type: object
additionalProperties:
type: string
description: HTTP headers to include
body:
type: string
description: Request body content
assertions:
type: array
items:
$ref: '#/components/schemas/AssertionInput'
description: Assertions to validate the response
Assertion:
type: object
properties:
id:
type: string
description: Unique identifier for the assertion
target:
type: string
description: >-
The response element to assert on, such as status_code,
response_time, or a JSONPath expression
comparison:
type: string
enum:
- equals
- not_equals
- contains
- not_contains
- greater_than
- less_than
- exists
- not_exists
description: The comparison operator
value:
type: string
description: The expected value to compare against
AssertionInput:
type: object
required:
- target
- comparison
properties:
target:
type: string
description: The response element to assert on
comparison:
type: string
enum:
- equals
- not_equals
- contains
- not_contains
- greater_than
- less_than
- exists
- not_exists
description: The comparison operator
value:
type: string
description: The expected value to compare against
Schedule:
type: object
properties:
id:
type: string
description: Unique identifier for the schedule
testId:
type: string
description: The test to run on this schedule
frequency:
type: string
enum:
- 5m
- 15m
- 30m
- 1h
- 6h
- 12h
- 24h
description: How often the test should run
environmentId:
type: string
description: The environment to use for scheduled runs
locationIds:
type: array
items:
type: string
description: Monitoring locations to run the test from
enabled:
type: boolean
description: Whether the schedule is currently active
createdAt:
type: string
format: date-time
description: Timestamp when the schedule was created
ScheduleInput:
type: object
required:
- testId
- frequency
- locationIds
properties:
testId:
type: string
description: The test to run on this schedule
frequency:
type: string
enum:
- 5m
- 15m
- 30m
- 1h
- 6h
- 12h
- 24h
description: How often the test should run
environmentId:
type: string
description: The environment to use for scheduled runs
locationIds:
type: array
items:
type: string
description: Monitoring locations to run the test from
enabled:
type: boolean
default: true
description: Whether the schedule should be active
Execution:
type: object
properties:
id:
type: string
description: Unique identifier for the execution
testId:
type: string
description: The test that was executed
status:
type: string
enum:
- passed
- failed
- running
- error
description: Overall execution result status
duration:
type: integer
description: Total execution time in milliseconds
location:
type: string
description: The monitoring location where the test ran
startedAt:
type: string
format: date-time
description: Timestamp when the execution started
completedAt:
type: string
format: date-time
description: Timestamp when the execution completed
ExecutionDetail:
type: object
properties:
id:
type: string
description: Unique identifier for the execution
testId:
type: string
description: The test that was executed
testName:
type: string
description: Name of the test
status:
type: string
enum:
- passed
- failed
- running
- error
description: Overall execution result status
duration:
type: integer
description: Total execution time in milliseconds
location:
type: string
description: The monitoring location where the test ran
steps:
type: array
items:
$ref: '#/components/schemas/StepResult'
description: Per-step execution results
startedAt:
type: string
format: date-time
description: Timestamp when the execution started
completedAt:
type: string
format: date-time
description: Timestamp when the execution completed
StepResult:
type: object
properties:
stepId:
type: string
description: The step that was executed
stepName:
type: string
description: Name of the step
status:
type: string
enum:
- passed
- failed
- error
- skipped
description: Step execution result
responseTime:
type: integer
description: Response time in milliseconds
statusCode:
type: integer
description: HTTP status code returned
assertions:
type: array
items:
type: object
properties:
target:
type: string
description: The assertion target
passed:
type: boolean
description: Whether the assertion passed
expected:
type: string
description: The expected value
actual:
type: string
description: The actual value received
description: Per-assertion results
Environment:
type: object
properties:
id:
type: string
description: Unique identifier for the environment
name:
type: string
description: Environment name
variables:
type: object
additionalProperties:
type: string
description: Key-value pairs of environment variables
createdAt:
type: string
format: date-time
description: Timestamp when the environment was created
EnvironmentInput:
type: object
required:
- name
properties:
name:
type: string
description: Environment name
variables:
type: object
additionalProperties:
type: string
description: Key-value pairs of environment variables
Alert:
type: object
properties:
id:
type: string
description: Unique identifier for the alert
testId:
type: string
description: The test to monitor for failures
channel:
type: string
enum:
- email
- slack
- pagerduty
- twilio
description: Notification channel
configuration:
type: object
additionalProperties: true
description: Channel-specific configuration such as webhook URLs or email addresses
enabled:
type: boolean
description: Whether the alert is currently active
createdAt:
type: string
format: date-time
description: Timestamp when the alert was created
AlertInput:
type: object
required:
- testId
- channel
- configuration
properties:
testId:
type: string
description: The test to monitor for failures
channel:
type: string
enum:
- email
- slack
- pagerduty
- twilio
description: Notification channel
configuration:
type: object
additionalProperties: true
description: Channel-specific configuration
enabled:
type: boolean
default: true
description: Whether the alert should be active
Location:
type: object
properties:
id:
type: string
description: Unique identifier for the location
name:
type: string
description: Location display name
region:
type: string
description: AWS region identifier
provider:
type: s
# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/rapidapi/refs/heads/main/openapi/rapidapi-testing-api-openapi.yml