{
  "info": {
    "name": "HiRafi Public API",
    "_postman_id": "5e97bc4c-5d0a-43bd-a05f-rafi-public-api",
    "description": "Public automation API for API-key and session based access.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    { "key": "baseUrl", "value": "http://localhost:5000/api" },
    { "key": "apiKey", "value": "hrf_live_your_api_key_here" },
    { "key": "scenarioId", "value": "scenario-123" },
    { "key": "folderId", "value": "folder-001" },
    { "key": "collectionId", "value": "collection-101" },
    { "key": "environmentId", "value": "env-101" },
    { "key": "runId", "value": "run-123" },
    { "key": "testId", "value": "test-101" },
    { "key": "reportId", "value": "report-123" },
    { "key": "shareToken", "value": "share-token" }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      { "key": "token", "value": "{{apiKey}}", "type": "string" }
    ]
  },
  "item": [
    {
      "name": "Generate",
      "item": [
        {
          "name": "Generate Steps",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"prompt\": \"Create an API login flow and validate the token response.\",\n  \"platform\": \"api\"\n}"
            },
            "url": "{{baseUrl}}/generate-steps"
          }
        },
        {
          "name": "Generate Scenario Metadata",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"steps\": [\n    { \"type\": \"goto\", \"url\": \"https://example.com\" },\n    { \"type\": \"aiTap\", \"target\": \"Login button\" }\n  ]\n}"
            },
            "url": "{{baseUrl}}/generate-steps/details-from-steps"
          }
        }
      ]
    },
    {
      "name": "Scenarios",
      "item": [
        {
          "name": "List Scenarios",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/scenarios?limit=50"
          }
        },
        {
          "name": "List Lightweight Scenarios",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/scenarios/basic?limit=50"
          }
        },
        {
          "name": "Get Scenario",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/scenarios/{{scenarioId}}"
          }
        },
        {
          "name": "Create Scenario",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"API Login Scenario\",\n  \"description\": \"Validates the login response token.\",\n  \"platform\": \"api\",\n  \"testType\": \"api\",\n  \"steps\": [\n    {\n      \"type\": \"apiRequest\",\n      \"method\": \"POST\",\n      \"url\": \"https://example.com/login\"\n    }\n  ]\n}"
            },
            "url": "{{baseUrl}}/scenarios"
          }
        },
        {
          "name": "Generate And Create Scenario",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"userPrompt\": \"Create an API login flow, assert that the token exists, and store the scenario under the API folder.\",\n  \"platform\": \"api\",\n  \"folderId\": \"{{folderId}}\",\n  \"name\": \"API Login Smoke\",\n  \"description\": \"Quick smoke coverage for login token creation.\"\n}"
            },
            "url": "{{baseUrl}}/scenarios/generate"
          }
        },
        {
          "name": "List Scenario Folders",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/scenarios/folders?limit=50&skip=0"
          }
        }
      ]
    },
    {
      "name": "API Context",
      "item": [
        {
          "name": "List Collections",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/collections"
          }
        },
        {
          "name": "Get Collection",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/collections/{{collectionId}}"
          }
        },
        {
          "name": "List Environments",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/environments"
          }
        },
        {
          "name": "Get Environment",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/environments/{{environmentId}}"
          }
        }
      ]
    },
    {
      "name": "Runs",
      "item": [
        {
          "name": "List Runs",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/runs?page=1&limit=20&sortBy=priority"
          }
        },
        {
          "name": "Create Run",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"API smoke run\",\n  \"scenarioIds\": [\"{{scenarioId}}\"],\n  \"platform\": \"api\"\n}"
            },
            "url": "{{baseUrl}}/runs"
          }
        },
        {
          "name": "Generate And Execute Run",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"prompt\": \"Senaryo 1: Tek Yon Bilet Arama ve Secimi\\n1. Kalkis noktasini \\\"Istanbul-Sabiha Gokcen\\\", varis noktasini \\\"Ankara\\\" olarak secin.\\n2. Yakin bir tarihe gidis gunu belirleyin.\\n3. \\\"Ucuz Bilet Bul\\\" butonuna tiklayin.\\n4. Beklenen Sonuc: Secilen kriterlere uygun ucus listesi ve fiyatlar goruntulenmelidir.\",\n  \"platform\": \"web\",\n  \"name\": \"Tek Yon Bilet Arama\",\n  \"folderId\": \"{{folderId}}\",\n  \"shareReport\": true\n}"
            },
            "url": "{{baseUrl}}/runs/generate-and-execute"
          }
        },
        {
          "name": "Get Run",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/runs/{{runId}}"
          }
        },
        {
          "name": "Execute Run",
          "request": {
            "method": "POST",
            "url": "{{baseUrl}}/runs/{{runId}}/execute"
          }
        },
        {
          "name": "Stop Run",
          "request": {
            "method": "POST",
            "url": "{{baseUrl}}/runs/{{runId}}/stop"
          }
        },
        {
          "name": "Retry Failed",
          "request": {
            "method": "POST",
            "url": "{{baseUrl}}/runs/{{runId}}/retry-failed"
          }
        },
        {
          "name": "Run Status",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/runs/{{runId}}/status"
          }
        },
        {
          "name": "Scenario Reports",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/runs/{{runId}}/scenario-reports"
          }
        },
        {
          "name": "Active Tests",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/runs/{{runId}}/active-tests"
          }
        }
      ]
    },
    {
      "name": "Monitoring",
      "item": [
        {
          "name": "Run Step Progress",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/step-progress/run/{{runId}}"
          }
        },
        {
          "name": "Run Step Progress Summary",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/step-progress/run/{{runId}}/summary"
          }
        },
        {
          "name": "Test Step Progress",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/step-progress/test/{{testId}}"
          }
        }
      ]
    },
    {
      "name": "Reports",
      "item": [
        {
          "name": "Get Report",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/reports/{{reportId}}"
          }
        },
        {
          "name": "Run Detail Report",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/reports/run-detail/{{reportId}}"
          }
        }
      ]
    },
    {
      "name": "Sharing",
      "item": [
        {
          "name": "Enable Run Report Sharing",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reportId\": \"{{reportId}}\",\n  \"expiresIn\": 7,\n  \"allowComments\": true\n}"
            },
            "url": "{{baseUrl}}/runs/{{runId}}/sharing/enable"
          }
        },
        {
          "name": "Run Report Sharing Status",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/runs/{{runId}}/sharing/status?reportId={{reportId}}"
          }
        },
        {
          "name": "Disable Run Report Sharing",
          "request": {
            "method": "DELETE",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reportId\": \"{{reportId}}\"\n}"
            },
            "url": "{{baseUrl}}/runs/{{runId}}/sharing/disable"
          }
        },
        {
          "name": "Enable Single Report Sharing",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"expiresIn\": 7,\n  \"allowComments\": true\n}"
            },
            "url": "{{baseUrl}}/reports/{{reportId}}/share"
          }
        },
        {
          "name": "Disable Single Report Sharing",
          "request": {
            "method": "DELETE",
            "url": "{{baseUrl}}/reports/{{reportId}}/share"
          }
        },
        {
          "name": "Get Shared Run Report",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": "{{baseUrl}}/shared-run-reports/{{shareToken}}"
          }
        },
        {
          "name": "Get Shared Report",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": "{{baseUrl}}/shared-reports/{{shareToken}}"
          }
        }
      ]
    }
  ]
}
