{
  "openapi": "3.0.1",
  "info": {
    "title": "UK Pay & Calendar Calculator 2026/27",
    "description": "UK 2026/27 calculator for AI agents: take-home pay (income tax, NI, PAYE), stamp duty, student loan, VAT, minimum wage, SSP, SMP, council tax, working days. GOV.UK-sourced.",
    "version": "1.1",
    "x-build-id": "woheGrNvWbc98tosA"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tudorlane~uk-pay-calendar-calculator/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tudorlane-uk-pay-calendar-calculator",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/tudorlane~uk-pay-calendar-calculator/runs": {
      "post": {
        "operationId": "runs-sync-tudorlane-uk-pay-calendar-calculator",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/tudorlane~uk-pay-calendar-calculator/run-sync": {
      "post": {
        "operationId": "run-sync-tudorlane-uk-pay-calendar-calculator",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "action"
        ],
        "properties": {
          "action": {
            "title": "Action",
            "enum": [
              "take_home",
              "working_days",
              "mileage_claim",
              "council_tax_estimate",
              "rates",
              "student_loan",
              "stamp_duty",
              "vat",
              "minimum_wage",
              "ssp",
              "smp"
            ],
            "type": "string",
            "description": "What to calculate."
          },
          "tax_year": {
            "title": "Tax year",
            "enum": [
              "2026-27"
            ],
            "type": "string",
            "description": "Only 2026-27 is supported in v1.",
            "default": "2026-27"
          },
          "salary_gbp": {
            "title": "Salary (GBP)",
            "minimum": 0,
            "type": "number",
            "description": "take_home: gross pay per `pay_period`."
          },
          "pay_period": {
            "title": "Pay period",
            "enum": [
              "annual",
              "monthly",
              "weekly",
              "hourly"
            ],
            "type": "string",
            "description": "take_home: what `salary_gbp` represents.",
            "default": "annual"
          },
          "hours_per_week": {
            "title": "Hours per week",
            "minimum": 0,
            "type": "number",
            "description": "Required if pay_period=hourly; also enables the minimum wage check."
          },
          "age": {
            "title": "Age",
            "minimum": 0,
            "maximum": 120,
            "type": "integer",
            "description": "take_home: with hours_per_week, checks National Minimum/Living Wage."
          },
          "region": {
            "title": "UK nation",
            "enum": [
              "england",
              "wales",
              "scotland",
              "northern_ireland"
            ],
            "type": "string",
            "description": "take_home: Scotland uses Scottish income tax. working_days: selects the bank-holiday calendar.",
            "default": "england"
          },
          "student_loan_plans": {
            "title": "Student loan plans",
            "type": "array",
            "description": "take_home: zero or more plans.",
            "items": {
              "type": "string",
              "enum": [
                "plan1",
                "plan2",
                "plan4",
                "plan5",
                "postgrad"
              ]
            }
          },
          "pension": {
            "title": "Pension",
            "type": "object",
            "description": "take_home: {\"percent\": 5, \"method\": \"relief_at_source\" | \"net_pay\" | \"salary_sacrifice\"}. Percent of gross pay."
          },
          "above_state_pension_age": {
            "title": "Above State Pension age",
            "type": "boolean",
            "description": "take_home: no employee NI if true.",
            "default": false
          },
          "start_date": {
            "title": "Start date",
            "type": "string",
            "description": "working_days: YYYY-MM-DD (defaults to today)."
          },
          "end_date": {
            "title": "End date",
            "type": "string",
            "description": "working_days: inclusive end date. Omit to use add_working_days / next working day."
          },
          "add_working_days": {
            "title": "Add working days",
            "type": "integer",
            "description": "working_days: add N (negative = subtract) working days to start_date. Omit both this and end_date for 'next working day'."
          },
          "business_miles": {
            "title": "Business miles",
            "minimum": 0,
            "type": "number",
            "description": "mileage_claim: business miles in the tax year."
          },
          "vehicle": {
            "title": "Vehicle",
            "enum": [
              "car",
              "van",
              "motorcycle",
              "bicycle"
            ],
            "type": "string",
            "description": "mileage_claim.",
            "default": "car"
          },
          "passengers": {
            "title": "Passengers",
            "minimum": 0,
            "type": "integer",
            "description": "mileage_claim: fellow employees carried.",
            "default": 0
          },
          "employer_rate_ppm": {
            "title": "Employer rate (GBP per mile)",
            "minimum": 0,
            "type": "number",
            "description": "mileage_claim: what the employer pays per mile, e.g. 0.30. Returns relief claimable or taxable excess."
          },
          "postcode": {
            "title": "Postcode",
            "type": "string",
            "description": "council_tax_estimate: full UK postcode (England or Wales)."
          },
          "band": {
            "title": "Council tax band",
            "enum": [
              "A",
              "B",
              "C",
              "D",
              "E",
              "F",
              "G",
              "H",
              "I"
            ],
            "type": "string",
            "description": "council_tax_estimate: the property's band (I is Wales only). Not looked up."
          },
          "income_gbp": {
            "title": "Income (GBP)",
            "minimum": 0,
            "type": "number",
            "description": "student_loan: gross income per pay_period."
          },
          "price_gbp": {
            "title": "Property price (GBP)",
            "minimum": 0,
            "type": "number",
            "description": "stamp_duty: purchase price."
          },
          "nation": {
            "title": "Property nation",
            "enum": [
              "england",
              "northern_ireland",
              "scotland",
              "wales"
            ],
            "type": "string",
            "description": "stamp_duty: SDLT (England/NI), LBTT (Scotland), LTT (Wales).",
            "default": "england"
          },
          "first_time_buyer": {
            "title": "First-time buyer",
            "type": "boolean",
            "description": "stamp_duty.",
            "default": false
          },
          "additional_property": {
            "title": "Additional property",
            "type": "boolean",
            "description": "stamp_duty: buyer will own more than one home.",
            "default": false
          },
          "non_resident": {
            "title": "Non-UK resident",
            "type": "boolean",
            "description": "stamp_duty: England/NI 2% surcharge.",
            "default": false
          },
          "amount_gbp": {
            "title": "Amount (GBP)",
            "minimum": 0,
            "type": "number",
            "description": "vat: the amount to add VAT to or remove VAT from."
          },
          "vat_rate": {
            "title": "VAT rate",
            "enum": [
              "standard",
              "reduced",
              "zero"
            ],
            "type": "string",
            "description": "vat: 20%, 5% or 0%.",
            "default": "standard"
          },
          "vat_mode": {
            "title": "VAT mode",
            "enum": [
              "add",
              "remove"
            ],
            "type": "string",
            "description": "vat: add VAT to a net amount or remove it from a gross amount.",
            "default": "add"
          },
          "apprentice": {
            "title": "Apprentice",
            "type": "boolean",
            "description": "minimum_wage.",
            "default": false
          },
          "hourly_rate_gbp": {
            "title": "Hourly rate (GBP)",
            "minimum": 0,
            "type": "number",
            "description": "minimum_wage: rate to check against the legal minimum."
          },
          "average_weekly_earnings_gbp": {
            "title": "Average weekly earnings (GBP)",
            "minimum": 0,
            "type": "number",
            "description": "ssp/smp: average weekly earnings before tax."
          },
          "sick_days": {
            "title": "Sick days",
            "minimum": 0,
            "type": "integer",
            "description": "ssp: qualifying days off sick."
          },
          "qualifying_days_per_week": {
            "title": "Working days per week",
            "minimum": 1,
            "maximum": 7,
            "type": "integer",
            "description": "ssp.",
            "default": 5
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}