Secureframe Test API

This document describes the API for reading, creating, and updating Tests.

Operations 4

GET /tests List Tests #
POST /tests Create a Test #
GET /tests/{id} Get a Test #
PUT /tests/{id} Update a Test #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/secureframe-test-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

secureframe-test-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Secureframe Test API
  description: '## Introduction


    Secureframe exposes a REST API for use by customers, partners, and community developers.'
  version: '2023-10-18'
  x-logo:
    url: https://media.secureframe.com/logo-dark.svg
servers:
- url: https://api.secureframe.com
- url: https://api-uk.secureframe.com
tags:
- name: Test
  description: This document describes the API for reading, creating, and updating Tests.
paths:
  /tests:
    get:
      tags:
      - Test
      operationId: companyTestsIndex
      parameters:
      - name: include
        description: Comma delimited string of relationships to include.
        required: false
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - enabled_field_updated_by
            - owner
            - promoted_by
        explode: false
        style: form
      - name: page
        description: 'Used for pagination of response data (default: page 1). Specifies the offset of the next block of data to receive.'
        required: false
        in: query
        schema:
          type: integer
      - name: per_page
        description: 'Used for pagination of response data (default: 100 items per response). Specifies the number of results for a given page.'
        required: false
        in: query
        schema:
          type: integer
      - name: q
        description: Search and filter the Test data using Lucene syntax.
        required: false
        in: query
        schema:
          type: string
      - name: relationships
        description: 'Set to true to return the associated relationships data within the response. (default: false)'
        required: false
        in: query
        schema:
          type: boolean
      - name: sort
        description: 'Comma delimited string of fields to sort the results by, applied in the order given. Prefix a field with `-` to sort it in descending order, for example `?sort=-author_name,created_at`. Sortable fields: `author_name`, `created_at`, `custom`, `description`, `enabled`, `enabled_field_updated_by_user`, `frameworks`, `health_status`, `id`, `key`, `last_evaluated`, `next_due_date`, `owner_assigned_at`, `owner_name`, `pass`, `passed_with_upload`, `promote_at`, `recommended_action`, `required_implementation_date`, `resource_category`, `status`, `test_domain`, `test_function`, `test_interval_seconds`, `test_type`, `title`, `tolerance_window_seconds`, `updated_at`, `vendor_name`.'
        required: false
        in: query
        schema:
          type: string
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    description: List of resources matching the query
                    items:
                      type: object
                      description: Data envelope for the response
                      properties:
                        id:
                          type: string
                          format: uuid
                          description: The identifier for this resource
                        type:
                          type: string
                          description: The type of resource this object is
                        attributes:
                          $ref: '#/components/schemas/Test'
                        relationships:
                          type: object
                          description: Nested objects related to the top level object
                        links:
                          type: object
                          description: Links to related API resources
                  meta:
                    type: object
                    description: Metadata about the list response
                    properties:
                      total:
                        type: integer
                        description: Total number of records matching the query across all pages, independent of page and per_page
                  included:
                    type: array
                    items:
                      type: object
                      description: Various objects that have been included via the `include` param
                      properties:
                        id:
                          type: string
                          format: uuid
                          description: The identifier for this resource
        '403':
          description: Forbidden
        '401':
          description: Unauthorized
        '400':
          description: Bad Request
      description: 'Returns a list of Tests.

        ### Search parameters


        - `author_name` — The author name of the Test

        - `created_at` — The date when this Test was created

        - `custom` — True if the Test is custom (user generated), false if it''s Secureframe-authored

        - Valid values: `true`, `false`

        - `description` — The description of the Test

        - `enabled` — True if the Test is currently enabled

        - Valid values: `true`, `false`

        - `enabled_field_updated_by_user` — True if the Test''s enabled field was last changed by a user, false otherwise

        - Valid values: `true`, `false`

        - `frameworks` — The framework keys for this Test

        - `health_status` — The overall health of the Test

        - Valid values: `pass`, `at_risk`, `fail`, `disabled`

        - `id` — The ID of the Test

        - `key` — The user-friendly identifier used to reference this Test

        - `last_evaluated` — The date the Test was last evaluated at

        - `next_due_date` — The date new Test evidence is needed by if applicable

        - `owner_assigned_at` — The date the Test owner was assigned

        - `owner_name` — The Test owner''s name

        - `pass` — True if the Test is passing, false otherwise. [DEPRECATED - Use health_status instead]

        - Valid values: `true`, `false`

        - `passed_with_upload` — True if the Test passed from the existence of an upload, false otherwise

        - Valid values: `true`, `false`

        - `promote_at` — The current date set for implementation of the Test

        - `recommended_action` — Actions for completing the Test

        - `required_implementation_date` — The pre-configured date the Test must be implemented by

        - `resource_category` — The category the Test resource belongs to

        - `status` — The status of the Test. [DEPRECATED - Use health_status instead]

        - Valid values: `pass`, `at_risk`, `fail`, `disabled`

        - `test_domain` — The domain the Test belongs to

        - `test_function` — The purpose of the Test

        - `test_interval_seconds` — The interval in which Test evidence should be collected if applicable

        - `test_type` — The type of Test

        - `title` — The title of the Test

        - `tolerance_window_seconds` — The time between the Test interval elapsing and evidence becoming stale and Test failing if applicable

        - `updated_at` — The date the Test was last updated

        - `vendor_name` — The vendor name associated with the Test if applicable'
      summary: List Tests
      security:
      - header_authorization: []
      x-controller: api/company_tests
      x-action: index
    post:
      tags:
      - Test
      operationId: companyTestsCreate
      parameters:
      - name: control_ids
        description: The IDs of the controls to map this test to.
        required: false
        in: query
        schema:
          type: array
          items:
            type: string
            format: uuid
        explode: true
      - name: description
        description: The description for the test.
        required: false
        in: query
        schema:
          type: string
      - name: detailed_remediation_steps
        description: Guidance for remediating this test in the event it fails.
        required: false
        in: query
        schema:
          type: string
      - name: owner_id
        description: The UUID of a user.
        required: false
        in: query
        schema:
          type: string
          format: uuid
      - name: resource_category
        description: The category the test resource belongs to.
        required: false
        in: query
        schema:
          type: string
          enum:
          - Access Key
          - Access Point
          - Agent
          - Authentication Factor
          - Background Screening
          - Block Storage
          - Board of Directors
          - Cardholder Data
          - Certificate
          - Code
          - Code of Conduct
          - Confidentiality Agreement
          - Container
          - Content Delivery Network
          - Control
          - Customer
          - Data
          - Data Stream
          - Data Warehouse
          - Debug Service
          - Diagram
          - Domain Name System
          - Emergency Lighting
          - Encryption Key
          - Endpoint
          - Equipment
          - Facility
          - File Storage
          - File System
          - Fire Suppression
          - Firewall Rule
          - Hosting Service
          - IAM Resource
          - Identity and Management
          - Information Security Management System
          - Information Security Team
          - Infrastructure
          - Instance
          - Load Balancer
          - Log
          - Machine Learning
          - Maintenance
          - Message Service
          - Metric
          - Migration Service
          - Network
          - Non-Relational Database
          - Notification Service
          - Object Storage
          - Password
          - Password Vault
          - Patch
          - Performance Review
          - Personnel
          - Policy
          - Power
          - Procedure
          - Protected Health Information
          - Regulatory Obligation
          - Relational Database
          - Removable Media
          - Repository
          - Repository Branch
          - Risk
          - Search Service
          - Serverless Function
          - Service
          - Software
          - Special Interest Group
          - SSH Key
          - Storage
          - Temperature
          - Test Data
          - Ticket
          - Transfer Service
          - Vendor
          - Virtual Network
          - Vulnerability
          - Web Application
      - name: test_domain
        description: The domain the test belongs to.
        required: false
        in: query
        schema:
          type: string
          enum:
          - Asset Management
          - Availability
          - Change Management
          - Communications
          - Data Security
          - Governance
          - Identity and Access Management
          - Incident Response
          - Network Security
          - Physical Security
          - Privacy
          - Risk Management
          - Vendor Management
          - Vulnerability Management
      - name: test_function
        description: The purpose of the test.
        required: false
        in: query
        schema:
          type: string
          enum:
          - Access Control
          - Agreements
          - Approval
          - Architecture
          - Backup
          - Baseline Configuration
          - Business Continuity
          - Capacity Monitoring
          - Certificate Management
          - Charter
          - Commitments
          - Compliance Meetings
          - Data Handling
          - Data Loss Prevention
          - Data Retention
          - Dependency Testing
          - Encryption-at-Rest
          - Encryption-in-Transit
          - Endpoint Security
          - Equipment Management
          - Equipment Tracking
          - Gap Remediation
          - High Availability
          - Human Resources
          - Incident Management
          - Infrastructure Security
          - Integration Testing
          - Internal and External Channels
          - Internal Audit
          - Internal Controls
          - Inventory
          - Key Management
          - Lawful Basis
          - Least Functionality
          - Least Privilege
          - Logging
          - Media Handling
          - Multi-factor Authentication
          - Network Security
          - Objectives
          - Password Complexity
          - Password Management
          - Password Reset
          - Patching
          - Penetration Testing
          - Physical Security
          - Policy Acceptance
          - Policy Management
          - Procedure Management
          - Procedures Acceptance
          - Risk Assessment
          - Risk Tracking
          - Risk Treatment
          - SAST
          - Security Monitoring
          - Tracking
          - Training
          - Vendor Management
          - Vendor Review
          - Version Control
          - Vulnerability Scans
          - Vulnerability Tracking
      - name: test_interval_seconds
        description: How often new evidence should be collected for the test.
        required: false
        in: query
        schema:
          type: string
          enum:
          - one_day
          - one_week
          - two_weeks
          - one_month
          - three_months
          - six_months
          - one_year
          - none
      - name: title
        description: The test title.
        required: true
        in: query
        schema:
          type: string
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    description: Data envelope for the response
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: The identifier for this resource
                      type:
                        type: string
                        description: The type of resource this object is
                      attributes:
                        $ref: '#/components/schemas/Test'
                      relationships:
                        type: object
                        description: Nested objects related to the top level object
                      links:
                        type: object
                        description: Links to related API resources
                  included:
                    type: array
                    items:
                      type: object
                      description: Various objects that have been included via the `include` param
                      properties:
                        id:
                          type: string
                          format: uuid
                          description: The identifier for this resource
        '404':
          description: Resource not found
        '403':
          description: Forbidden
        '401':
          description: Unauthorized
        '400':
          description: Bad Request
      description: 'Creates an upload Test: a Test that passes while current evidence is attached to it.'
      summary: Create a Test
      security:
      - header_authorization: []
      x-controller: api/company_tests
      x-action: create
  /tests/{id}:
    get:
      tags:
      - Test
      operationId: companyTestsShow
      parameters:
      - name: id
        description: Scope response to id
        required: true
        in: path
        schema:
          type: string
      - name: include
        description: Comma delimited string of relationships to include.
        required: false
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - enabled_field_updated_by
            - owner
            - promoted_by
        explode: false
        style: form
      - name: relationships
        description: 'Set to true to return the associated relationships data within the response. (default: false)'
        required: false
        in: query
        schema:
          type: boolean
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    description: Data envelope for the response
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: The identifier for this resource
                      type:
                        type: string
                        description: The type of resource this object is
                      attributes:
                        $ref: '#/components/schemas/Test'
                      relationships:
                        type: object
                        description: Nested objects related to the top level object
                      links:
                        type: object
                        description: Links to related API resources
                  included:
                    type: array
                    items:
                      type: object
                      description: Various objects that have been included via the `include` param
                      properties:
                        id:
                          type: string
                          format: uuid
                          description: The identifier for this resource
        '404':
          description: Resource not found
        '403':
          description: Forbidden
        '401':
          description: Unauthorized
        '400':
          description: Bad Request
      description: Returns a Test by ID
      summary: Get a Test
      security:
      - header_authorization: []
      x-controller: api/company_tests
      x-action: show
    put:
      tags:
      - Test
      operationId: companyTestsUpdate
      parameters:
      - name: disabled_justification
        description: The justification reason for why this test is disabled.
        required: false
        in: query
        schema:
          type: string
      - name: enabled
        description: true or false for whether this test should be enabled or disabled.
        required: false
        in: query
        schema:
          type: boolean
      - name: id
        description: Scope response to id
        required: true
        in: path
        schema:
          type: string
      - name: next_due_date
        description: Date time in ISO8601 format.
        required: false
        in: query
        schema:
          type: string
          format: date-time
      - name: owner_id
        description: The UUID of a user.
        required: false
        in: query
        schema:
          type: string
          format: uuid
      - name: passed_with_upload_justification
        description: The justification reason for why this test is passed with upload.
        required: false
        in: query
        schema:
          type: string
      - name: promote_at
        description: Date time in ISO8601 format.
        required: false
        in: query
        schema:
          type: string
          format: date-time
      - name: test_interval_seconds
        description: How often the test should be run.
        required: false
        in: query
        schema:
          type: string
          enum:
          - one_day
          - one_week
          - two_weeks
          - one_month
          - three_months
          - six_months
          - one_year
          - none
      - name: tolerance_window_seconds
        description: The tolerance window representation for a test to be at risk.
        required: false
        in: query
        schema:
          type: string
          enum:
          - one_day
          - one_week
          - two_weeks
          - one_month
          - three_months
          - six_months
          - one_year
          - none
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    description: Data envelope for the response
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: The identifier for this resource
                      type:
                        type: string
                        description: The type of resource this object is
                      attributes:
                        $ref: '#/components/schemas/Test'
                      relationships:
                        type: object
                        description: Nested objects related to the top level object
                      links:
                        type: object
                        description: Links to related API resources
                  included:
                    type: array
                    items:
                      type: object
                      description: Various objects that have been included via the `include` param
                      properties:
                        id:
                          type: string
                          format: uuid
                          description: The identifier for this resource
        '404':
          description: Resource not found
        '403':
          description: Forbidden
        '401':
          description: Unauthorized
        '400':
          description: Bad Request
      description: Update a Test by ID
      summary: Update a Test
      security:
      - header_authorization: []
      x-controller: api/company_tests
      x-action: update
components:
  schemas:
    Test:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The identifier for this test.
        control_ids:
          type: array
          items:
            type: string
            format: uuid
          description: The IDs of the controls that the test is associated with.
        control_keys:
          type: array
          items:
            type: string
          description: The keys of the controls that the test is associated with.
        created_at:
          type: string
          format: date-time
          description: The date when this test was created.
        custom:
          type: boolean
          description: True if the test is custom (user generated), false if it's Secureframe-authored.
        description:
          type: string
          description: The description for the test.
        detailed_remediation_steps:
          type: string
          description: Guidance for remediating this test in the event it fails.
        disabled_justification:
          type: string
          description: Reason for disabling the test.
        enabled:
          type: boolean
          description: True if the test is currently enabled.
        enabled_field_updated_by_user_name:
          type: string
          description: The name of the user who enabled the test, null if wasn't enabled by a user.
        failure_message:
          type: string
          description: The message to be displayed if the test fails.
        first_failed_at:
          type: string
          format: date-time
          description: The date the test first failed.
        framework_ids:
          type: array
          items:
            type: string
            format: uuid
          description: The IDs of the frameworks that the test is associated with.
        framework_keys:
          type: array
          items:
            type: string
          description: The keys of the frameworks that the test is associated with.
        health_status:
          type: string
          description: The overall health of the test.
        key:
          type: string
          description: The user-friendly identifier used to reference this test.
        last_evaluated:
          type: string
          format: date-time
          description: The date the test was last evaluated at.
        last_passed_at:
          type: string
          format: date-time
          description: The date the test last had a passing evaluation.
        next_due_date:
          type: string
          format: date-time
          description: The date new test evidence is needed by if applicable.
        owner_assigned_at:
          type: string
          format: date-time
          description: The date the test owner was assigned.
        owner_name:
          type: string
          description: The test owner's name.
        pass:
          type: boolean
          description: True if the test is passing, false otherwise.
        passed_with_upload:
          type: boolean
          description: True if the test passed from the existence of an upload, false otherwise.
        passed_with_upload_justification:
          type: string
          description: The justification used on evidence upload to pass the test if applicable.
        promote_at:
          type: string
          format: date-time
          description: The current date set for implementation of the test.
        promoted_by_name:
          type: string
          description: The name of the user who set the implementation date.
        recommended_action:
          type: string
          description: Actions for completing the test.
        required_implementation_date:
          type: string
          format: date-time
          description: The pre-configured date the test must be implemented by.
        resource_category:
          type: string
          description: The category the test resource belongs to.
        test_domain:
          type: string
          description: The domain the test belongs to.
        test_function:
          type: string
          description: The purpose of the test.
        test_interval_seconds:
          type: integer
          description: The interval in which test evidence should be collected if applicable.
        test_type:
          type: string
          enum:
          - upload
          - integration
          - platform
          description: The type of test.
        title:
          type: string
          description: The test title.
        tolerance_window_seconds:
          type: integer
          description: The time between the test interval elapsing and evidence becoming stale and test failing if applicable.
        updated_at:
          type: string
          format: date-time
          description: The date the test was last updated.
        vendor_name:
          type: string
          description: The vendor name associated with the test if applicable.
  securitySchemes:
    header_authorization:
      type: apiKey
      name: Authorization
      in: header
x-tagGroups:
- name: Endpoints
  tags:
  - Cloud Resource
  - Cloud Resource Framework Asset Scope
  - Comment
  - Control
  - Custom Integration
  - Device
  - Device Framework Asset Scope
  - Evidence
  - File Upload
  - Framework
  - Framework Requirement
  - Integration Connection
  - Knowledge Base Answer
  - Knowledge Base Question
  - POA&M Item
  - Policy
  - Repository
  - Repository Framework Asset Scope
  - Risk
  - SSP Duty
  - SSP Duty Role
  - SSP Policy
  - SSP Report
  - SSP Report Assessment Objective
  - SSP Report Section
  - SSP Report Section Block
  - SSP Role
  - SSP Vendor
  - Security Questionnaire
  - Task
  - Test
  - Test Evidence
  - Test Export
  - Test Export Reading
  - Third Party Risk Management Vendor
  - Trust Center Request
  - User
  - User Account
  - User Evidence
  - User Security Settings
  - Vendor