Query the public CoworkingView flexible-office price index
Compatibility Matrix
This table covers all DuckDB releases that have not reached end-of-life, including LTS releases, and shows the 2 most recent patch releases of each. Older patch releases are not listed, but the extension may be available for them as well.
| Platform | 1.4.4 | 1.4.5 | 1.5.5 | 1.5.6 | 2.0.0 |
|---|---|---|---|---|---|
| Linux AMD64 | |||||
| Linux ARM64 | |||||
| macOS AMD64 | |||||
| macOS ARM64 | |||||
| Windows AMD64 | |||||
| Windows ARM64 | |||||
| WebAssembly |
Installing and Loading
INSTALL coworkingview FROM community;
LOAD coworkingview;
Example
SELECT city, currency, median, sample_size
FROM coworkingview_prices('berlin')
WHERE basis = 'per_desk' AND option_type IS NULL;
About coworkingview
coworkingview reads a dated snapshot of the public CoworkingView Price Index (https://coworkingview.com/en/tools/price-index). This release bundles the document published at 2026-11-01T11:34:11.702Z (https://coworkingview.com/api/price-index).
coworkingview_prices(city) returns the median, average, minimum, maximum
and quartiles per desk per month, plus an entry price. The entry price is
the cheapest advertised monthly price of each building and is not a per-desk
figure. Pass a city name or a slug. coworkingview_cities() lists every
city in the snapshot, including cities that are not priced yet.
coworkingview_snapshot() returns the licence and attribution.
coworkingview_endpoints() returns the public URLs so the index can be
refreshed with httpfs and read_json. No API key is required.
The extension code is MIT. The bundled Price Index is CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Figures are operator list prices in each city's own currency, not a booking quote, and are not comparable across currencies.
This extension was written with AI assistance and is maintained by CoworkingView (https://coworkingview.com). The public API is documented at https://coworkingview.com/en/api.
Added Functions
| function_name | function_type | description | comment | examples |
|---|---|---|---|---|
| coworkingview_cities | table | Cities in the bundled CoworkingView Price Index. indexed is false for cities that appear only in the snapshot's unpricedCities list and therefore have no price figures. Bundled snapshot generated at 2026-11-01T11:34:11.702Z from https://coworkingview.com/api/price-index. Prices are operator list prices in each city's own currency, not a booking quote, and are not comparable across currencies. | NULL | [SELECT city, currency, median_per_desk, sample_size FROM coworkingview_cities() WHERE slug = 'berlin'] |
| coworkingview_endpoints | table | Public CoworkingView URLs for refreshing the price index with httpfs and read_json or read_csv. Reads need no API key. Catalogue routes require a locale of en, de or es. | NULL | [SELECT name, url FROM coworkingview_endpoints()] |
| coworkingview_prices | table | Median monthly price per desk (basis = 'per_desk') and median entry price per building (basis = 'entry') from the CoworkingView Price Index. option_type is NULL for the city headline and otherwise one of flex_desk, fix_desk or private_office. Bundled snapshot generated at 2026-11-01T11:34:11.702Z from https://coworkingview.com/api/price-index. Prices are operator list prices in each city's own currency, not a booking quote, and are not comparable across currencies. | NULL | [SELECT median FROM coworkingview_prices('berlin') WHERE basis = 'per_desk' AND option_type IS NULL, SELECT basis, option_type, median, sample_size FROM coworkingview_prices('berlin') WHERE basis = 'per_desk'] |
| coworkingview_snapshot | table | Licence, timestamp and attribution for the CoworkingView Price Index snapshot bundled in this extension. The price data is CC BY 4.0; the extension code is MIT. | NULL | [SELECT generated_at, license, attribution, price_index_url FROM coworkingview_snapshot()] |
Overloaded Functions
This extension does not add any function overloads.
Added Types
This extension does not add any types.
Added Settings
| name | description | input_type | scope | aliases | typed_value |
|---|---|---|---|---|---|
| temp_directory | Set the directory to which temporary files are written. | VARCHAR | GLOBAL | [] | post.db.tmp |