RapidAPI Testing API

RapidAPI Testing provides a comprehensive API testing and monitoring solution that supports REST, SOAP, and GraphQL APIs. It offers an interface for creating and running functional tests, performance tests, and automated monitoring checks, integrating with CI/CD pipelines and scheduling tests across multiple regions to monitor API health and detect regressions.

OpenAPI Specification

rapidapi-testing-api-openapi.yml Raw ↑
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