{"openapi":"3.1.0","info":{"title":"Census Bureau (BYOK) API","version":"0.1.0","description":"Census Bureau (BYOK) lets an AI assistant read your own Census Bureau data through the Census Bureau API with a key you supply (Census Data API key). Read-only: 8 tools (get_profile_for_states, get_profile_for_counties, get_profile_for_places, get_profile_for_tracts, get_profile_for_zip_areas, get_detailed_table_estimates, describe_profile_variable, describe_detailed_variable). The BYOK key...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-census.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-census/docs"},"termsOfService":"https://connectorbay.com/byok-census/terms"},"servers":[{"url":"https://byok-census.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-census/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_profile_for_states":{"post":{"operationId":"get_profile_for_states","summary":"Get ACS 5-year data-profile variables (population, age, income, employment, housing, education, insurance) for all state","description":"Get ACS 5-year data-profile variables (population, age, income, employment, housing, education, insurance) for all states or chosen states. The answer is a table: the first row holds the column names. Use for \"What is the median household income in each US state\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"year":{"description":"ACS 5-year vintage, named for its last year: 2009 to 2024 (2024 covers 2020-2024 and is the latest).","maximum":2024,"minimum":2009,"title":"Year","type":"integer"},"variables":{"description":"Comma-separated variable names, at most 50, for example NAME,DP05_0001E,DP03_0062E (NAME gives the place name; DP05_0001E is total population, DP03_0062E median household income, DP04_0089E median home value). Use describe_profile_variable to look a name up.","maxLength":600,"title":"Variables","type":"string"},"geography":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":"state:*","description":"Which states: state:* for all, state:06 for one (FIPS code), state:01,13 for several.","title":"Geography"}},"required":["year","variables"],"title":"get_profile_for_statesArguments","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_profile_for_counties":{"post":{"operationId":"get_profile_for_counties","summary":"Get ACS 5-year data-profile variables for the counties of a state, or for all counties. The answer is a table: the first","description":"Get ACS 5-year data-profile variables for the counties of a state, or for all counties. The answer is a table: the first row holds the column names. Use for \"What is the population and median home value of each county in California\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"year":{"description":"ACS 5-year vintage, named for its last year: 2009 to 2024 (2024 covers 2020-2024 and is the latest).","maximum":2024,"minimum":2009,"title":"Year","type":"integer"},"variables":{"description":"Comma-separated variable names, at most 50, for example NAME,DP05_0001E,DP03_0062E (NAME gives the place name; DP05_0001E is total population, DP03_0062E median household income, DP04_0089E median home value). Use describe_profile_variable to look a name up.","maxLength":600,"title":"Variables","type":"string"},"geography":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":"county:*","description":"Which counties: county:* for all, county:001 for one (3-digit FIPS code, needs the state in containing_geography).","title":"Geography"},"containing_geography":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"State to look inside, for example state:06 for California (FIPS code).","title":"Containing Geography"}},"required":["year","variables"],"title":"get_profile_for_countiesArguments","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_profile_for_places":{"post":{"operationId":"get_profile_for_places","summary":"Get ACS 5-year data-profile variables for the cities, towns and census-designated places of a state. The answer is a tab","description":"Get ACS 5-year data-profile variables for the cities, towns and census-designated places of a state. The answer is a table: the first row holds the column names. Use for \"What is the population of each place in Vermont\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"year":{"description":"ACS 5-year vintage, named for its last year: 2009 to 2024 (2024 covers 2020-2024 and is the latest).","maximum":2024,"minimum":2009,"title":"Year","type":"integer"},"variables":{"description":"Comma-separated variable names, at most 50, for example NAME,DP05_0001E,DP03_0062E (NAME gives the place name; DP05_0001E is total population, DP03_0062E median household income, DP04_0089E median home value). Use describe_profile_variable to look a name up.","maxLength":600,"title":"Variables","type":"string"},"containing_geography":{"description":"State to look inside, required: for example state:50 for Vermont (FIPS code).","maxLength":60,"title":"Containing Geography","type":"string"},"geography":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":"place:*","description":"Which places: place:* for all, or place:07000 for one (5-digit FIPS place code).","title":"Geography"}},"required":["year","variables","containing_geography"],"title":"get_profile_for_placesArguments","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_profile_for_tracts":{"post":{"operationId":"get_profile_for_tracts","summary":"Get ACS 5-year data-profile variables for the census tracts of a county. The answer is a table: the first row holds the ","description":"Get ACS 5-year data-profile variables for the census tracts of a county. The answer is a table: the first row holds the column names. Use for \"What is the median household income in each census tract of Alameda County, California\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"year":{"description":"ACS 5-year vintage, named for its last year: 2009 to 2024 (2024 covers 2020-2024 and is the latest).","maximum":2024,"minimum":2009,"title":"Year","type":"integer"},"variables":{"description":"Comma-separated variable names, at most 50, for example NAME,DP05_0001E,DP03_0062E (NAME gives the place name; DP05_0001E is total population, DP03_0062E median household income, DP04_0089E median home value). Use describe_profile_variable to look a name up.","maxLength":600,"title":"Variables","type":"string"},"containing_geography":{"description":"State and county to look inside, required, separated by a space: for example 'state:06 county:001'.","maxLength":80,"title":"Containing Geography","type":"string"},"geography":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":"tract:*","description":"Which tracts: tract:* for all, or tract:400100 for one (6-digit code).","title":"Geography"}},"required":["year","variables","containing_geography"],"title":"get_profile_for_tractsArguments","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_profile_for_zip_areas":{"post":{"operationId":"get_profile_for_zip_areas","summary":"Get ACS 5-year data-profile variables for ZIP Code Tabulation Areas (the census approximation of ZIP codes). The answer ","description":"Get ACS 5-year data-profile variables for ZIP Code Tabulation Areas (the census approximation of ZIP codes). The answer is a table: the first row holds the column names. Use for \"What is the population and median household income of ZIP area 94027\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"year":{"description":"ACS 5-year vintage, named for its last year: 2009 to 2024 (2024 covers 2020-2024 and is the latest).","maximum":2024,"minimum":2009,"title":"Year","type":"integer"},"variables":{"description":"Comma-separated variable names, at most 50, for example NAME,DP05_0001E,DP03_0062E (NAME gives the place name; DP05_0001E is total population, DP03_0062E median household income, DP04_0089E median home value). Use describe_profile_variable to look a name up.","maxLength":600,"title":"Variables","type":"string"},"geography":{"description":"ZIP area clause: 'zip code tabulation area:94027' for one, comma-separated for several. Asking for all (*) returns about 33,000 rows.","maxLength":200,"title":"Geography","type":"string"}},"required":["year","variables","geography"],"title":"get_profile_for_zip_areasArguments","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_detailed_table_estimates":{"post":{"operationId":"get_detailed_table_estimates","summary":"Get ACS 5-year detailed-table estimates (B-series variables such as B01003_001E total population) for any geography the ","description":"Get ACS 5-year detailed-table estimates (B-series variables such as B01003_001E total population) for any geography the survey publishes. The answer is a table: the first row holds the column names. Use for \"What is the total population of each state according to the ACS 5-year detailed tables\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"year":{"description":"ACS 5-year vintage, named for its last year: 2009 to 2024 (2024 covers 2020-2024 and is the latest).","maximum":2024,"minimum":2009,"title":"Year","type":"integer"},"variables":{"description":"Comma-separated detailed-table variable names, at most 50, for example NAME,B01003_001E (B01003_001E is total population). A whole table can be requested as group(B01003). Use describe_detailed_variable to look a name up.","maxLength":600,"title":"Variables","type":"string"},"geography":{"description":"Geography clause, for example state:* or county:* or place:* (the last two need containing_geography).","maxLength":200,"title":"Geography","type":"string"},"containing_geography":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Geography to look inside, for example state:06 or 'state:06 county:001'.","title":"Containing Geography"}},"required":["year","variables","geography"],"title":"get_detailed_table_estimatesArguments","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/describe_profile_variable":{"post":{"operationId":"describe_profile_variable","summary":"Look up one ACS 5-year data-profile variable by name: its label, table concept, value type and table group. Use for \"Wha","description":"Look up one ACS 5-year data-profile variable by name: its label, table concept, value type and table group. Use for \"What does variable DP03_0062E mean\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"year":{"description":"ACS 5-year vintage, named for its last year: 2009 to 2024 (2024 covers 2020-2024 and is the latest).","maximum":2024,"minimum":2009,"title":"Year","type":"integer"},"variable":{"description":"Variable name, for example DP03_0062E.","maxLength":40,"title":"Variable","type":"string"}},"required":["year","variable"],"title":"describe_profile_variableArguments","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/describe_detailed_variable":{"post":{"operationId":"describe_detailed_variable","summary":"Look up one ACS 5-year detailed-table variable by name: its label, table concept, value type and table group. Use for \"W","description":"Look up one ACS 5-year detailed-table variable by name: its label, table concept, value type and table group. Use for \"What does variable B01003_001E mean\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"year":{"description":"ACS 5-year vintage, named for its last year: 2009 to 2024 (2024 covers 2020-2024 and is the latest).","maximum":2024,"minimum":2009,"title":"Year","type":"integer"},"variable":{"description":"Variable name, for example B01003_001E.","maxLength":40,"title":"Variable","type":"string"}},"required":["year","variable"],"title":"describe_detailed_variableArguments","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}}}}