{"openapi":"3.1.0","info":{"title":"ApprenticeGuide API","version":"0.1.0","description":"A fully local US registered-apprenticeship program-structure reference: the real DOL OJT/RTI model with typical hour-split ranges, employer vs. apprentice vs. program-sponsor role distinctions, a documented stepped wage-progression schedule, and a real linear-interpolation wage calculator.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://apprenticeguide.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/apprenticeguide/docs"},"termsOfService":"https://connectorbay.com/apprenticeguide/terms"},"servers":[{"url":"https://apprenticeguide.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/apprenticeguide/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/registered_apprenticeship_structure":{"post":{"operationId":"registered_apprenticeship_structure","summary":"The real US DOL registered-apprenticeship program-structure model: on-the-job-training (OJT) and","description":"The real US DOL registered-apprenticeship program-structure model: on-the-job-training (OJT) and\n    related-technical-instruction (RTI) components with typical hour-split ranges, and typical program length,\n    optionally for a specific trade example. Use for \"how is a registered apprenticeship structured\", \"OJT vs\n    classroom hours for electricians\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"trade":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"electrician | plumber | hvac_technician | carpenter | ironworker. Omit for the general OJT/RTI structure.","title":"Trade"}},"title":"registered_apprenticeship_structureArguments","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/role_distinctions":{"post":{"operationId":"role_distinctions","summary":"The real employer vs. apprentice vs. program-sponsor role distinctions in a registered apprenticeship.","description":"The real employer vs. apprentice vs. program-sponsor role distinctions in a registered apprenticeship.\n    Use for \"who's responsible for what in an apprenticeship\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"role":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"employer | apprentice | program_sponsor. Omit to see all three.","title":"Role"}},"title":"role_distinctionsArguments","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/wage_progression_schedule":{"post":{"operationId":"wage_progression_schedule","summary":"A documented stepped wage-progression schedule from a starting to an ending percentage of journeyworker","description":"A documented stepped wage-progression schedule from a starting to an ending percentage of journeyworker\n    wage across a number of periods. Use for \"give me a wage progression schedule for an 8-period apprenticeship\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"starting_pct":{"default":50.0,"description":"Starting wage as a percentage of full journeyworker wage (e.g. 50).","exclusiveMinimum":0,"maximum":100,"title":"Starting Pct","type":"number"},"ending_pct":{"default":100.0,"description":"Ending wage as a percentage of full journeyworker wage (e.g. 100).","exclusiveMinimum":0,"maximum":100,"title":"Ending Pct","type":"number"},"num_periods":{"default":8,"description":"Number of stepped periods across the program (e.g. 8 for a 4-year program in 6-month periods).","minimum":1,"title":"Num Periods","type":"integer"}},"title":"wage_progression_scheduleArguments","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/wage_calculator":{"post":{"operationId":"wage_calculator","summary":"Computes an apprentice's wage percentage (and dollar wage, if a journeyworker wage is given) at any","description":"Computes an apprentice's wage percentage (and dollar wage, if a journeyworker wage is given) at any\n    point in the program via real linear interpolation between starting_pct and ending_pct. Use for \"an\n    apprentice starts at 50% and progresses to 100% over 8000 hours, what's the wage at 4000 hours\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"starting_pct":{"description":"Starting wage as a percentage of journeyworker wage.","exclusiveMinimum":0,"maximum":100,"title":"Starting Pct","type":"number"},"ending_pct":{"description":"Ending wage as a percentage of journeyworker wage.","exclusiveMinimum":0,"maximum":100,"title":"Ending Pct","type":"number"},"program_length_hours":{"description":"Total program length in OJT hours (e.g. 8000).","exclusiveMinimum":0,"title":"Program Length Hours","type":"number"},"hours_completed":{"description":"OJT hours completed so far.","minimum":0,"title":"Hours Completed","type":"number"},"journeyworker_hourly_wage":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Optional: the full journeyworker hourly wage, to also return a dollar wage.","title":"Journeyworker Hourly Wage"}},"required":["starting_pct","ending_pct","program_length_hours","hours_completed"],"title":"wage_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/apprenticeguide_glossary":{"post":{"operationId":"apprenticeguide_glossary","summary":"Definitions of registered-apprenticeship program-structure terms: registered apprenticeship,","description":"Definitions of registered-apprenticeship program-structure terms: registered apprenticeship,\n    journeyworker, work-process schedule, RTI, Certificate of Completion, program sponsor. Use for \"what's a\n    work-process schedule\", \"what's a journeyworker\".","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":"apprenticeguide_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}}}}