{"openapi":"3.1.0","info":{"title":"Federal Audit Clearinghouse (BYOK) API","version":"0.1.0","description":"Federal Audit Clearinghouse (BYOK) lets an AI assistant read your own Federal Audit Clearinghouse data through the Federal Audit Clearinghouse API with a key you supply (api.data.gov API key). Read-only: 10 tools (search_audits, get_audit, list_federal_awards, list_findings, list_finding_texts, list_corrective_action_plans, list_sefa_notes, list_passthrough_entities, list_additional_ueis,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-federalaudit.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-federalaudit/docs"},"termsOfService":"https://connectorbay.com/byok-federalaudit/terms"},"servers":[{"url":"https://byok-federalaudit.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-federalaudit/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/search_audits":{"post":{"operationId":"search_audits","summary":"Search submitted Single Audit reports (one row per audit) by year, organization name, UEI, EIN, state or cognizant agenc","description":"Search submitted Single Audit reports (one row per audit) by year, organization name, UEI, EIN, state or cognizant agency. Filter values use PostgREST operators: eq.X (equals), neq.X, gte.X, lte.X, ilike.*text* (case-insensitive contains), in.(a,b), is.true. Newest first. Use for \"Which nonprofits in California filed a Single Audit for 2023\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"audit_year":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Filter on audit year, for example 'eq.2023'.","title":"Audit Year"},"auditee_name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Filter on the audited organization's name, for example 'ilike.*food bank*'.","title":"Auditee Name"},"auditee_state":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Filter on the organization's two-letter state, for example 'eq.CA'.","title":"Auditee State"},"auditee_uei":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Filter on the organization's Unique Entity ID, for example 'eq.ABCDEFGHJ123'.","title":"Auditee Uei"},"auditee_ein":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Filter on the organization's EIN, for example 'eq.123456789'.","title":"Auditee Ein"},"entity_type":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Filter on entity type, for example 'eq.non-profit'.","title":"Entity Type"},"cognizant_agency":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Filter on the cognizant federal agency code, for example 'eq.93'.","title":"Cognizant Agency"},"order":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":"fac_accepted_date.desc","description":"Sort expression, for example 'fac_accepted_date.desc' or 'total_amount_expended.desc'.","title":"Order"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many rows to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Rows to skip before the first returned row, for paging.","title":"Offset"}},"title":"search_auditsArguments","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_audit":{"post":{"operationId":"get_audit","summary":"Get the general information of one Single Audit report by report id: organization, fiscal year, auditor, opinion flags a","description":"Get the general information of one Single Audit report by report id: organization, fiscal year, auditor, opinion flags and total federal spending. Use for \"Show Single Audit report 2023-09-GSAFAC-0000123456\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"report_id":{"description":"PostgREST filter on the report id, for example 'eq.2023-09-GSAFAC-0000123456'. Use the operator prefix eq. (equals) or in.(a,b).","maxLength":200,"title":"Report Id","type":"string"}},"required":["report_id"],"title":"get_auditArguments","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/list_federal_awards":{"post":{"operationId":"list_federal_awards","summary":"List the federal programs audited in Single Audit reports with amount spent, cluster and whether the program was major. ","description":"List the federal programs audited in Single Audit reports with amount spent, cluster and whether the program was major. Filter by report id, program name or agency prefix. Filter values use PostgREST operators: eq.X (equals), neq.X, gte.X, lte.X, ilike.*text* (case-insensitive contains), in.(a,b), is.true. Use for \"Which federal programs did report 2023-09-GSAFAC-0000123456 audit\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"report_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Filter on report id, for example 'eq.2023-09-GSAFAC-0000123456'.","title":"Report Id"},"federal_program_name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Filter on program name, for example 'ilike.*food*'.","title":"Federal Program Name"},"federal_agency_prefix":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Filter on the two-digit federal agency prefix of the assistance listing, for example 'eq.84' for Education.","title":"Federal Agency Prefix"},"auditee_uei":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Filter on the audited organization's UEI, for example 'eq.ABCDEFGHJ123'.","title":"Auditee Uei"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many rows to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Rows to skip before the first returned row, for paging.","title":"Offset"}},"title":"list_federal_awardsArguments","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/list_findings":{"post":{"operationId":"list_findings","summary":"List audit findings (one row per finding) with type of requirement, repeat-finding flag and whether it is a material wea","description":"List audit findings (one row per finding) with type of requirement, repeat-finding flag and whether it is a material weakness or questioned costs. Filter values use PostgREST operators: eq.X (equals), neq.X, gte.X, lte.X, ilike.*text* (case-insensitive contains), in.(a,b), is.true. Use for \"What findings did report 2023-09-GSAFAC-0000123456 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"report_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Filter on report id, for example 'eq.2023-09-GSAFAC-0000123456'.","title":"Report Id"},"auditee_uei":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Filter on the audited organization's UEI.","title":"Auditee Uei"},"is_material_weakness":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Filter on the material weakness flag, for example 'is.true'.","title":"Is Material Weakness"},"is_questioned_costs":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Filter on the questioned costs flag, for example 'is.true'.","title":"Is Questioned Costs"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many rows to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Rows to skip before the first returned row, for paging.","title":"Offset"}},"title":"list_findingsArguments","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/list_finding_texts":{"post":{"operationId":"list_finding_texts","summary":"List the written description of audit findings for a report (one row per finding reference number). Use for \"Describe th","description":"List the written description of audit findings for a report (one row per finding reference number). Use for \"Describe the audit findings of report 2023-09-GSAFAC-0000123456\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"report_id":{"description":"PostgREST filter on the report id, for example 'eq.2023-09-GSAFAC-0000123456'. Use the operator prefix eq. (equals) or in.(a,b).","maxLength":200,"title":"Report Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many rows to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Rows to skip before the first returned row, for paging.","title":"Offset"}},"required":["report_id"],"title":"list_finding_textsArguments","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/list_corrective_action_plans":{"post":{"operationId":"list_corrective_action_plans","summary":"List the auditee's planned corrective actions for a report's findings (one row per finding reference number). Use for \"W","description":"List the auditee's planned corrective actions for a report's findings (one row per finding reference number). Use for \"What corrective actions did the auditee plan for report 2023-09-GSAFAC-0000123456\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"report_id":{"description":"PostgREST filter on the report id, for example 'eq.2023-09-GSAFAC-0000123456'. Use the operator prefix eq. (equals) or in.(a,b).","maxLength":200,"title":"Report Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many rows to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Rows to skip before the first returned row, for paging.","title":"Offset"}},"required":["report_id"],"title":"list_corrective_action_plansArguments","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/list_sefa_notes":{"post":{"operationId":"list_sefa_notes","summary":"List the notes to the schedule of expenditures of federal awards for a report: policies, indirect cost rate use and note","description":"List the notes to the schedule of expenditures of federal awards for a report: policies, indirect cost rate use and note text. Use for \"Show the SEFA notes of report 2023-09-GSAFAC-0000123456\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"report_id":{"description":"PostgREST filter on the report id, for example 'eq.2023-09-GSAFAC-0000123456'. Use the operator prefix eq. (equals) or in.(a,b).","maxLength":200,"title":"Report Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many rows to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Rows to skip before the first returned row, for paging.","title":"Offset"}},"required":["report_id"],"title":"list_sefa_notesArguments","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/list_passthrough_entities":{"post":{"operationId":"list_passthrough_entities","summary":"List the pass-through entities (state agencies or other grantors) that passed federal money to the audited organization,","description":"List the pass-through entities (state agencies or other grantors) that passed federal money to the audited organization, by award. Use for \"Which pass-through entities fed money to the audited organization in report 2023-09-GSAFAC-0000123456\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"report_id":{"description":"PostgREST filter on the report id, for example 'eq.2023-09-GSAFAC-0000123456'. Use the operator prefix eq. (equals) or in.(a,b).","maxLength":200,"title":"Report Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many rows to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Rows to skip before the first returned row, for paging.","title":"Offset"}},"required":["report_id"],"title":"list_passthrough_entitiesArguments","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/list_additional_ueis":{"post":{"operationId":"list_additional_ueis","summary":"List extra Unique Entity IDs reported on a Single Audit report (reports that cover several UEIs). Use for \"Does report 2","description":"List extra Unique Entity IDs reported on a Single Audit report (reports that cover several UEIs). Use for \"Does report 2023-09-GSAFAC-0000123456 cover more than one UEI\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"report_id":{"description":"PostgREST filter on the report id, for example 'eq.2023-09-GSAFAC-0000123456'. Use the operator prefix eq. (equals) or in.(a,b).","maxLength":200,"title":"Report Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many rows to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Rows to skip before the first returned row, for paging.","title":"Offset"}},"required":["report_id"],"title":"list_additional_ueisArguments","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/list_additional_eins":{"post":{"operationId":"list_additional_eins","summary":"List extra Employer Identification Numbers reported on a Single Audit report (reports that cover several EINs). Use for ","description":"List extra Employer Identification Numbers reported on a Single Audit report (reports that cover several EINs). Use for \"Does report 2023-09-GSAFAC-0000123456 cover more than one EIN\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"report_id":{"description":"PostgREST filter on the report id, for example 'eq.2023-09-GSAFAC-0000123456'. Use the operator prefix eq. (equals) or in.(a,b).","maxLength":200,"title":"Report Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many rows to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Rows to skip before the first returned row, for paging.","title":"Offset"}},"required":["report_id"],"title":"list_additional_einsArguments","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}}}}