{"openapi":"3.1.0","info":{"title":"Freelancerate API","version":"0.1.0","description":"A fully local freelance rate-setting toolkit: a backward-from-desired-annual-income hourly rate calculator, a project-vs-hourly pricing comparison, a rate-increase calculator, a rate-negotiation reference, a market-rate reference, and a glossary. General information, not financial or tax advice.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://freelancerate.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/freelancerate/docs"},"termsOfService":"https://connectorbay.com/freelancerate/terms"},"servers":[{"url":"https://freelancerate.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/freelancerate/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/hourly_rate_calculator":{"post":{"operationId":"hourly_rate_calculator","summary":"Works backward from a desired annual income to a required hourly billing rate, accounting for","description":"Works backward from a desired annual income to a required hourly billing rate, accounting for\n    non-billable time, self-employment tax, benefits, and overhead. Use for \"what hourly rate do I need to\n    make $100k a year working 40 hours a week with 4 weeks off\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"desired_annual_income":{"description":"The take-home/net business income you want to end up with per year.","exclusiveMinimum":0,"title":"Desired Annual Income","type":"number"},"hours_per_week":{"default":40.0,"description":"Total hours you plan to work per week (billable + non-billable).","exclusiveMinimum":0,"maximum":168,"title":"Hours Per Week","type":"number"},"weeks_off_per_year":{"default":4.0,"description":"Vacation, sick, and holiday weeks per year.","exclusiveMaximum":52,"minimum":0,"title":"Weeks Off Per Year","type":"number"},"non_billable_percent":{"default":25.0,"description":"Share of working time spent on admin/marketing/learning, not billable to a client.","exclusiveMaximum":100,"minimum":0,"title":"Non Billable Percent","type":"number"},"annual_overhead_costs":{"default":0.0,"description":"Software, equipment, insurance, and other business costs per year.","minimum":0,"title":"Annual Overhead Costs","type":"number"},"annual_benefits_cost":{"default":0.0,"description":"Cost to self-fund health insurance, retirement contributions, etc. per year.","minimum":0,"title":"Annual Benefits Cost","type":"number"},"self_employment_tax_rate_pct":{"default":15.3,"description":"Self-employment tax rate (US default 15.3%).","exclusiveMaximum":100,"minimum":0,"title":"Self Employment Tax Rate Pct","type":"number"}},"required":["desired_annual_income"],"title":"hourly_rate_calculatorArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/project_vs_hourly_pricing_comparison":{"post":{"operationId":"project_vs_hourly_pricing_comparison","summary":"Compares a fixed project_price against hourly_rate x estimated_hours, and shows the effective hourly","description":"Compares a fixed project_price against hourly_rate x estimated_hours, and shows the effective hourly\n    rate the project price becomes under realistic overrun scenarios. Use for \"should I quote this as a\n    $5,000 project or bill hourly at $100/hr for an estimated 40 hours\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"estimated_hours":{"description":"Your estimate of how many hours the project will take.","exclusiveMinimum":0,"title":"Estimated Hours","type":"number"},"hourly_rate":{"description":"Your normal hourly rate.","exclusiveMinimum":0,"title":"Hourly Rate","type":"number"},"project_price":{"description":"The fixed price you're considering quoting for the whole project.","exclusiveMinimum":0,"title":"Project Price","type":"number"},"overrun_scenarios_percent":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"default":null,"description":"Percent-over-estimate scenarios to model; default [0, 20, 50].","title":"Overrun Scenarios Percent"}},"required":["estimated_hours","hourly_rate","project_price"],"title":"project_vs_hourly_pricing_comparisonArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/rate_increase_calculator":{"post":{"operationId":"rate_increase_calculator","summary":"The flat hourly-rate increase needed to add a target amount of annual income, given your current","description":"The flat hourly-rate increase needed to add a target amount of annual income, given your current\n    billable hours per year. Use for \"how much should I raise my rate to make an extra $10k this year on\n    1,200 billable hours\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"current_hourly_rate":{"description":"Your current hourly rate.","exclusiveMinimum":0,"title":"Current Hourly Rate","type":"number"},"desired_additional_annual_income":{"description":"How much more you want to earn per year.","exclusiveMinimum":0,"title":"Desired Additional Annual Income","type":"number"},"billable_hours_per_year":{"description":"Your typical billable hours per year.","exclusiveMinimum":0,"title":"Billable Hours Per Year","type":"number"}},"required":["current_hourly_rate","desired_additional_annual_income","billable_hours_per_year"],"title":"rate_increase_calculatorArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/rate_negotiation_reference":{"post":{"operationId":"rate_negotiation_reference","summary":"Hand-curated guidance for common rate-negotiation scenarios. Use for \"what do I say when a client","description":"Hand-curated guidance for common rate-negotiation scenarios. Use for \"what do I say when a client\n    says my rate is too expensive\", \"how do I justify a higher rate\", \"how do I handle scope creep\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"scenario":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"client-says-too-expensive | justifying-a-higher-rate | scope-creep-mid-project | saying-no-to-a-lowball-offer; omit for all.","title":"Scenario"}},"title":"rate_negotiation_referenceArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/market_rate_reference":{"post":{"operationId":"market_rate_reference","summary":"Broad, approximate US freelance hourly-rate ranges by experience level and market tier — a general","description":"Broad, approximate US freelance hourly-rate ranges by experience level and market tier — a general\n    starting point, not a substitute for field-specific market data. Use for \"what's a reasonable freelance\n    rate for a mid-level designer\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"experience_level":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"entry | mid | senior | expert; omit for the full table.","title":"Experience Level"},"market_tier":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"economy_market | mid_market | premium_market; optional, with experience_level.","title":"Market Tier"}},"title":"market_rate_referenceArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/freelance_glossary":{"post":{"operationId":"freelance_glossary","summary":"Definitions of common freelance-business terms: billable hours, utilization rate, non-billable time,","description":"Definitions of common freelance-business terms: billable hours, utilization rate, non-billable time,\n    scope creep, retainer, effective hourly rate, self-employment tax, value-based pricing, breakeven\n    hours. Use for \"what does utilization rate mean\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A term to define, or omit for the full glossary.","title":"Term"}},"title":"freelance_glossaryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}