{"openapi":"3.1.0","info":{"title":"VSAC FHIR (BYOK) API","version":"0.1.0","description":"VSAC FHIR (BYOK) lets an AI assistant read your own VSAC FHIR data through the VSAC FHIR API with a key you supply (UMLS API key). Read-only: 6 tools (get_value_set, expand_value_set, validate_code_in_value_set, get_code_system, lookup_code, check_subsumption). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-vsac.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-vsac/docs"},"termsOfService":"https://connectorbay.com/byok-vsac/terms"},"servers":[{"url":"https://byok-vsac.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-vsac/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_value_set":{"post":{"operationId":"get_value_set","summary":"Get the definition of a VSAC value set by OID: title, status, version, publisher, description and its compose rules. Use","description":"Get the definition of a VSAC value set by OID: title, status, version, publisher, description and its compose rules. Use for \"Describe VSAC value set 2.16.840.1.113883.3.464.1003.113.11.1090\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"value_set_oid":{"description":"VSAC value set object identifier (OID), for example '2.16.840.1.113883.3.464.1003.113.11.1090'. Names are not unique, so use the OID.","maxLength":200,"title":"Value Set Oid","type":"string"}},"required":["value_set_oid"],"title":"get_value_setArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/expand_value_set":{"post":{"operationId":"expand_value_set","summary":"List the codes in a VSAC value set (code, display, code system, version), optionally filtered by text; at most 1,500 cod","description":"List the codes in a VSAC value set (code, display, code system, version), optionally filtered by text; at most 1,500 codes per code system. Use for \"List the codes in VSAC value set 2.16.840.1.113883.3.464.1003.113.11.1090 that mention spine\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"value_set_oid":{"description":"VSAC value set object identifier (OID), for example '2.16.840.1.113883.3.464.1003.113.11.1090'. Names are not unique, so use the OID.","maxLength":200,"title":"Value Set Oid","type":"string"},"filter":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Text to match in code descriptions within the value set, for example 'spine'.","title":"Filter"},"expansion":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Release label for eCQM value sets, for example 'eCQM Update 2025-05-08'.","title":"Expansion"}},"required":["value_set_oid"],"title":"expand_value_setArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/validate_code_in_value_set":{"post":{"operationId":"validate_code_in_value_set","summary":"Check whether a code of a given code system belongs to a VSAC value set. Use for \"Is ICD-10-CM code M45.0 in VSAC value ","description":"Check whether a code of a given code system belongs to a VSAC value set. Use for \"Is ICD-10-CM code M45.0 in VSAC value set 2.16.840.1.113883.3.464.1003.113.11.1090\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"value_set_oid":{"description":"VSAC value set object identifier (OID), for example '2.16.840.1.113883.3.464.1003.113.11.1090'. Names are not unique, so use the OID.","maxLength":200,"title":"Value Set Oid","type":"string"},"system":{"description":"Code system URI, for example 'http://loinc.org', 'http://snomed.info/sct', 'http://hl7.org/fhir/sid/icd-10-cm' or 'http://www.nlm.nih.gov/research/umls/rxnorm'.","maxLength":200,"title":"System","type":"string"},"code":{"description":"The code to check, for example 'M45.0'.","maxLength":60,"title":"Code","type":"string"}},"required":["value_set_oid","system","code"],"title":"validate_code_in_value_setArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_code_system":{"post":{"operationId":"get_code_system","summary":"Get details of a code system supported by VSAC by its id (for example CDCREC): name, URL, status, content mode and publi","description":"Get details of a code system supported by VSAC by its id (for example CDCREC): name, URL, status, content mode and publisher. Use for \"Describe the CDCREC code system in VSAC\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"code_system_id":{"description":"Code system id as used by VSAC, for example 'CDCREC'.","maxLength":200,"title":"Code System Id","type":"string"}},"required":["code_system_id"],"title":"get_code_systemArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/lookup_code":{"post":{"operationId":"lookup_code","summary":"Look up one code in a code system (LOINC, SNOMED CT, ICD-10-CM, RxNorm and others): display name, version and properties","description":"Look up one code in a code system (LOINC, SNOMED CT, ICD-10-CM, RxNorm and others): display name, version and properties. Use for \"What is LOINC code 1963-8\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"system":{"description":"Code system URI, for example 'http://loinc.org', 'http://snomed.info/sct', 'http://hl7.org/fhir/sid/icd-10-cm' or 'http://www.nlm.nih.gov/research/umls/rxnorm'.","maxLength":200,"title":"System","type":"string"},"code":{"description":"The code to look up, for example '1963-8'.","maxLength":60,"title":"Code","type":"string"},"version":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Code system version, for example '2.56'.","title":"Version"},"date":{"anyOf":[{"maxLength":8,"type":"string"},{"type":"null"}],"default":null,"description":"Look up as of this date, YYYYMMDD.","title":"Date"}},"required":["system","code"],"title":"lookup_codeArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/check_subsumption":{"post":{"operationId":"check_subsumption","summary":"Test whether one code subsumes another in a hierarchical code system (SNOMED CT, ICD-10-CM and others). Use for \"Does SN","description":"Test whether one code subsumes another in a hierarchical code system (SNOMED CT, ICD-10-CM and others). Use for \"Does SNOMED CT code 29857009 subsume 10000006\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"system":{"description":"Code system URI, for example 'http://loinc.org', 'http://snomed.info/sct', 'http://hl7.org/fhir/sid/icd-10-cm' or 'http://www.nlm.nih.gov/research/umls/rxnorm'.","maxLength":200,"title":"System","type":"string"},"code_a":{"description":"The first code, for example '29857009'.","maxLength":60,"title":"Code A","type":"string"},"code_b":{"description":"The second code, for example '10000006'.","maxLength":60,"title":"Code B","type":"string"},"version":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Code system version.","title":"Version"}},"required":["system","code_a","code_b"],"title":"check_subsumptionArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}