{
  "app": "apiworkbench",
  "format": 1,
  "exportedAt": "2026-11-09T00:00:00.000",
  "collections": [
    {
      "id": "98540248-8f0e-5fbe-8d86-4a42019bead4",
      "name": "Flaky Payments (sample)",
      "requests": [
        {
          "id": "32d7239d-65a4-5d20-b6bd-aaa5c66e8453",
          "name": "Charge a card",
          "method": "POST",
          "url": "{{baseUrl}}/payments",
          "params": [],
          "headers": [],
          "bodyType": "json",
          "body": "{\n  \"amount\": 25.0,\n  \"currency\": \"USD\"\n}",
          "graphqlVariables": "",
          "formFields": [],
          "authType": "none",
          "bearerToken": "",
          "assertions": [
            {
              "kind": "statusEquals",
              "t": "",
              "x": "201",
              "e": true
            },
            {
              "kind": "jsonEquals",
              "t": "status",
              "x": "approved",
              "e": true
            }
          ],
          "description": "Fails at random. Run it 20 times in the runner and count the failures."
        },
        {
          "id": "66ce254c-0d89-5ae9-8511-5ec0bb6cefe0",
          "name": "Poll the payment status",
          "method": "GET",
          "url": "{{baseUrl}}/payments/pay_123/status",
          "params": [],
          "headers": [],
          "bodyType": "none",
          "body": "",
          "graphqlVariables": "",
          "formFields": [],
          "authType": "none",
          "bearerToken": "",
          "assertions": [
            {
              "kind": "statusEquals",
              "t": "",
              "x": "200",
              "e": true
            },
            {
              "kind": "jsonEquals",
              "t": "id",
              "x": "pay_123",
              "e": true
            }
          ],
          "description": "Answers pending twice, then completed. Run it 3 times."
        },
        {
          "id": "2cecb1cb-4ba5-5cfe-b8dc-393d220f1c33",
          "name": "Exchange rates (rate limited)",
          "method": "GET",
          "url": "{{baseUrl}}/rates",
          "params": [],
          "headers": [],
          "bodyType": "none",
          "body": "",
          "graphqlVariables": "",
          "formFields": [],
          "authType": "none",
          "bearerToken": "",
          "assertions": [
            {
              "kind": "statusEquals",
              "t": "",
              "x": "200",
              "e": true
            }
          ],
          "description": "Every third call gets 429."
        },
        {
          "id": "60904e76-ed70-5784-a22e-5b2f3c9b7f51",
          "name": "Slow answer",
          "method": "GET",
          "url": "{{baseUrl}}/slow",
          "params": [],
          "headers": [],
          "bodyType": "none",
          "body": "",
          "graphqlVariables": "",
          "formFields": [],
          "authType": "none",
          "bearerToken": "",
          "assertions": [
            {
              "kind": "statusEquals",
              "t": "",
              "x": "200",
              "e": true
            },
            {
              "kind": "timeBelow",
              "t": "",
              "x": "2000",
              "e": true
            }
          ],
          "description": "Takes 3 seconds. The time test fails on purpose, to show what a slow answer looks like."
        },
        {
          "id": "a3c98c84-e5ee-54bd-b1f8-340c903f55a1",
          "name": "Wobbly answer",
          "method": "GET",
          "url": "{{baseUrl}}/wobbly",
          "params": [],
          "headers": [],
          "bodyType": "none",
          "body": "",
          "graphqlVariables": "",
          "formFields": [],
          "authType": "none",
          "bearerToken": "",
          "assertions": [
            {
              "kind": "statusEquals",
              "t": "",
              "x": "200",
              "e": true
            }
          ],
          "description": "Takes 0.1 to 1 second. Load test it and read p50, p95 and p99."
        },
        {
          "id": "91a450a6-93aa-5988-bc64-2544a924e495",
          "name": "Broken JSON",
          "method": "GET",
          "url": "{{baseUrl}}/broken-json",
          "params": [],
          "headers": [],
          "bodyType": "none",
          "body": "",
          "graphqlVariables": "",
          "formFields": [],
          "authType": "none",
          "bearerToken": "",
          "assertions": [
            {
              "kind": "statusEquals",
              "t": "",
              "x": "200",
              "e": true
            },
            {
              "kind": "jsonEquals",
              "t": "status",
              "x": "ok",
              "e": true
            }
          ],
          "description": "The status is 200 but the body is not JSON. The JSON test catches it."
        },
        {
          "id": "3fe3bbe8-e45d-5b16-9d69-12dc0053dd9a",
          "name": "Empty answer",
          "method": "GET",
          "url": "{{baseUrl}}/empty",
          "params": [],
          "headers": [],
          "bodyType": "none",
          "body": "",
          "graphqlVariables": "",
          "formFields": [],
          "authType": "none",
          "bearerToken": "",
          "assertions": [
            {
              "kind": "statusEquals",
              "t": "",
              "x": "200",
              "e": true
            },
            {
              "kind": "bodyContains",
              "t": "",
              "x": "ok",
              "e": true
            }
          ]
        },
        {
          "id": "ccc4f181-942d-50e1-b5bb-0ec53816b724",
          "name": "Dropped connection",
          "method": "GET",
          "url": "{{baseUrl}}/drop",
          "params": [],
          "headers": [],
          "bodyType": "none",
          "body": "",
          "graphqlVariables": "",
          "formFields": [],
          "authType": "none",
          "bearerToken": "",
          "assertions": [
            {
              "kind": "statusEquals",
              "t": "",
              "x": "200",
              "e": true
            }
          ],
          "description": "The server hangs up. ApiWorkbench shows a network error, not a status."
        },
        {
          "id": "07109dad-7b4a-555e-9327-42897cf80098",
          "name": "Never answers",
          "method": "GET",
          "url": "{{baseUrl}}/hang",
          "params": [],
          "headers": [],
          "bodyType": "none",
          "body": "",
          "graphqlVariables": "",
          "formFields": [],
          "authType": "none",
          "bearerToken": "",
          "assertions": [
            {
              "kind": "statusEquals",
              "t": "",
              "x": "200",
              "e": true
            }
          ],
          "description": "Send it, then press Cancel, or wait for the response timeout in Settings."
        }
      ],
      "variables": [
        {
          "k": "baseUrl",
          "v": "http://localhost:4030",
          "e": true
        }
      ],
      "description": "Requests for the Flaky Payments sample mock. Several tests fail on purpose. From learn.dhivalabs.com."
    }
  ],
  "environments": []
}
