{"openapi":"3.1.0","info":{"title":"Salaryscript API","version":"0.1.0","description":"A fully local salary-negotiation technique and script reference: negotiation principles, a readiness checklist, scripts across eight scenarios (raises, promotions, and pushback, not just new offers), objection responses, channel and seniority guidance, timing guidance, common mistakes, a technique glossary, and non-salary levers. Contains no real salary figures — technique only.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://salaryscript.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/salaryscript/docs"},"termsOfService":"https://connectorbay.com/salaryscript/terms"},"servers":[{"url":"https://salaryscript.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/salaryscript/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/negotiation_principles":{"post":{"operationId":"negotiation_principles","summary":"Well-established negotiation principles (BATNA, anchoring, bracketing, silence, negotiating the whole","description":"Well-established negotiation principles (BATNA, anchoring, bracketing, silence, negotiating the whole\n    package, and more), each with a plain-language explanation. Use for \"what are the basics of salary\n    negotiation\", \"explain anchoring in negotiation\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"negotiation_principlesArguments","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/readiness_checklist":{"post":{"operationId":"readiness_checklist","summary":"A self-check to work through before any negotiation conversation — BATNA, walk-away number, timing,","description":"A self-check to work through before any negotiation conversation — BATNA, walk-away number, timing,\n    and preparation for pushback. Use for \"am I ready to negotiate my offer\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"readiness_checklistArguments","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/script_by_scenario":{"post":{"operationId":"script_by_scenario","summary":"Adaptable scripts for one of eight negotiation scenarios — raises, promotions, and pushback moments,","description":"Adaptable scripts for one of eight negotiation scenarios — raises, promotions, and pushback moments,\n    not just a new-offer response. Use for \"how do I ask for a raise\", \"how do I negotiate a promotion's pay\",\n    \"how do I decline a lowball offer gracefully\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"scenario":{"description":"asking-for-a-raise | promotion-compensation | final-offer-pushback | no-budget-pushback | internal-parity-question | delaying-a-verbal-yes | declining-a-lowball-gracefully | counter-with-a-competing-timeline","title":"Scenario","type":"string"}},"required":["scenario"],"title":"script_by_scenarioArguments","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/objection_response":{"post":{"operationId":"objection_response","summary":"A reasoned response to a specific employer objection, tagged with the negotiation principle it applies.","description":"A reasoned response to a specific employer objection, tagged with the negotiation principle it applies.\n    Use for \"what do I say when they say this is their final offer\", \"how do I respond to 'we have no\n    budget'\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"objection":{"description":"An employer pushback line, e.g. 'we don't have budget' or 'this is our best and final offer', or its key.","minLength":1,"title":"Objection","type":"string"}},"required":["objection"],"title":"objection_responseArguments","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/script_by_channel":{"post":{"operationId":"script_by_channel","summary":"How to adapt negotiation approach for phone/video, email, or an in-person meeting. Use for \"should I","description":"How to adapt negotiation approach for phone/video, email, or an in-person meeting. Use for \"should I\n    negotiate salary over email or on a call\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"channel":{"description":"phone-or-video | email | in-person","title":"Channel","type":"string"}},"required":["channel"],"title":"script_by_channelArguments","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/script_by_seniority":{"post":{"operationId":"script_by_seniority","summary":"How negotiation approach and leverage typically differ by career stage. Use for \"how should an","description":"How negotiation approach and leverage typically differ by career stage. Use for \"how should an\n    executive negotiate differently than a new grad\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"level":{"description":"early-career | mid-career | senior-or-executive","title":"Level","type":"string"}},"required":["level"],"title":"script_by_seniorityArguments","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/timing_guidance":{"post":{"operationId":"timing_guidance","summary":"General guidance on when negotiating compensation tends to land well versus poorly, independent of any","description":"General guidance on when negotiating compensation tends to land well versus poorly, independent of any\n    specific company. Use for \"is now a good time to ask for a raise\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"timing_guidanceArguments","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/common_mistakes":{"post":{"operationId":"common_mistakes","summary":"Frequent salary-negotiation mistakes with fixes. Use for \"what are common salary negotiation","description":"Frequent salary-negotiation mistakes with fixes. Use for \"what are common salary negotiation\n    mistakes\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"common_mistakesArguments","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/technique_glossary":{"post":{"operationId":"technique_glossary","summary":"Defines negotiation technique terms — BATNA, ZOPA, anchoring, bracketing, flinching, and more. Use for","description":"Defines negotiation technique terms — BATNA, ZOPA, anchoring, bracketing, flinching, and more. Use for\n    \"what does BATNA mean\", \"what is anchoring in negotiation\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific term to look up; omit to list all.","title":"Term"}},"title":"technique_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}},"/v1/tools/non_salary_levers":{"post":{"operationId":"non_salary_levers","summary":"Ten things besides base salary worth negotiating (signing bonus, equity, start date, title, remote","description":"Ten things besides base salary worth negotiating (signing bonus, equity, start date, title, remote\n    flexibility, PTO, relocation, professional development, accelerated review, sign-on equity top-up), each\n    with a negotiation angle. Use for \"what else can I negotiate besides salary\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"non_salary_leversArguments","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}}}}