{ "info": { "name": "Testiny API", "description": "The documented public REST API behind the Testiny test management platform. Base URL: https://app.testiny.io/api/v1. All requests authenticate with an X-Api-Key header. Endpoints cover projects, test cases, test plans, test runs (including result recording via testcase:testrun mappings), and automation test runs/results. Grounded in the live OpenAPI schema at https://app.testiny.io/api/v1/swagger.json.", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, "auth": { "type": "apikey", "apikey": [ { "key": "key", "value": "X-Api-Key", "type": "string" }, { "key": "value", "value": "{{apiKey}}", "type": "string" }, { "key": "in", "value": "header", "type": "string" } ] }, "variable": [ { "key": "baseUrl", "value": "https://app.testiny.io/api/v1", "type": "string" }, { "key": "apiKey", "value": "", "type": "string" } ], "item": [ { "name": "Projects", "item": [ { "name": "List projects", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/project", "host": ["{{baseUrl}}"], "path": ["project"] }, "description": "Lists the projects in your organization." } }, { "name": "Get a project", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/project/:id", "host": ["{{baseUrl}}"], "path": ["project", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Retrieves a single project by ID." } }, { "name": "List projects I can access", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/permission/me/projects", "host": ["{{baseUrl}}"], "path": ["permission", "me", "projects"] }, "description": "Returns the projects the current API key can access." } } ] }, { "name": "Test Cases", "item": [ { "name": "List test cases", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/testcase", "host": ["{{baseUrl}}"], "path": ["testcase"] }, "description": "Lists test cases." } }, { "name": "Create a test case", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"project_id\": 1,\n \"title\": \"Login with valid credentials\",\n \"precondition_text\": \"User account exists\",\n \"steps_text\": \"Open login page and submit valid credentials\",\n \"expected_result_text\": \"User is logged in\"\n}" }, "url": { "raw": "{{baseUrl}}/testcase", "host": ["{{baseUrl}}"], "path": ["testcase"] }, "description": "Creates a new test case." } }, { "name": "Find test cases", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"filter\": { \"project_id\": 1 },\n \"limit\": 50\n}" }, "url": { "raw": "{{baseUrl}}/testcase/find", "host": ["{{baseUrl}}"], "path": ["testcase", "find"] }, "description": "Searches for test cases using DataReadParams." } }, { "name": "Get a test case", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/testcase/:id", "host": ["{{baseUrl}}"], "path": ["testcase", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Retrieves a single test case by ID." } }, { "name": "Update a test case", "request": { "method": "PUT", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"title\": \"Login with valid credentials (updated)\"\n}" }, "url": { "raw": "{{baseUrl}}/testcase/:id", "host": ["{{baseUrl}}"], "path": ["testcase", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Updates an existing test case." } }, { "name": "Delete a test case", "request": { "method": "DELETE", "header": [], "url": { "raw": "{{baseUrl}}/testcase/:id", "host": ["{{baseUrl}}"], "path": ["testcase", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Soft-deletes a test case." } }, { "name": "Upload a test case attachment", "request": { "method": "POST", "header": [], "body": { "mode": "formdata", "formdata": [{ "key": "file", "type": "file", "src": [] }] }, "url": { "raw": "{{baseUrl}}/testcase/upload-attachment/:id", "host": ["{{baseUrl}}"], "path": ["testcase", "upload-attachment", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Uploads blob data as an attachment to a test case." } } ] }, { "name": "Test Plans", "item": [ { "name": "List test plans", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/testplan", "host": ["{{baseUrl}}"], "path": ["testplan"] }, "description": "Lists test plans." } }, { "name": "Create a test plan", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"project_id\": 1,\n \"title\": \"Release 2.0 regression\"\n}" }, "url": { "raw": "{{baseUrl}}/testplan", "host": ["{{baseUrl}}"], "path": ["testplan"] }, "description": "Creates a new test plan." } }, { "name": "Get a test plan", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/testplan/:id", "host": ["{{baseUrl}}"], "path": ["testplan", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Retrieves a single test plan by ID." } } ] }, { "name": "Test Runs", "item": [ { "name": "List test runs", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/testrun", "host": ["{{baseUrl}}"], "path": ["testrun"] }, "description": "Lists test runs." } }, { "name": "Create a test run", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"project_id\": 1,\n \"title\": \"Nightly smoke run\",\n \"testplan_id\": 3\n}" }, "url": { "raw": "{{baseUrl}}/testrun", "host": ["{{baseUrl}}"], "path": ["testrun"] }, "description": "Creates a new test run, optionally seeded from a test plan." } }, { "name": "Find test runs", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"filter\": { \"project_id\": 1 },\n \"limit\": 50\n}" }, "url": { "raw": "{{baseUrl}}/testrun/find", "host": ["{{baseUrl}}"], "path": ["testrun", "find"] }, "description": "Searches for test runs using DataReadParams." } }, { "name": "Get a test run", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/testrun/:id", "host": ["{{baseUrl}}"], "path": ["testrun", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Retrieves a single test run by ID." } }, { "name": "Update a test run", "request": { "method": "PUT", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"title\": \"Nightly smoke run (updated)\"\n}" }, "url": { "raw": "{{baseUrl}}/testrun/:id", "host": ["{{baseUrl}}"], "path": ["testrun", ":id"], "variable": [{ "key": "id", "value": "" }] }, "description": "Updates an existing test run." } }, { "name": "Record results (map test cases to run)", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"mappings\": [\n { \"testcase_id\": 100, \"testrun_id\": 5, \"result_status\": \"passed\" },\n { \"testcase_id\": 101, \"testrun_id\": 5, \"result_status\": \"failed\", \"comment\": \"Assertion error on step 3\" }\n ]\n}" }, "url": { "raw": "{{baseUrl}}/testrun/mapping/bulk/testcase:testrun?op=add_or_update", "host": ["{{baseUrl}}"], "path": ["testrun", "mapping", "bulk", "testcase:testrun"], "query": [{ "key": "op", "value": "add_or_update" }] }, "description": "Records per-case results in a run by mapping test cases to the run (each mapping carries a result status)." } }, { "name": "Upload a result attachment", "request": { "method": "POST", "header": [], "body": { "mode": "formdata", "formdata": [{ "key": "file", "type": "file", "src": [] }] }, "url": { "raw": "{{baseUrl}}/testrun/upload-attachment/:trId/:tcId", "host": ["{{baseUrl}}"], "path": ["testrun", "upload-attachment", ":trId", ":tcId"], "variable": [{ "key": "trId", "value": "" }, { "key": "tcId", "value": "" }] }, "description": "Uploads an attachment to a test case result in a run." } }, { "name": "Export test runs as CSV", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/export/testrun/csv", "host": ["{{baseUrl}}"], "path": ["export", "testrun", "csv"] }, "description": "Exports test runs as CSV." } } ] }, { "name": "Automation", "item": [ { "name": "List automation test runs", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/atm-testrun", "host": ["{{baseUrl}}"], "path": ["atm-testrun"] }, "description": "Lists automation test runs." } }, { "name": "Create an automation test run", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"project_id\": 1,\n \"title\": \"CI build #4211\"\n}" }, "url": { "raw": "{{baseUrl}}/atm-testrun", "host": ["{{baseUrl}}"], "path": ["atm-testrun"] }, "description": "Creates an automation test run to collect CI/CD results." } }, { "name": "Complete an automation test run", "request": { "method": "POST", "header": [{ "key": "Content-Type", "value": "application/json" }], "body": { "mode": "raw", "raw": "{\n \"atm_testrun_id\": 42,\n \"results\": [\n { \"name\": \"suite.spec.login\", \"result_status\": \"passed\", \"duration_ms\": 812 }\n ]\n}" }, "url": { "raw": "{{baseUrl}}/atm-testrun/complete", "host": ["{{baseUrl}}"], "path": ["atm-testrun", "complete"] }, "description": "Finalizes an automation test run after results are submitted." } } ] } ] }