Skip to main content
HonestMOS
InvestigationsCongress made VA disability claims free to file. An entire industry charges veterans anyway — and nobody can stop them.

API & MCP Server

Every US military job, queryable — every MOS, rate and AFSC across all six branches, plus rank-tier career playbooks, the acronym dictionary, installation data, and the pay and disability math behind our calculators. Live coverage counts come from /api/v1/stats, not from this paragraph.

No key. No signup. CORS open to every origin. Three ways in: a REST API, an OpenAPI 3.0 spec for tool-calling clients, and a Model Context Protocol endpoint you can paste into Claude Desktop.

MCP server

One endpoint, no auth, JSON-RPC 2.0 over HTTP, protocol version 2024-11-05. Drop this into your MCP client config:

{ "mcpServers": { "honestmos": { "url": "https://www.honestmos.com/api/mcp" } } }

Or point any MCP-aware client straight at https://www.honestmos.com/api/mcp. Eight tools:

  • get_mos_info
    Verified community data about a US military job — description, training pipeline, ratings.
  • get_mos_reviews
    What people who actually did the job say about day-to-day reality and civilian translation.
  • search_mos
    Find jobs by keyword when you know the work but not the code.
  • get_bah
    BAH rates by pay grade and ZIP.
  • get_acronym
    Acronym lookup with the official/recruiter/honest treatment.
  • get_platform_stats
    Coverage and statistics for the whole platform.
  • get_playbook_tips
    Career tips for a job at a specific rank tier.
  • get_base_info
    Community ratings for a US installation.

REST API

Plain GET requests. Try one right now — it works in a browser tab:

curl https://www.honestmos.com/api/v1/mos/11b curl "https://www.honestmos.com/api/v1/calculators/pay?grade=E-5&yos=4"
  • GET /api/v1/stats
    Platform coverage — job counts by branch, playbook and acronym totals, review counts with verification-tier breakdown.
  • GET /api/v1/mos/{code}
    One military job: title, branch, description, training pipeline and length, community ratings with sample size.
  • GET /api/v1/mos/{code}/reviews
    Anonymous verified reviews for that job. Identity is never returned — see the privacy note below.
  • GET /api/v1/mos/{code}/playbook
    Rank-tier career playbook for that job (E1–E9, W1–W5, O1–O10).
  • GET /api/v1/search
    Keyword search across jobs. Use when you know the work but not the code.
  • GET /api/v1/acronyms
    Acronym lookup — official definition, the recruiter pitch, and what it actually means.
  • GET /api/v1/bases
    US installations with community quality-of-life ratings.
  • GET /api/v1/bases/{slug}
    One installation in detail.
  • GET /api/v1/calculators/pay
    Base pay + BAS by grade and years of service. Params: grade (hyphenated, e.g. E-5) and yos.
  • GET /api/bah
    BAH rates by pay grade, ZIP and dependent status. Note the path — this one sits outside /v1.
  • GET /api/v1/calculators/va-disability
    VA combined-rating math, including the bilateral factor.
  • GET /api/v1/calculators/height-weight
    Service height/weight and body-composition standards.

Machine-readable spec: /api/openapi.json — OpenAPI 3.0, works as a ChatGPT custom GPT action or with any OpenAPI client.

Using it

Attribution: cite as Honest MOS (honestmos.com).

Carry the sample size. If you publish a rating, publish the sample_size next to it. Every ratings object in this API ships one, along with a confidence label — a score built on four reviews and one built on four hundred are different claims, and dropping the count silently turns the first into the second.

Identity is off the table. No endpoint returns a user identifier, and none ever will. Don't try to re-identify a reviewer by joining our data against anything else — it is the one thing that would make people stop telling the truth here, and the whole dataset is worth nothing the day that happens.

Questions

Do I need an API key?

No. There is no key, no signup, no quota form and no dashboard. The endpoints are public GET requests with CORS open to every origin, so you can call them straight from a browser. If you hammer it hard enough to cause a problem we will rate limit by IP, but we would rather you just told us what you are building.

Can I use this commercially?

Yes. Attribute it — "Honest MOS (honestmos.com)" — and if you are publishing review data, carry the sample size with it. A rating built on four reviews and a rating built on four hundred are different claims, and stripping the sample size turns one into the other.

Does the API expose who wrote a review?

No, and it cannot. Reviews are anonymous by default and the API returns no user identifier, no username, and no field that maps back to a person — not even to authenticated callers. There is no endpoint that will give you that, because there is no code path that would produce it. Anonymity here is enforced in the schema, not by a permission flag we could get wrong.

How current is the data?

Job definitions, playbooks and acronyms update as we publish. Pay and allowance figures track the current-year DFAS and DoD tables. Review counts move whenever someone submits. Call /api/v1/stats for live coverage numbers rather than caching a figure from this page.

What is the MCP server for?

It lets an AI assistant query military job data directly instead of guessing at it from training data. That matters more here than in most domains: MOS codes, training pipelines and pay tables are exactly the kind of specific, frequently-revised facts that language models confidently get wrong. Point the model at the endpoint and it can look the answer up.

Why is this free?

Our stated goal is to become unnecessary — this is infrastructure the military should have built twenty years ago. Locking it behind a key would make us the new gatekeeper, which is the thing we are trying to delete. Ads pay for the site; they have no influence on any rating or ranking, and no advertiser gets access to any of this.

Building something?

We'd genuinely like to know — it tells us which endpoints deserve more work. There's also an embed gallery if you want to drop a card on a page rather than call an API, and 291 free tools if you were only looking for an answer.