{"openapi":"3.1.0","info":{"title":"Allowances API","description":"\nAllowances API provides normalized, versioned access to U.S. Government travel per diem and overseas allowance rates from:\n\n- **GSA (CONUS)** per diem rates\n- **DTMO (DoD OCONUS)** per diem rates\n- **DSSR (State Dept.)** per diem rates and foreign allowances (e.g., COLA, hardship, LQA, danger pay, education)\n\n## Authentication\n\nYou need to include the `X-API-Key:<your api key>` header in all your requests.<br/>\nIf you don´t, the API endpoint will return a 401 Unauthorized error.\n\n## Dates and effective rates\n\nMany endpoints accept a `date` query parameter to return the rate **effective for a specific day**.\nAccepted formats: `YYYY-MM-DD` or `YYYYMMDD`.\n\n## Response shape\n\nResponses are returned as JSON with consistent field names across sources whenever possible.\n\n## Errors and request IDs\nErrors use a standardized JSON format and include a `request_id`. Every response includes an `X-Request-ID` header generated by the server.\n\n_Not affiliated with any government agency. Data is sourced from official public tables._\n","version":"v1.0.0"},"servers":[{"url":"https://api.allowancesapi.com"}],"paths":{"/v1/dssr/allowances/{country_iso_code}":{"get":{"tags":["DSSR"],"summary":"DSSR Allowances by country","operationId":"get_allowances","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"country_iso_code","in":"path","required":true,"schema":{"type":"string","description":"A country alpha-2 ISO Code, letters only, two characters.","examples":["BE","JP","KE"],"title":"Country Iso Code"}},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Specific date in YYYY-MM-DD format","examples":["2025-10-01","2022-01-31"],"title":"Date"},"description":"Specific date in YYYY-MM-DD format"},{"name":"type","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"title":"Allowance type","description":"Filter returned allowances. Unknown values are ignored.<br/>If not specified, all allowances are returned.<br/>Canonical values: cola, hardship, lqa, danger_pay, education, perdiem.<br/>Aliases accepted: cost_of_living, cost-of-living, danger, danger-pay, livingquarters.","examples":[["cost_of_living","hardship"],["cola","danger_pay"],["education"]],"enum":["cola","hardship","lqa","danger_pay","education"]},"description":"Filter returned allowances. Unknown values are ignored.<br/>If not specified, all allowances are returned.<br/>Canonical values: cola, hardship, lqa, danger_pay, education, perdiem.<br/>Aliases accepted: cost_of_living, cost-of-living, danger, danger-pay, livingquarters."},{"name":"include","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"title":"Include optional fields","description":"Include optional fields. Unknown values are ignored.Accepted values = verification_url."},"description":"Include optional fields. Unknown values are ignored.Accepted values = verification_url."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DSSRAllowancesResponse"}}}},"400":{"description":"Bad Request","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"invalid_request","message":"The request parameters are invalid.","request_id":"req_abc123def456","status_code":400}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"401":{"description":"Unauthorized — Missing or invalid API key.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"unauthorized","message":"Missing or invalid API key.","request_id":"req_abc123def456","status_code":401}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"403":{"description":"Forbidden — Insufficient permissions.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"forbidden","message":"You do not have permission to access this resource.","request_id":"req_abc123def456","status_code":403}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"404":{"description":"Not Found","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_abc123def456","status_code":404}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"422":{"description":"Validation Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"validation_error","message":"Request validation failed.","request_id":"req_abc123def456","errors":[{"field":"date","message":"Invalid date format. Use YYYY-MM-DD.","type":"value_error"}],"status_code":422}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"429":{"description":"Too Many Requests — Rate limit exceeded.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"rate_limited","message":"Rate limit exceeded. Try again later.","request_id":"req_abc123def456","status_code":429}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"internal_error","message":"An unexpected server error occurred.","request_id":"req_abc123def456","status_code":500}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}}}}},"/v1/dssr/allowances/{country_iso_code}/location/{post_code}":{"get":{"tags":["DSSR"],"summary":"DSSR Allowances by location post_code","operationId":"get_allowances","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"post_code","in":"path","required":true,"schema":{"type":"integer","maximum":99999,"minimum":10000,"title":"DSSR post code","description":"5-digit DSSR post code (no zero-padding), e.g. 12077","examples":[12077]},"description":"5-digit DSSR post code (no zero-padding), e.g. 12077"},{"name":"country_iso_code","in":"path","required":true,"schema":{"type":"string","description":"A country alpha-2 ISO Code, letters only, two characters.","examples":["BE","JP","KE"],"title":"Country Iso Code"}},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Specific date in YYYY-MM-DD format","examples":["2025-10-01","2022-01-31"],"title":"Date"},"description":"Specific date in YYYY-MM-DD format"},{"name":"type","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"title":"Allowance type","description":"Filter returned allowances. Unknown values are ignored.<br/>If not specified, all allowances are returned.<br/>Canonical values: cola, hardship, lqa, danger_pay, education, perdiem.<br/>Aliases accepted: cost_of_living, cost-of-living, danger, danger-pay, livingquarters.","examples":[["cost_of_living","hardship"],["cola","danger_pay"],["education"]],"enum":["cola","hardship","lqa","danger_pay","education"]},"description":"Filter returned allowances. Unknown values are ignored.<br/>If not specified, all allowances are returned.<br/>Canonical values: cola, hardship, lqa, danger_pay, education, perdiem.<br/>Aliases accepted: cost_of_living, cost-of-living, danger, danger-pay, livingquarters."},{"name":"include","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"title":"Include optional fields","description":"Include optional fields. Unknown values are ignored.Accepted values = verification_url."},"description":"Include optional fields. Unknown values are ignored.Accepted values = verification_url."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DSSRAllowancesResponse"}}}},"400":{"description":"Bad Request","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"invalid_request","message":"The request parameters are invalid.","request_id":"req_abc123def456","status_code":400}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"401":{"description":"Unauthorized — Missing or invalid API key.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"unauthorized","message":"Missing or invalid API key.","request_id":"req_abc123def456","status_code":401}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"403":{"description":"Forbidden — Insufficient permissions.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"forbidden","message":"You do not have permission to access this resource.","request_id":"req_abc123def456","status_code":403}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"404":{"description":"Not Found","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_abc123def456","status_code":404}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"422":{"description":"Validation Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"validation_error","message":"Request validation failed.","request_id":"req_abc123def456","errors":[{"field":"date","message":"Invalid date format. Use YYYY-MM-DD.","type":"value_error"}],"status_code":422}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"429":{"description":"Too Many Requests — Rate limit exceeded.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"rate_limited","message":"Rate limit exceeded. Try again later.","request_id":"req_abc123def456","status_code":429}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"internal_error","message":"An unexpected server error occurred.","request_id":"req_abc123def456","status_code":500}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}}}}},"/v1/dssr/perdiem/{country_iso_code}":{"get":{"tags":["DSSR"],"summary":"DSSR perdiem by country","operationId":"get_perdiem_allowance","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"country_iso_code","in":"path","required":true,"schema":{"type":"string","description":"A country alpha-2 ISO Code, letters only, two characters.","examples":["BE","JP","KE"],"title":"Country Iso Code"}},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Specific date in YYYY-MM-DD format","examples":["2025-10-01","2022-01-31"]},{"type":"null"}],"title":"Date"}},{"name":"include","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"title":"Include optional fields","description":"Include optional fields. Unknown values are ignored.Accepted values = verification_url."},"description":"Include optional fields. Unknown values are ignored.Accepted values = verification_url."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DSSRPerDiemResponse"}}}},"400":{"description":"Bad Request","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"invalid_request","message":"The request parameters are invalid.","request_id":"req_abc123def456","status_code":400}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"401":{"description":"Unauthorized — Missing or invalid API key.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"unauthorized","message":"Missing or invalid API key.","request_id":"req_abc123def456","status_code":401}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"403":{"description":"Forbidden — Insufficient permissions.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"forbidden","message":"You do not have permission to access this resource.","request_id":"req_abc123def456","status_code":403}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"404":{"description":"Not Found","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_abc123def456","status_code":404}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"422":{"description":"Validation Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"validation_error","message":"Request validation failed.","request_id":"req_abc123def456","errors":[{"field":"date","message":"Invalid date format. Use YYYY-MM-DD.","type":"value_error"}],"status_code":422}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"429":{"description":"Too Many Requests — Rate limit exceeded.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"rate_limited","message":"Rate limit exceeded. Try again later.","request_id":"req_abc123def456","status_code":429}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"internal_error","message":"An unexpected server error occurred.","request_id":"req_abc123def456","status_code":500}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}}}}},"/v1/dssr/perdiem/{country_iso_code}/location/{post_code}":{"get":{"tags":["DSSR"],"summary":"DSSR perdiem by location post_code","operationId":"get_perdiem_allowance","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"post_code","in":"path","required":true,"schema":{"type":"integer","maximum":99999,"minimum":10000,"title":"DSSR post code","description":"5-digit DSSR post code (no zero-padding), e.g. 12077","examples":[12077]},"description":"5-digit DSSR post code (no zero-padding), e.g. 12077"},{"name":"country_iso_code","in":"path","required":true,"schema":{"type":"string","description":"A country alpha-2 ISO Code, letters only, two characters.","examples":["BE","JP","KE"],"title":"Country Iso Code"}},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Specific date in YYYY-MM-DD format","examples":["2025-10-01","2022-01-31"]},{"type":"null"}],"title":"Date"}},{"name":"include","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"title":"Include optional fields","description":"Include optional fields. Unknown values are ignored.Accepted values = verification_url."},"description":"Include optional fields. Unknown values are ignored.Accepted values = verification_url."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DSSRPerDiemResponse"}}}},"400":{"description":"Bad Request","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"invalid_request","message":"The request parameters are invalid.","request_id":"req_abc123def456","status_code":400}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"401":{"description":"Unauthorized — Missing or invalid API key.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"unauthorized","message":"Missing or invalid API key.","request_id":"req_abc123def456","status_code":401}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"403":{"description":"Forbidden — Insufficient permissions.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"forbidden","message":"You do not have permission to access this resource.","request_id":"req_abc123def456","status_code":403}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"404":{"description":"Not Found","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_abc123def456","status_code":404}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"422":{"description":"Validation Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"validation_error","message":"Request validation failed.","request_id":"req_abc123def456","errors":[{"field":"date","message":"Invalid date format. Use YYYY-MM-DD.","type":"value_error"}],"status_code":422}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"429":{"description":"Too Many Requests — Rate limit exceeded.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"rate_limited","message":"Rate limit exceeded. Try again later.","request_id":"req_abc123def456","status_code":429}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"internal_error","message":"An unexpected server error occurred.","request_id":"req_abc123def456","status_code":500}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}}}}},"/v1/dssr/locations":{"get":{"tags":["DSSR"],"summary":"List DSSR Locations","description":"Return all DSSR locations, can be filtered by q=<name>","operationId":"get_dssr_locations","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":2},{"type":"null"}],"description":"Search by name","title":"Q"},"description":"Search by name"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":20,"default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LocationRead"},"title":"Response Get Dssr Locations V1 Dssr Locations Get"}}}},"400":{"description":"Bad Request","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"invalid_request","message":"The request parameters are invalid.","request_id":"req_abc123def456","status_code":400}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"401":{"description":"Unauthorized — Missing or invalid API key.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"unauthorized","message":"Missing or invalid API key.","request_id":"req_abc123def456","status_code":401}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"403":{"description":"Forbidden — Insufficient permissions.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"forbidden","message":"You do not have permission to access this resource.","request_id":"req_abc123def456","status_code":403}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"404":{"description":"Not Found","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_abc123def456","status_code":404}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"422":{"description":"Validation Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"validation_error","message":"Request validation failed.","request_id":"req_abc123def456","errors":[{"field":"date","message":"Invalid date format. Use YYYY-MM-DD.","type":"value_error"}],"status_code":422}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"429":{"description":"Too Many Requests — Rate limit exceeded.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"rate_limited","message":"Rate limit exceeded. Try again later.","request_id":"req_abc123def456","status_code":429}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"internal_error","message":"An unexpected server error occurred.","request_id":"req_abc123def456","status_code":500}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}}}}},"/v1/dssr/countries":{"get":{"tags":["DSSR"],"summary":"Get Countries","operationId":"get_countries","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":2},{"type":"null"}],"description":"Search by country name","title":"Q"},"description":"Search by country name"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CountryResponse"},"title":"Response Get Countries V1 Dssr Countries Get"}}}},"400":{"description":"Bad Request","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"invalid_request","message":"The request parameters are invalid.","request_id":"req_abc123def456","status_code":400}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"401":{"description":"Unauthorized — Missing or invalid API key.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"unauthorized","message":"Missing or invalid API key.","request_id":"req_abc123def456","status_code":401}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"403":{"description":"Forbidden — Insufficient permissions.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"forbidden","message":"You do not have permission to access this resource.","request_id":"req_abc123def456","status_code":403}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"404":{"description":"Not Found","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_abc123def456","status_code":404}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"422":{"description":"Validation Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"validation_error","message":"Request validation failed.","request_id":"req_abc123def456","errors":[{"field":"date","message":"Invalid date format. Use YYYY-MM-DD.","type":"value_error"}],"status_code":422}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"429":{"description":"Too Many Requests — Rate limit exceeded.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"rate_limited","message":"Rate limit exceeded. Try again later.","request_id":"req_abc123def456","status_code":429}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"internal_error","message":"An unexpected server error occurred.","request_id":"req_abc123def456","status_code":500}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}}}}},"/v1/dssr/country/{country_iso_code}":{"get":{"tags":["DSSR"],"summary":"Get country by ISO code","operationId":"get_country","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"country_iso_code","in":"path","required":true,"schema":{"type":"string","description":"A country alpha-2 ISO Code, letters only, two characters.","examples":["BE","JP","KE"],"title":"Country Iso Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CountryResponse"}}}},"400":{"description":"Bad Request","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"invalid_request","message":"The request parameters are invalid.","request_id":"req_abc123def456","status_code":400}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"401":{"description":"Unauthorized — Missing or invalid API key.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"unauthorized","message":"Missing or invalid API key.","request_id":"req_abc123def456","status_code":401}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"403":{"description":"Forbidden — Insufficient permissions.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"forbidden","message":"You do not have permission to access this resource.","request_id":"req_abc123def456","status_code":403}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"404":{"description":"Not Found","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_abc123def456","status_code":404}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"422":{"description":"Validation Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"validation_error","message":"Request validation failed.","request_id":"req_abc123def456","errors":[{"field":"date","message":"Invalid date format. Use YYYY-MM-DD.","type":"value_error"}],"status_code":422}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"429":{"description":"Too Many Requests — Rate limit exceeded.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"rate_limited","message":"Rate limit exceeded. Try again later.","request_id":"req_abc123def456","status_code":429}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"internal_error","message":"An unexpected server error occurred.","request_id":"req_abc123def456","status_code":500}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}}}}},"/v1/dssr/country/{country_iso_code}/locations":{"get":{"tags":["DSSR"],"summary":"Get DSSR Locations by Country","description":"Return all DSSR locations for a specific country using its ISO alpha-2 code (e.g., 'AF', 'DE')","operationId":"get_dssr_locations_by_country","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"country_iso_code","in":"path","required":true,"schema":{"type":"string","description":"A country alpha-2 ISO Code, letters only, two characters.","examples":["BE","JP","KE"],"title":"Country Iso Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CountryResponseWithLocations"}}}},"400":{"description":"Bad Request","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"invalid_request","message":"The request parameters are invalid.","request_id":"req_abc123def456","status_code":400}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"401":{"description":"Unauthorized — Missing or invalid API key.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"unauthorized","message":"Missing or invalid API key.","request_id":"req_abc123def456","status_code":401}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"403":{"description":"Forbidden — Insufficient permissions.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"forbidden","message":"You do not have permission to access this resource.","request_id":"req_abc123def456","status_code":403}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"404":{"description":"Not Found","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_abc123def456","status_code":404}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"422":{"description":"Validation Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"validation_error","message":"Request validation failed.","request_id":"req_abc123def456","errors":[{"field":"date","message":"Invalid date format. Use YYYY-MM-DD.","type":"value_error"}],"status_code":422}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"429":{"description":"Too Many Requests — Rate limit exceeded.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"rate_limited","message":"Rate limit exceeded. Try again later.","request_id":"req_abc123def456","status_code":429}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"internal_error","message":"An unexpected server error occurred.","request_id":"req_abc123def456","status_code":500}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}}}}},"/v1/gsa/perdiem/destination/{destination_id}":{"get":{"tags":["GSA"],"summary":"GSA perdiem by destination","operationId":"get_gsa_perdiem_by_destination","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"destination_id","in":"path","required":true,"schema":{"type":"integer","description":"Unique destination_id from GSA. The complete list can be acccessed using the /destinations endpoint. The id '0' corresponds to the Standard Conus Rate.","examples":["0","2","246"],"title":"Destination Id"},"description":"Unique destination_id from GSA. The complete list can be acccessed using the /destinations endpoint. The id '0' corresponds to the Standard Conus Rate."},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Specific date in YYYY-MM-DD format","examples":["2025-10-01","2022-01-31"],"title":"Date"},"description":"Specific date in YYYY-MM-DD format"},{"name":"include","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"title":"Include optional fields","description":"Include optional fields. Unknown values are ignored.Accepted values = verification_url."},"description":"Include optional fields. Unknown values are ignored.Accepted values = verification_url."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GSAPerDiemResponse"}}}},"400":{"description":"Bad Request","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"invalid_request","message":"The request parameters are invalid.","request_id":"req_abc123def456","status_code":400}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"401":{"description":"Unauthorized — Missing or invalid API key.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"unauthorized","message":"Missing or invalid API key.","request_id":"req_abc123def456","status_code":401}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"403":{"description":"Forbidden — Insufficient permissions.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"forbidden","message":"You do not have permission to access this resource.","request_id":"req_abc123def456","status_code":403}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"404":{"description":"Not Found","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_abc123def456","status_code":404}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"422":{"description":"Validation Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"validation_error","message":"Request validation failed.","request_id":"req_abc123def456","errors":[{"field":"date","message":"Invalid date format. Use YYYY-MM-DD.","type":"value_error"}],"status_code":422}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"429":{"description":"Too Many Requests — Rate limit exceeded.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"rate_limited","message":"Rate limit exceeded. Try again later.","request_id":"req_abc123def456","status_code":429}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"internal_error","message":"An unexpected server error occurred.","request_id":"req_abc123def456","status_code":500}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}}}}},"/v1/gsa/perdiem/state/{state_iso}":{"get":{"tags":["GSA"],"summary":"GSA perdiem by state","operationId":"get_gsa_perdiem_by_state","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"state_iso","in":"path","required":true,"schema":{"type":"string","description":"US state ISO code, 2 digits","examples":["CO","VA"],"title":"State Iso"}},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Specific date in YYYY-MM-DD format","examples":["2025-10-01","2022-01-31"],"title":"Date"},"description":"Specific date in YYYY-MM-DD format"},{"name":"location","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by location name","examples":["Austin","New York City"],"title":"Location"},"description":"Filter by location name"},{"name":"include","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"title":"Include optional fields","description":"Include optional fields. Unknown values are ignored.Accepted values = verification_url."},"description":"Include optional fields. Unknown values are ignored.Accepted values = verification_url."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GSAPerDiemResponse"}}}},"400":{"description":"Bad Request","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"invalid_request","message":"The request parameters are invalid.","request_id":"req_abc123def456","status_code":400}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"401":{"description":"Unauthorized — Missing or invalid API key.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"unauthorized","message":"Missing or invalid API key.","request_id":"req_abc123def456","status_code":401}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"403":{"description":"Forbidden — Insufficient permissions.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"forbidden","message":"You do not have permission to access this resource.","request_id":"req_abc123def456","status_code":403}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"404":{"description":"Not Found","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_abc123def456","status_code":404}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"422":{"description":"Validation Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"validation_error","message":"Request validation failed.","request_id":"req_abc123def456","errors":[{"field":"date","message":"Invalid date format. Use YYYY-MM-DD.","type":"value_error"}],"status_code":422}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"429":{"description":"Too Many Requests — Rate limit exceeded.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"rate_limited","message":"Rate limit exceeded. Try again later.","request_id":"req_abc123def456","status_code":429}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"internal_error","message":"An unexpected server error occurred.","request_id":"req_abc123def456","status_code":500}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}}}}},"/v1/gsa/perdiem/zipcode/{zipcode}":{"get":{"tags":["GSA"],"summary":"GSA perdiem by zipcode","operationId":"get_gsa_perdiem_by_zipcode","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"zipcode","in":"path","required":true,"schema":{"type":"string","description":"US ZIP (12345) or ZIP+4 (12345-6789)","examples":["90210","22102-1234"],"title":"Zipcode"}},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Specific date in YYYY-MM-DD format","examples":["2025-10-01","2022-01-31"],"title":"Date"},"description":"Specific date in YYYY-MM-DD format"},{"name":"include","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"title":"Include optional fields","description":"Include optional fields. Unknown values are ignored.Accepted values = verification_url."},"description":"Include optional fields. Unknown values are ignored.Accepted values = verification_url."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GSAPerDiemResponse"}}}},"400":{"description":"Bad Request","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"invalid_request","message":"The request parameters are invalid.","request_id":"req_abc123def456","status_code":400}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"401":{"description":"Unauthorized — Missing or invalid API key.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"unauthorized","message":"Missing or invalid API key.","request_id":"req_abc123def456","status_code":401}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"403":{"description":"Forbidden — Insufficient permissions.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"forbidden","message":"You do not have permission to access this resource.","request_id":"req_abc123def456","status_code":403}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"404":{"description":"Not Found","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_abc123def456","status_code":404}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"422":{"description":"Validation Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"validation_error","message":"Request validation failed.","request_id":"req_abc123def456","errors":[{"field":"date","message":"Invalid date format. Use YYYY-MM-DD.","type":"value_error"}],"status_code":422}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"429":{"description":"Too Many Requests — Rate limit exceeded.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"rate_limited","message":"Rate limit exceeded. Try again later.","request_id":"req_abc123def456","status_code":429}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"internal_error","message":"An unexpected server error occurred.","request_id":"req_abc123def456","status_code":500}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}}}}},"/v1/gsa/zipcode/{zipcode}":{"get":{"tags":["GSA"],"summary":"Get single zipcode","operationId":"get_zipcode","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"zipcode","in":"path","required":true,"schema":{"type":"string","description":"US ZIP (12345) or ZIP+4 (12345-6789)","examples":["90210","22102-1234"],"title":"Zipcode"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ZipCodeRead"}}}},"400":{"description":"Bad Request","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"invalid_request","message":"The request parameters are invalid.","request_id":"req_abc123def456","status_code":400}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"401":{"description":"Unauthorized — Missing or invalid API key.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"unauthorized","message":"Missing or invalid API key.","request_id":"req_abc123def456","status_code":401}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"403":{"description":"Forbidden — Insufficient permissions.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"forbidden","message":"You do not have permission to access this resource.","request_id":"req_abc123def456","status_code":403}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"404":{"description":"Not Found","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_abc123def456","status_code":404}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"422":{"description":"Validation Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"validation_error","message":"Request validation failed.","request_id":"req_abc123def456","errors":[{"field":"date","message":"Invalid date format. Use YYYY-MM-DD.","type":"value_error"}],"status_code":422}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"429":{"description":"Too Many Requests — Rate limit exceeded.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"rate_limited","message":"Rate limit exceeded. Try again later.","request_id":"req_abc123def456","status_code":429}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"internal_error","message":"An unexpected server error occurred.","request_id":"req_abc123def456","status_code":500}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}}}}},"/v1/gsa/counties":{"get":{"tags":["GSA"],"summary":"Get US counties","operationId":"get_us_counties","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":2},{"type":"null"}],"description":"Search by county name","title":"Q"},"description":"Search by county name"},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":2,"maxLength":2},{"type":"null"}],"description":"Filter by state in two digits ISO format","title":"State"},"description":"Filter by state in two digits ISO format","example":"MA"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/USCountyRead"},"title":"Response Get Us Counties V1 Gsa Counties Get"}}}},"400":{"description":"Bad Request","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"invalid_request","message":"The request parameters are invalid.","request_id":"req_abc123def456","status_code":400}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"401":{"description":"Unauthorized — Missing or invalid API key.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"unauthorized","message":"Missing or invalid API key.","request_id":"req_abc123def456","status_code":401}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"403":{"description":"Forbidden — Insufficient permissions.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"forbidden","message":"You do not have permission to access this resource.","request_id":"req_abc123def456","status_code":403}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"404":{"description":"Not Found","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_abc123def456","status_code":404}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"422":{"description":"Validation Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"validation_error","message":"Request validation failed.","request_id":"req_abc123def456","errors":[{"field":"date","message":"Invalid date format. Use YYYY-MM-DD.","type":"value_error"}],"status_code":422}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"429":{"description":"Too Many Requests — Rate limit exceeded.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"rate_limited","message":"Rate limit exceeded. Try again later.","request_id":"req_abc123def456","status_code":429}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"internal_error","message":"An unexpected server error occurred.","request_id":"req_abc123def456","status_code":500}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}}}}},"/v1/gsa/destination/{destination_id}":{"get":{"tags":["GSA"],"summary":"Get GSA destination by ID","operationId":"get_destination_by_id","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"destination_id","in":"path","required":true,"schema":{"type":"integer","title":"Destination Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GSADestinationResponse"}}}},"400":{"description":"Bad Request","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"invalid_request","message":"The request parameters are invalid.","request_id":"req_abc123def456","status_code":400}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"401":{"description":"Unauthorized — Missing or invalid API key.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"unauthorized","message":"Missing or invalid API key.","request_id":"req_abc123def456","status_code":401}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"403":{"description":"Forbidden — Insufficient permissions.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"forbidden","message":"You do not have permission to access this resource.","request_id":"req_abc123def456","status_code":403}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"404":{"description":"Not Found","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_abc123def456","status_code":404}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"422":{"description":"Validation Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"validation_error","message":"Request validation failed.","request_id":"req_abc123def456","errors":[{"field":"date","message":"Invalid date format. Use YYYY-MM-DD.","type":"value_error"}],"status_code":422}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"429":{"description":"Too Many Requests — Rate limit exceeded.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"rate_limited","message":"Rate limit exceeded. Try again later.","request_id":"req_abc123def456","status_code":429}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"internal_error","message":"An unexpected server error occurred.","request_id":"req_abc123def456","status_code":500}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}}}}},"/v1/gsa/destinations":{"get":{"tags":["GSA"],"summary":"Get Destinations","operationId":"get_destinations","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GSADestinationResponse"},"title":"Response Get Destinations V1 Gsa Destinations Get"}}}},"400":{"description":"Bad Request","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"invalid_request","message":"The request parameters are invalid.","request_id":"req_abc123def456","status_code":400}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"401":{"description":"Unauthorized — Missing or invalid API key.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"unauthorized","message":"Missing or invalid API key.","request_id":"req_abc123def456","status_code":401}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"403":{"description":"Forbidden — Insufficient permissions.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"forbidden","message":"You do not have permission to access this resource.","request_id":"req_abc123def456","status_code":403}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"404":{"description":"Not Found","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_abc123def456","status_code":404}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"422":{"description":"Validation Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"validation_error","message":"Request validation failed.","request_id":"req_abc123def456","errors":[{"field":"date","message":"Invalid date format. Use YYYY-MM-DD.","type":"value_error"}],"status_code":422}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"429":{"description":"Too Many Requests — Rate limit exceeded.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"rate_limited","message":"Rate limit exceeded. Try again later.","request_id":"req_abc123def456","status_code":429}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"internal_error","message":"An unexpected server error occurred.","request_id":"req_abc123def456","status_code":500}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}}}}},"/v1/gsa/states":{"get":{"tags":["GSA"],"summary":"Get States","operationId":"get_states","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/GSAStateResponse"},"type":"array","title":"Response Get States V1 Gsa States Get"}}}},"400":{"description":"Bad Request","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIErrorResponse"},"example":{"detail":{"code":"invalid_request","message":"The request parameters are invalid.","request_id":"req_abc123def456","status_code":400}}}}},"401":{"description":"Unauthorized — Missing or invalid API key.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIErrorResponse"},"example":{"detail":{"code":"unauthorized","message":"Missing or invalid API key.","request_id":"req_abc123def456","status_code":401}}}}},"403":{"description":"Forbidden — Insufficient permissions.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIErrorResponse"},"example":{"detail":{"code":"forbidden","message":"You do not have permission to access this resource.","request_id":"req_abc123def456","status_code":403}}}}},"404":{"description":"Not Found","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIErrorResponse"},"example":{"detail":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_abc123def456","status_code":404}}}}},"422":{"description":"Validation Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIErrorResponse"},"example":{"detail":{"code":"validation_error","message":"Request validation failed.","request_id":"req_abc123def456","errors":[{"field":"date","message":"Invalid date format. Use YYYY-MM-DD.","type":"value_error"}],"status_code":422}}}}},"429":{"description":"Too Many Requests — Rate limit exceeded.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIErrorResponse"},"example":{"detail":{"code":"rate_limited","message":"Rate limit exceeded. Try again later.","request_id":"req_abc123def456","status_code":429}}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIErrorResponse"},"example":{"detail":{"code":"internal_error","message":"An unexpected server error occurred.","request_id":"req_abc123def456","status_code":500}}}}}},"security":[{"APIKeyHeader":[]}]}},"/v1/dtmo/perdiem/conus/{state_iso}":{"get":{"tags":["DTMO"],"summary":"Get perdiem CONUS","operationId":"get_dtmo_perdiem_conus","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"state_iso","in":"path","required":true,"schema":{"type":"string","description":"US State ISO Code, format US-XX","examples":["US-AL","US-CA"],"title":"State Iso"}},{"name":"date","in":"query","required":false,"schema":{"type":"string","format":"date","title":"Date"}},{"name":"year","in":"query","required":false,"schema":{"type":"integer","description":"A fiscal year starts Oct 1st, ends Sep 30th","examples":["2025","2022"],"title":"Year"}},{"name":"include","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"title":"Include optional fields","description":"Include optional fields. Unknown values are ignored.Accepted values = verification_url."},"description":"Include optional fields. Unknown values are ignored.Accepted values = verification_url."},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"minLength":3,"description":"Search by location name or state/country name","title":"Q"},"description":"Search by location name or state/country name"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerDiemDTMOResponse"}}}},"400":{"description":"Bad Request","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"invalid_request","message":"The request parameters are invalid.","request_id":"req_abc123def456","status_code":400}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"401":{"description":"Unauthorized — Missing or invalid API key.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"unauthorized","message":"Missing or invalid API key.","request_id":"req_abc123def456","status_code":401}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"403":{"description":"Forbidden — Insufficient permissions.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"forbidden","message":"You do not have permission to access this resource.","request_id":"req_abc123def456","status_code":403}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"404":{"description":"Not Found","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_abc123def456","status_code":404}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"422":{"description":"Validation Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"validation_error","message":"Request validation failed.","request_id":"req_abc123def456","errors":[{"field":"date","message":"Invalid date format. Use YYYY-MM-DD.","type":"value_error"}],"status_code":422}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"429":{"description":"Too Many Requests — Rate limit exceeded.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"rate_limited","message":"Rate limit exceeded. Try again later.","request_id":"req_abc123def456","status_code":429}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"internal_error","message":"An unexpected server error occurred.","request_id":"req_abc123def456","status_code":500}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}}}}},"/v1/dtmo/perdiem/oconus/{oconus_iso_code}":{"get":{"tags":["DTMO"],"summary":"Get perdiem OCONUS","operationId":"get_dtmo_perdiem_oconus","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"oconus_iso_code","in":"path","required":true,"schema":{"type":"string","description":"ISO Alpha-2 or OCONUS State code","examples":["US-AK","BE"],"title":"Oconus Iso Code"}},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Specific date in YYYY-MM-DD format","examples":["2025-10-01","2022-01-31"],"title":"Date"},"description":"Specific date in YYYY-MM-DD format"},{"name":"year","in":"query","required":false,"schema":{"type":"integer","description":"A fiscal year starts Oct 1st, ends Sep 30th","examples":["2025","2022"],"title":"Year"}},{"name":"include","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"title":"Include optional fields","description":"Include optional fields. Unknown values are ignored.Accepted values = verification_url."},"description":"Include optional fields. Unknown values are ignored.Accepted values = verification_url."},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"minLength":3,"description":"Search by location name or state/country name","title":"Q"},"description":"Search by location name or state/country name"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerDiemDTMOResponse"}}}},"400":{"description":"Bad Request","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"invalid_request","message":"The request parameters are invalid.","request_id":"req_abc123def456","status_code":400}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"401":{"description":"Unauthorized — Missing or invalid API key.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"unauthorized","message":"Missing or invalid API key.","request_id":"req_abc123def456","status_code":401}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"403":{"description":"Forbidden — Insufficient permissions.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"forbidden","message":"You do not have permission to access this resource.","request_id":"req_abc123def456","status_code":403}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"404":{"description":"Not Found","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_abc123def456","status_code":404}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"422":{"description":"Validation Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"validation_error","message":"Request validation failed.","request_id":"req_abc123def456","errors":[{"field":"date","message":"Invalid date format. Use YYYY-MM-DD.","type":"value_error"}],"status_code":422}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"429":{"description":"Too Many Requests — Rate limit exceeded.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"rate_limited","message":"Rate limit exceeded. Try again later.","request_id":"req_abc123def456","status_code":429}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"internal_error","message":"An unexpected server error occurred.","request_id":"req_abc123def456","status_code":500}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}}}}},"/v1/dtmo/perdiem/search":{"get":{"tags":["DTMO"],"summary":"Search by location name","description":"Search DTMO per diems by location name (e.g., 'Kabul')\nor Region/State name (e.g., 'Afghanistan').","operationId":"search_dtmo_perdiem","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"minLength":3,"description":"Search by location name or state/country name","title":"Q"},"description":"Search by location name or state/country name"},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Specific date in YYYY-MM-DD format","examples":["2025-10-01","2022-01-31"],"title":"Date"},"description":"Specific date in YYYY-MM-DD format"},{"name":"year","in":"query","required":false,"schema":{"type":"integer","description":"A fiscal year starts Oct 1st, ends Sep 30th","examples":["2025","2022"],"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerDiemDTMOResponse"}}}},"400":{"description":"Bad Request","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"invalid_request","message":"The request parameters are invalid.","request_id":"req_abc123def456","status_code":400}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"401":{"description":"Unauthorized — Missing or invalid API key.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"unauthorized","message":"Missing or invalid API key.","request_id":"req_abc123def456","status_code":401}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"403":{"description":"Forbidden — Insufficient permissions.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"forbidden","message":"You do not have permission to access this resource.","request_id":"req_abc123def456","status_code":403}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"404":{"description":"Not Found","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_abc123def456","status_code":404}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"422":{"description":"Validation Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"validation_error","message":"Request validation failed.","request_id":"req_abc123def456","errors":[{"field":"date","message":"Invalid date format. Use YYYY-MM-DD.","type":"value_error"}],"status_code":422}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"429":{"description":"Too Many Requests — Rate limit exceeded.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"rate_limited","message":"Rate limit exceeded. Try again later.","request_id":"req_abc123def456","status_code":429}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"internal_error","message":"An unexpected server error occurred.","request_id":"req_abc123def456","status_code":500}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}}}}},"/v1/dtmo/locations/conus/{state_iso}":{"get":{"tags":["DTMO"],"summary":"Get DTMO CONUS locations","description":"Return all DTMO locations for a specific state using its US State Code (e.g., 'US-CA')","operationId":"get_dtmo_conus_locations","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"state_iso","in":"path","required":true,"schema":{"type":"string","description":"US State ISO Code, format US-XX","examples":["US-AL","US-CA"],"title":"State Iso"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DTMOConusLocationRead"},"title":"Response Get Dtmo Conus Locations V1 Dtmo Locations Conus  State Iso  Get"}}}},"400":{"description":"Bad Request","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"invalid_request","message":"The request parameters are invalid.","request_id":"req_abc123def456","status_code":400}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"401":{"description":"Unauthorized — Missing or invalid API key.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"unauthorized","message":"Missing or invalid API key.","request_id":"req_abc123def456","status_code":401}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"403":{"description":"Forbidden — Insufficient permissions.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"forbidden","message":"You do not have permission to access this resource.","request_id":"req_abc123def456","status_code":403}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"404":{"description":"Not Found","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_abc123def456","status_code":404}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"422":{"description":"Validation Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"validation_error","message":"Request validation failed.","request_id":"req_abc123def456","errors":[{"field":"date","message":"Invalid date format. Use YYYY-MM-DD.","type":"value_error"}],"status_code":422}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"429":{"description":"Too Many Requests — Rate limit exceeded.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"rate_limited","message":"Rate limit exceeded. Try again later.","request_id":"req_abc123def456","status_code":429}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"internal_error","message":"An unexpected server error occurred.","request_id":"req_abc123def456","status_code":500}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}}}}},"/v1/dtmo/locations/oconus/{country_iso_code}":{"get":{"tags":["DTMO"],"summary":"Get DTMO OCONUS locations","description":"Return all DTMO locations for a specific country using its ISO Code (e.g., 'AU', 'BE')","operationId":"get_dtmo_oconus_locations","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"country_iso_code","in":"path","required":true,"schema":{"type":"string","description":"A country alpha-2 ISO Code, letters only, two characters.","examples":["BE","JP","KE"],"title":"Country Iso Code"}},{"name":"location","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by location name","examples":["Austin","New York City"],"title":"Location"},"description":"Filter by location name"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DTMOOconusLocationRead"},"title":"Response Get Dtmo Oconus Locations V1 Dtmo Locations Oconus  Country Iso Code  Get"}}}},"400":{"description":"Bad Request","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"invalid_request","message":"The request parameters are invalid.","request_id":"req_abc123def456","status_code":400}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"401":{"description":"Unauthorized — Missing or invalid API key.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"unauthorized","message":"Missing or invalid API key.","request_id":"req_abc123def456","status_code":401}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"403":{"description":"Forbidden — Insufficient permissions.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"forbidden","message":"You do not have permission to access this resource.","request_id":"req_abc123def456","status_code":403}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"404":{"description":"Not Found","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"not_found","message":"The requested resource was not found.","request_id":"req_abc123def456","status_code":404}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"422":{"description":"Validation Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"validation_error","message":"Request validation failed.","request_id":"req_abc123def456","errors":[{"field":"date","message":"Invalid date format. Use YYYY-MM-DD.","type":"value_error"}],"status_code":422}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"429":{"description":"Too Many Requests — Rate limit exceeded.","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"rate_limited","message":"Rate limit exceeded. Try again later.","request_id":"req_abc123def456","status_code":429}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Unique identifier for this request (generated by the server).","schema":{"type":"string"}}},"content":{"application/json":{"example":{"detail":{"code":"internal_error","message":"An unexpected server error occurred.","request_id":"req_abc123def456","status_code":500}},"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}}}}}}},"components":{"schemas":{"APIErrorDetail":{"properties":{"code":{"type":"string","enum":["validation_error","unauthorized","forbidden","not_found","rate_limited","internal_error"],"title":"Code","example":"validation_error"},"message":{"type":"string","title":"Message","example":"Request validation failed."},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id","description":"Unique identifier for this request.","example":"req_a1b2c3d4e5f6"},"errors":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Errors","description":"Optional list of field-level validation errors."}},"type":"object","required":["code","message"],"title":"APIErrorDetail"},"APIErrorResponse":{"properties":{"detail":{"$ref":"#/components/schemas/APIErrorDetail"}},"type":"object","required":["detail"],"title":"APIErrorResponse"},"COLAData":{"properties":{"effective_date":{"type":"string","title":"","description":"Biweekly publication date of the DSSR rates.","example":"2026-01-11"},"post_allowance":{"type":"integer","title":"Post Allowance","description":"The annual Post Allowance (COLA) amount in USD.","example":1500}},"type":"object","required":["effective_date","post_allowance"],"title":"COLAData"},"CountryResponse":{"properties":{"name":{"type":"string","title":"","description":"The full, official name of the country recognized by the US Government.","example":"Australia"},"iso_code":{"type":"string","maxLength":2,"minLength":2,"title":"","description":"The 2-letter ISO 3166-1 alpha-2 country code.","example":"AU"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes","description":"Any special considerations regarding the country are listed in the notes."}},"type":"object","required":["name","iso_code","notes"],"title":"CountryResponse"},"CountryResponseWithLocations":{"properties":{"name":{"type":"string","title":"","description":"The full, official name of the country recognized by the US Government.","example":"Australia"},"iso_code":{"type":"string","maxLength":2,"minLength":2,"title":"","description":"The 2-letter ISO 3166-1 alpha-2 country code.","example":"AU"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes","description":"Any special considerations regarding the country are listed in the notes."},"locations":{"items":{"$ref":"#/components/schemas/NestedLocationResponse"},"type":"array","title":"Locations","default":[]}},"type":"object","required":["name","iso_code","notes"],"title":"CountryResponseWithLocations"},"DSSRAllowancesResponse":{"properties":{"effective_date":{"type":"string","title":"","description":"Biweekly publication date of the DSSR rates.","example":"2026-01-11"},"verification_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"","description":"Optional. The official U.S. Department of State URL where this data can be verified. Add include=verification_url to your query to include it.","example":"https://allowances.state.gov/Web920/search_action.asp?PostCode=10244&MenuHide=1&COLABox=1&EducationBox=1&HardshipBox=1&DangerPayBox=1&LQABox=1&PerdiemBox=1&EffectiveDate=20260308"},"results":{"items":{"$ref":"#/components/schemas/DSSRAllowancesResults"},"type":"array","title":"Results"}},"type":"object","required":["effective_date","results"],"title":"DSSRAllowancesResponse"},"DSSRAllowancesResults":{"properties":{"country":{"type":"string","title":"","description":"The full, official name of the country recognized by the US Government.","example":"Australia"},"iso_code":{"type":"string","maxLength":2,"minLength":2,"title":"","description":"The 2-letter ISO 3166-1 alpha-2 country code.","example":"AU"},"location":{"type":"string","title":"","description":"The specific city, region, or installation name recognized by the DSSR.","example":"Adelaide"},"post_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"","description":"The official DSSR Post Code identifier for this specific location.","example":"10244"},"cola":{"anyOf":[{"$ref":"#/components/schemas/COLAData"},{"type":"null"}]},"hardship":{"anyOf":[{"$ref":"#/components/schemas/HardshipData"},{"type":"null"}]},"lqa":{"anyOf":[{"$ref":"#/components/schemas/LQAData"},{"type":"null"}]},"danger_pay":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Danger Pay"},"education":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Education"},"perdiem":{"anyOf":[{"items":{"$ref":"#/components/schemas/PerDiemData"},"type":"array"},{"type":"null"}],"title":"Perdiem"}},"type":"object","required":["country","iso_code","location"],"title":"DSSRAllowancesResults"},"DSSRPerDiemResponse":{"properties":{"effective_date":{"type":"string","title":"","description":"Biweekly publication date of the DSSR rates.","example":"2026-01-11"},"verification_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"","description":"Optional. The official U.S. Department of State URL where this data can be verified. Add include=verification_url to your query to include it.","example":"https://allowances.state.gov/Web920/search_action.asp?PostCode=10244&MenuHide=1&COLABox=1&EducationBox=1&HardshipBox=1&DangerPayBox=1&LQABox=1&PerdiemBox=1&EffectiveDate=20260308"},"results":{"items":{"$ref":"#/components/schemas/DSSRPerDiemResults"},"type":"array","title":"Results"}},"type":"object","required":["effective_date","results"],"title":"DSSRPerDiemResponse"},"DSSRPerDiemResults":{"properties":{"country":{"type":"string","title":"","description":"The full, official name of the country recognized by the US Government.","example":"Australia"},"iso_code":{"type":"string","maxLength":2,"minLength":2,"title":"","description":"The 2-letter ISO 3166-1 alpha-2 country code.","example":"AU"},"location":{"type":"string","title":"","description":"The specific city, region, or installation name recognized by the DSSR.","example":"Adelaide"},"post_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"","description":"The official DSSR Post Code identifier for this specific location.","example":"10244"},"perdiem":{"anyOf":[{"items":{"$ref":"#/components/schemas/PerDiemData"},"type":"array"},{"type":"null"}],"title":"Perdiem","default":[]}},"type":"object","required":["country","iso_code","location"],"title":"DSSRPerDiemResults"},"DTMOConusLocationRead":{"properties":{"state":{"type":"string","title":"","description":"US State Name.","example":"California"},"state_iso":{"type":"string","maxLength":5,"minLength":5,"title":"","description":"The 4-letter ISO 3166-2:US state code. The first part is US, the ISO 3166-1 alpha-2 code of the United States. The second part is two letters, which is the postal abbreviation of the state, district, or outlying area.","example":"US-CA"},"county":{"type":"string","title":"County"},"name":{"type":"string","title":"","description":"The specific city, region, or installation name recognized by the DSSR.","example":"Adelaide"},"source":{"type":"string","enum":["DSSR","DTMO","GSA","dssr","dtmo","gsa"],"title":"","description":"The authoritative government source of this location and rate data.","example":"DSSR"}},"type":"object","required":["state","state_iso","county","name","source"],"title":"DTMOConusLocationRead"},"DTMOOconusLocationRead":{"properties":{"country":{"type":"string","title":"","description":"The full, official name of the country recognized by the US Government.","example":"Australia"},"country_iso_code":{"type":"string","maxLength":2,"minLength":2,"title":"","description":"The 2-letter ISO 3166-1 alpha-2 country code.","example":"AU"},"name":{"type":"string","title":"","description":"The specific city, region, or installation name recognized by the DSSR.","example":"Adelaide"},"source":{"type":"string","enum":["DSSR","DTMO","GSA","dssr","dtmo","gsa"],"title":"","description":"The authoritative government source of this location and rate data.","example":"DSSR"}},"type":"object","required":["country","country_iso_code","name","source"],"title":"DTMOOconusLocationRead"},"GSADestinationResponse":{"properties":{"destination_id":{"type":"integer","title":"Destination Id"},"name":{"type":"string","title":"Name"},"defined_name":{"type":"string","title":"Defined Name"},"county":{"type":"string","title":"County"},"state":{"type":"string","title":"","description":"US State Name.","example":"California"},"state_iso":{"type":"string","maxLength":5,"minLength":5,"title":"","description":"The 4-letter ISO 3166-2:US state code. The first part is US, the ISO 3166-1 alpha-2 code of the United States. The second part is two letters, which is the postal abbreviation of the state, district, or outlying area.","example":"US-CA"}},"type":"object","required":["destination_id","name","defined_name","county","state","state_iso"],"title":"GSADestinationResponse"},"GSAPerDiemResponse":{"properties":{"effective_date":{"type":"string","format":"date","title":"Effective Date"},"verification_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Url"},"results":{"items":{"$ref":"#/components/schemas/PerDiemGSARead"},"type":"array","title":"Results"}},"type":"object","required":["effective_date","results"],"title":"GSAPerDiemResponse"},"GSAStateResponse":{"properties":{"state":{"type":"string","title":"","description":"US State Name.","example":"California"},"state_iso":{"type":"string","maxLength":5,"minLength":5,"title":"","description":"The 4-letter ISO 3166-2:US state code. The first part is US, the ISO 3166-1 alpha-2 code of the United States. The second part is two letters, which is the postal abbreviation of the state, district, or outlying area.","example":"US-CA"}},"type":"object","required":["state","state_iso"],"title":"GSAStateResponse"},"HardshipData":{"properties":{"rate":{"type":"integer","title":"Rate","description":"Post hardship differential rate, in percentage of basic compensation.","example":10},"effective_date":{"type":"string","title":"","description":"Biweekly publication date of the DSSR rates.","example":"2026-01-11"}},"type":"object","required":["rate","effective_date"],"title":"HardshipData"},"LQAData":{"properties":{"with_family_group_2":{"type":"integer","title":"With Family Group 2"},"with_family_group_3":{"type":"integer","title":"With Family Group 3"},"with_family_group_4":{"type":"integer","title":"With Family Group 4"},"without_family_group_2":{"type":"integer","title":"Without Family Group 2"},"without_family_group_3":{"type":"integer","title":"Without Family Group 3"},"without_family_group_4":{"type":"integer","title":"Without Family Group 4"},"effective_date":{"type":"string","title":"","description":"Biweekly publication date of the DSSR rates.","example":"2026-01-11"}},"type":"object","required":["with_family_group_2","with_family_group_3","with_family_group_4","without_family_group_2","without_family_group_3","without_family_group_4","effective_date"],"title":"LQAData"},"LocationRead":{"properties":{"country":{"type":"string","title":"","description":"The full, official name of the country recognized by the US Government.","example":"Australia"},"iso_code":{"type":"string","maxLength":2,"minLength":2,"title":"","description":"The 2-letter ISO 3166-1 alpha-2 country code.","example":"AU"},"region_code":{"type":"string","title":"Region Code"},"name":{"type":"string","title":"","description":"The specific city, region, or installation name recognized by the DSSR.","example":"Adelaide"},"source":{"type":"string","enum":["DSSR","DTMO","GSA","dssr","dtmo","gsa"],"title":"","description":"The authoritative government source of this location and rate data.","example":"DSSR"}},"type":"object","required":["country","iso_code","region_code","name","source"],"title":"LocationRead"},"NestedLocationResponse":{"properties":{"name":{"type":"string","title":"","description":"The specific city, region, or installation name recognized by the DSSR.","example":"Adelaide"},"external_id":{"type":"string","title":"External Id","description":"The unique postcode id assigned by DSSR for the locations. Format is a 5 digits number passed as string. Some specials cases may have a different external_id.","example":"12450"},"source":{"type":"string","enum":["DSSR","DTMO","GSA","dssr","dtmo","gsa"],"title":"","description":"The authoritative government source of this location and rate data.","example":"DSSR"}},"type":"object","required":["name","external_id","source"],"title":"NestedLocationResponse"},"PerDiemDTMORead":{"properties":{"iso_code":{"type":"string","title":"Iso Code"},"state_country":{"type":"string","title":"State Country"},"location":{"type":"string","title":"Location"},"season_begin":{"type":"integer","title":"Season Begin"},"season_end":{"type":"integer","title":"Season End"},"lodging":{"type":"integer","title":"Lodging"},"local_meal_rate":{"type":"integer","title":"Local Meal Rate"},"proportional_meal_rate":{"type":"integer","title":"Proportional Meal Rate"},"local_incidental":{"type":"integer","title":"Local Incidental"},"footnote_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Footnote Number"},"footnote_rate":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Footnote Rate"},"maximum_perdiem":{"type":"integer","title":"Maximum Perdiem"},"effective_date":{"type":"string","format":"date","title":"Effective Date"},"fiscal_year":{"type":"integer","title":"Fiscal Year","description":"A fiscal year starts Oct 1st, ends Sep 30th","examples":["2025","2022"]},"source":{"type":"string","enum":["DSSR","DTMO","GSA","dssr","dtmo","gsa"],"title":"","description":"The authoritative government source of this location and rate data.","default":"dtmo","example":"DSSR"}},"type":"object","required":["iso_code","state_country","location","season_begin","season_end","lodging","local_meal_rate","proportional_meal_rate","local_incidental","footnote_number","footnote_rate","maximum_perdiem","effective_date","fiscal_year"],"title":"PerDiemDTMORead"},"PerDiemDTMOResponse":{"properties":{"effective_date":{"type":"string","format":"date","title":"Effective Date"},"verification_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Url"},"results":{"items":{"$ref":"#/components/schemas/PerDiemDTMORead"},"type":"array","title":"Results"}},"type":"object","required":["effective_date","results"],"title":"PerDiemDTMOResponse"},"PerDiemData":{"properties":{"lodging":{"type":"integer","title":"Lodging","description":"The maximum lodging allowance in USD per day.","example":250},"meals_incidental":{"type":"integer","title":"Meals Incidental","description":"The maximum meals and incidental expenses (M&IE) allowance in USD per day.","example":75},"season":{"type":"string","title":"Season","description":"The season number in format 'S1'/'S2'","default":"S1","example":"S1"},"season_begin":{"type":"integer","title":"Season Begin","description":"The starting month and day for this seasonal rate.","example":"0101"},"season_end":{"type":"integer","title":"Season End"},"effective_date":{"type":"string","format":"date","title":"Effective Date"},"footnote_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Footnote Reference"}},"type":"object","required":["lodging","meals_incidental","season_begin","season_end","effective_date"],"title":"PerDiemData"},"PerDiemGSARead":{"properties":{"state":{"type":"string","title":"State"},"iso_code":{"type":"string","title":"Iso Code"},"destination_id":{"type":"integer","title":"Destination Id"},"destination":{"type":"string","title":"Destination"},"county":{"type":"string","title":"County"},"season_begin":{"type":"integer","title":"Season Begin"},"season_end":{"type":"integer","title":"Season End"},"lodging":{"type":"integer","title":"Lodging"},"meals_incidental":{"type":"integer","title":"Meals Incidental"},"effective_date":{"type":"string","format":"date","title":"Effective Date"}},"type":"object","required":["state","iso_code","destination_id","destination","county","season_begin","season_end","lodging","meals_incidental","effective_date"],"title":"PerDiemGSARead"},"USCountyRead":{"properties":{"name":{"type":"string","title":"Name"},"fips":{"type":"string","title":"Fips"},"state":{"type":"string","title":"State"},"state_iso":{"type":"string","maxLength":5,"minLength":5,"title":"","description":"The 4-letter ISO 3166-2:US state code. The first part is US, the ISO 3166-1 alpha-2 code of the United States. The second part is two letters, which is the postal abbreviation of the state, district, or outlying area.","example":"US-CA"}},"type":"object","required":["name","fips","state","state_iso"],"title":"USCountyRead"},"ZipCodeRead":{"properties":{"zipcode":{"type":"string","title":"Zipcode"},"county":{"type":"string","title":"County"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}},"type":"object","required":["zipcode","county"],"title":"ZipCodeRead"}},"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"}}}}