{
  "openapi": "3.0.1",
  "info": {
    "title": "Freelancer Rate Calculator - Hourly, Daily & Retainer",
    "description": "The only freelancer rate calculator that shows what you actually need to charge to hit your net income goal - after taxes, overhead, and non-billable time. Returns 5 billing models: hourly, daily, weekly, monthly retainer, and project minimum.",
    "version": "0.1",
    "x-build-id": "Yc0ruhGvogN6wf9R8"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/trovevault~freelancer-rate-calculator/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-trovevault-freelancer-rate-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/trovevault~freelancer-rate-calculator/runs": {
      "post": {
        "operationId": "runs-sync-trovevault-freelancer-rate-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/trovevault~freelancer-rate-calculator/run-sync": {
      "post": {
        "operationId": "run-sync-trovevault-freelancer-rate-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": [
          "desiredAnnualIncome",
          "countries"
        ],
        "properties": {
          "desiredAnnualIncome": {
            "title": "Desired Annual Net Income",
            "minimum": 1,
            "type": "integer",
            "description": "Target net income per year in your local currency — what you want to actually take home after taxes and expenses.",
            "default": 60000
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "One or more countries to calculate rates for. Each country uses its own estimated self-employed tax rate. You'll get one set of results per country.",
            "items": {
              "type": "string",
              "enum": [
                "Argentina",
                "Australia",
                "Austria",
                "Bangladesh",
                "Belgium",
                "Bolivia",
                "Brazil",
                "Bulgaria",
                "Canada",
                "Chile",
                "China",
                "Colombia",
                "Croatia",
                "Czech Republic",
                "Denmark",
                "Ecuador",
                "Egypt",
                "Estonia",
                "Ethiopia",
                "Finland",
                "France",
                "Germany",
                "Ghana",
                "Greece",
                "Hungary",
                "India",
                "Indonesia",
                "Ireland",
                "Israel",
                "Italy",
                "Japan",
                "Kenya",
                "Latvia",
                "Lithuania",
                "Luxembourg",
                "Malaysia",
                "Mexico",
                "Morocco",
                "Netherlands",
                "New Zealand",
                "Nigeria",
                "Norway",
                "Pakistan",
                "Paraguay",
                "Peru",
                "Philippines",
                "Poland",
                "Portugal",
                "Romania",
                "Saudi Arabia",
                "Serbia",
                "Singapore",
                "Slovakia",
                "South Africa",
                "South Korea",
                "Spain",
                "Sri Lanka",
                "Sweden",
                "Switzerland",
                "Taiwan",
                "Thailand",
                "Turkey",
                "Ukraine",
                "United Arab Emirates",
                "United Kingdom",
                "United States",
                "Uruguay",
                "Venezuela",
                "Vietnam"
              ],
              "enumTitles": [
                "🇦🇷 Argentina",
                "🇦🇺 Australia",
                "🇦🇹 Austria",
                "🇧🇩 Bangladesh",
                "🇧🇪 Belgium",
                "🇧🇴 Bolivia",
                "🇧🇷 Brazil",
                "🇧🇬 Bulgaria",
                "🇨🇦 Canada",
                "🇨🇱 Chile",
                "🇨🇳 China",
                "🇨🇴 Colombia",
                "🇭🇷 Croatia",
                "🇨🇿 Czech Republic",
                "🇩🇰 Denmark",
                "🇪🇨 Ecuador",
                "🇪🇬 Egypt",
                "🇪🇪 Estonia",
                "🇪🇹 Ethiopia",
                "🇫🇮 Finland",
                "🇫🇷 France",
                "🇩🇪 Germany",
                "🇬🇭 Ghana",
                "🇬🇷 Greece",
                "🇭🇺 Hungary",
                "🇮🇳 India",
                "🇮🇩 Indonesia",
                "🇮🇪 Ireland",
                "🇮🇱 Israel",
                "🇮🇹 Italy",
                "🇯🇵 Japan",
                "🇰🇪 Kenya",
                "🇱🇻 Latvia",
                "🇱🇹 Lithuania",
                "🇱🇺 Luxembourg",
                "🇲🇾 Malaysia",
                "🇲🇽 Mexico",
                "🇲🇦 Morocco",
                "🇳🇱 Netherlands",
                "🇳🇿 New Zealand",
                "🇳🇬 Nigeria",
                "🇳🇴 Norway",
                "🇵🇰 Pakistan",
                "🇵🇾 Paraguay",
                "🇵🇪 Peru",
                "🇵🇭 Philippines",
                "🇵🇱 Poland",
                "🇵🇹 Portugal",
                "🇷🇴 Romania",
                "🇸🇦 Saudi Arabia",
                "🇷🇸 Serbia",
                "🇸🇬 Singapore",
                "🇸🇰 Slovakia",
                "🇿🇦 South Africa",
                "🇰🇷 South Korea",
                "🇪🇸 Spain",
                "🇱🇰 Sri Lanka",
                "🇸🇪 Sweden",
                "🇨🇭 Switzerland",
                "🇹🇼 Taiwan",
                "🇹🇭 Thailand",
                "🇹🇷 Turkey",
                "🇺🇦 Ukraine",
                "🇦🇪 United Arab Emirates",
                "🇬🇧 United Kingdom",
                "🇺🇸 United States",
                "🇺🇾 Uruguay",
                "🇻🇪 Venezuela",
                "🇻🇳 Vietnam"
              ]
            },
            "default": [
              "United States"
            ]
          },
          "billingModels": {
            "title": "Billing Models",
            "type": "array",
            "description": "Select which billing models to include in the output. All five are selected by default — deselect any you don't need.",
            "items": {
              "type": "string",
              "enum": [
                "Hourly",
                "Daily (8h)",
                "Weekly",
                "Monthly Retainer",
                "Project Minimum (5 days)"
              ]
            },
            "default": [
              "Hourly",
              "Daily (8h)",
              "Weekly",
              "Monthly Retainer",
              "Project Minimum (5 days)"
            ]
          },
          "currency": {
            "title": "Output Currency",
            "enum": [
              "USD",
              "EUR",
              "GBP"
            ],
            "type": "string",
            "description": "Currency symbol to display in results. All input values should be in this currency.",
            "default": "USD"
          },
          "weeklyWorkingHours": {
            "title": "Weekly Working Hours (Total)",
            "minimum": 1,
            "maximum": 80,
            "type": "integer",
            "description": "Total hours you work per week — including admin, sales, and learning, not just billable client work.",
            "default": 40
          },
          "billableTimePercent": {
            "title": "Billable Time (%)",
            "minimum": 10,
            "maximum": 100,
            "type": "integer",
            "description": "Percentage of your working hours that are billable to clients. Most freelancers bill 60–70%. The rest goes to admin, sales, and learning.",
            "default": 65
          },
          "annualVacationDays": {
            "title": "Annual Vacation Days",
            "minimum": 0,
            "maximum": 260,
            "type": "integer",
            "description": "Total days off per year (paid and unpaid). Used to calculate your actual working weeks per year.",
            "default": 20
          },
          "annualOverheadCosts": {
            "title": "Annual Overhead Costs",
            "minimum": 0,
            "type": "integer",
            "description": "Yearly business expenses — software subscriptions, equipment, accountant fees, health insurance, marketing. Enter 0 if unsure.",
            "default": 5000
          },
          "desiredProfitMargin": {
            "title": "Desired Profit Margin (%)",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Extra margin on top of all costs to reinvest in your business or build a buffer. 10–20% is typical for freelancers.",
            "default": 15
          },
          "datasetId": {
            "title": "Dataset ID (optional)",
            "type": "string",
            "description": "ID of an existing Apify dataset to push results into in addition to the default dataset. Useful for combining results from multiple runs or integrating with downstream actors."
          },
          "runId": {
            "title": "Run ID (optional)",
            "type": "string",
            "description": "ID of a previous actor run to associate this run with. Used for chaining actors in multi-step pipelines."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}