{"openapi":"3.1.0","info":{"title":"PayTransparency agent API","version":"1.0.0","description":"Check job postings against US pay-transparency laws. Law lookups are free; checks need an API key from POST /signup (14-day trial, then $99 per 30 days). MCP server: https://www.paytransparency.app/mcp"},"servers":[{"url":"https://www.paytransparency.app/api/v1"}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"pt_live_... API key"}}},"security":[{"bearer":[]}],"paths":{"/laws":{"get":{"summary":"Every pay-transparency law in the catalog, or one jurisdiction with ?state=CA. CC BY 4.0.","security":[],"parameters":[{"name":"state","in":"query","required":false,"schema":{"type":"string","description":"Two-letter code (state, DC or EU)"}}],"responses":{"default":{"description":"JSON. Errors are { error: { code, message } }.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/laws-for-employer":{"get":{"summary":"The laws an employer of this size must follow where it hires: in effect now and upcoming, with a summary.","security":[],"parameters":[{"name":"employee_count","in":"query","required":true,"schema":{"type":"integer","description":"The employer's headcount"}},{"name":"states","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated codes, e.g. CA,NY. Leave out for all."}}],"responses":{"default":{"description":"JSON. Errors are { error: { code, message } }.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/signup":{"post":{"summary":"Create an account with a 14-day trial. Returns an API key (shown once). The person at email is sent a link to claim the account.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","description":"Email of the person the account is for"},"company_name":{"type":"string","description":"The employer's name"},"employee_count":{"type":"integer","description":"The employer's headcount, the default for checks (100 if left out)"}}}}}},"responses":{"default":{"description":"JSON. Errors are { error: { code, message } }.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/check":{"post":{"summary":"Check one job posting against every law that applies where it can be filled. Returns the report: overallCompliant, each law's result and the fine exposure. 120 an hour per key.","requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","description":"The posting's full text (send this or url)"},"url":{"type":"string","description":"Public URL of the posting (send this or text)"},"title":{"type":"string","description":"Job title"},"states":{"type":"array","items":{"type":"string"},"description":"Two-letter codes where the job can be filled. Leave out for a fully remote US role."},"employee_count":{"type":"integer","description":"The employer's headcount; defaults to the account's"}}}}}},"responses":{"default":{"description":"JSON. Errors are { error: { code, message } }.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/me":{"get":{"summary":"The account this key acts for, whether it's claimed, access dates and limits.","responses":{"default":{"description":"JSON. Errors are { error: { code, message } }.","content":{"application/json":{"schema":{"type":"object"}}}}}},"patch":{"summary":"Change the employer's name or headcount.","requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"company_name":{"type":"string","description":"The employer's name"},"employee_count":{"type":"integer","description":"The employer's headcount"}}}}}},"responses":{"default":{"description":"JSON. Errors are { error: { code, message } }.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/claim":{"post":{"summary":"Email the owner a fresh link to claim the account in the dashboard.","responses":{"default":{"description":"JSON. Errors are { error: { code, message } }.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/keys":{"get":{"summary":"List active API keys.","responses":{"default":{"description":"JSON. Errors are { error: { code, message } }.","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"summary":"Create a key (returned once). Up to 5 active.","requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"A label for the key"}}}}}},"responses":{"default":{"description":"JSON. Errors are { error: { code, message } }.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/keys/{key_id}":{"delete":{"summary":"Revoke a key.","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"default":{"description":"JSON. Errors are { error: { code, message } }.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/billing":{"get":{"summary":"Trial and paid-through dates, and every way to pay that's switched on.","responses":{"default":{"description":"JSON. Errors are { error: { code, message } }.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/billing/checkout":{"post":{"summary":"A Stripe Checkout link for a person to subscribe at $99/month.","responses":{"default":{"description":"JSON. Errors are { error: { code, message } }.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/companies/{company_id}/pay":{"post":{"summary":"Machine Payments Protocol: answers 402 with a challenge; pay it with an MPP client to buy 30 days for $99.00. No API key.","security":[],"parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"default":{"description":"JSON. Errors are { error: { code, message } }.","content":{"application/json":{"schema":{"type":"object"}}}}}}}}}