Skip to content

Endpoints reference

Fredrik Dettner edited this page Oct 12, 2026 · 3 revisions

Endpoints reference (overview)

This is the high-level map. For exhaustive per-operation request/response schemas, parameter types, and examples, see the OpenAPI spec at /openapi/v2.json. Sedis also provides an interactive API reference (Scalar) rendered from that OpenAPI spec, available in the Sedis integration environment — ask your Sedis contact for access. Everything below shares the same envelope, query conventions (Query conventions), errors (Errors), and auth (Authentication).

All paths are relative to https://api.sedis.se/v2.

Bolagsanalys — listed-company valuation data

Reference data, shared across all customers (no tenant scoping — every key sees the same companies and parameters).

Resource Method What it returns
/bolagsanalys/companies GET Listed companies (companyId, name, nextReportDate, isInactive, latestReportUri, countryCode, nationalIdentificationNumber). Filters: ?companyId=, ?nameContains=, ?countryCode=.
/bolagsanalys/parameters GET Parameter metadata (code, name, groupName, description, period). Filters: ?code=, ?groupName=, ?nameContains=.
/bolagsanalys/data GET Quarterly figures (companyId, parameterCode, quarterId, figure, text, lastUpdatedUtc). Filters: ?companyId=, ?parameterCode=, ?quarterId=, ?fromDate=, ?toDate=.

Note: quarterId is a packed number: 20251 = 2025 Q1. On input the ?quarterId= filter accepts either 20251 or 2025Q1. On /bolagsanalys/data, ?fromDate=/?toDate= are quarter bounds (also 20251 or 2025Q1), not calendar dates — Bolagsanalys data is quarter-keyed. See Code examples.

Fastighetsbenchmark — real-estate benchmarking

Your own property data is tenant-scoped — you only ever see rows owned by your SedisCustomer (Multi-tenant isolation). Sedis-curated reference data is shared. The six read resources, plus a POST search and the ingestion endpoints:

Resource Method Scope Notes
/fastighetsbenchmark/property-units GET, POST, PUT tenant Your real estate (Fastighet). Create with POST, rename/update with PUT (Writing data). Filters incl. ?name= (exact — your own name for it), ?propertyType= (a property-type id, int), ?municipalityId=, ?belongsToJamforelseobjektSedisId=, geometry (Geometry). Opt-in belongsToJamforelseobjekt lineage (The Comp Composite & clone lineage).
/fastighetsbenchmark/samlingar GET, POST, PUT, DELETE tenant Your collections (Samling) — the only full-CRUD Fastighetsbenchmark resource. Read + create + replace + delete (The Comp Composite & clone lineage, ingestion below). PUT {sedisId} replaces the name + members and re-triggers the recalculation cascade; DELETE {sedisId} cascades the collection's data cleanup.
/fastighetsbenchmark/jamforelseobjekt GET tenant Your comparison zones cloned from a SedisObjekt (Jämförelseobjekt). Opt-in containsPropertyUnits lineage (The Comp Composite & clone lineage).
/fastighetsbenchmark/reference-zones GET shared (read-only) Sedis-curated external benchmark datasets (e.g. Nils Holgersson, Cushman & Wakefield, SEPREF, Forum).
/fastighetsbenchmark/parameters GET shared CompParameter metadata (code, name, groupName, description, unit, isBaseData, dataType, and enumValues for enum codes — The Comp Composite & clone lineage).
/fastighetsbenchmark/municipalities GET shared Municipalities: id (what municipalityId takes), name, countryCode, code (Sweden: SCB kommunkod). Filters ?code=, ?countryCode=, ?nameContains=.
/fastighetsbenchmark/property-types GET shared Property types { id, name } — the EB0 domain and the ?propertyType= filter.
/fastighetsbenchmark/comp-data GET tenant The CompDatum time-series — self-describing via dataType (decimal/boolean/enum/date) + the matching figure/boolean/enum/date member (The Comp Composite & clone lineage). Always fetched here, never inlined. Filters: ?sedisId= (exact), ?sedisIdIn= (comma-separated multi-value), ?parameterCode=, ?fromDate=, ?toDate=. Supports ?count=false.

Note: The source SedisObjekt is not a partner-fetchable resource. A Jämförelseobjekt is your clone of a Sedis-owned SedisObjekt aggregate; you reach the relationship through the bidirectional clone lineage (belongsToJamforelseobjekt / containsPropertyUnits, The Comp Composite & clone lineage), not by fetching the SedisObjekt itself.

Geometry search (read-via-POST)

For geometry inputs too large for a URL (big polygons, MultiPolygons), POST the shape instead of putting it in ?wkt=:

Resource Method
/fastighetsbenchmark/property-units/search POST
/fastighetsbenchmark/samlingar/search POST
/fastighetsbenchmark/jamforelseobjekt/search POST

Same response envelope as the matching GET. See Geometry.

Ingestion (write)

Resource Method What it does
/fastighetsbenchmark/samlingar POST Create a customer-owned Samling; triggers Sedis's recalculation cascade.
/fastighetsbenchmark/samlingar/{sedisId} PUT Full replace of the Samling's name + members. Because the member set changed, this re-triggers the recalculation cascade. Tenant-scoped (a {sedisId} that is not yours → 404). Returns 200 with the updated resource.
/fastighetsbenchmark/samlingar/{sedisId} DELETE Delete the Samling, cascading its data/tags cleanup. Tenant-scoped (not yours → 404). Returns 204 No Content.
/fastighetsbenchmark/property-units POST Create a property unit — the only way to create one. 201 with its sedisId.
/fastighetsbenchmark/property-units/{sedisId} PUT Full replace of a property unit's attributes — the only way to rename one. If-Match → 412.
/fastighetsbenchmark/property-units/{sedisId} DELETE Remove a property unit with all its values — only while none of them is shared (409 shared-data otherwise). 204.
/fastighetsbenchmark/property-units/{sedisId}/values/{valueDate} PATCH Change some values at one value date (JSON Merge Patch). Not shared → 200; shared → 202, waits for Sedis's review.
/fastighetsbenchmark/property-units/{sedisId}/values/{valueDate} DELETE Remove every value at one value date — only if it is not shared (409 shared-data otherwise). 204.
/fastighetsbenchmark/property-units/{sedisId}/pending-changes GET Your changes of shared values that wait for Sedis, with Sedis's reviewComment when it sent them back.
/fastighetsbenchmark/comp-uploads POST Upload values for one value date; never creates a property unit. Strict (422, nothing saved). submit: true sends it to Sedis for review.
/fastighetsbenchmark/comp-uploads/{id} GET Where an upload is: uploaded → submitted → publishing → published.

All of it in Writing data.

The POST endpoints require a mandatory Idempotency-Key header. PUT and DELETE are idempotent by HTTP semantics and do not require the header. See The Comp Composite & clone lineage (Ingestion) and Errors (RFC 7807).

Shared response shapes

The Fastighetsbenchmark Comp-family resources share a common base (CompBaseResponse): sedisId, name, sourceName, insertedOnUtc, lastUpdatedUtc, isLocked, and the freeze-state fields (freezeOnSourceChanges, sourceUpdateAvailable, …). The OpenAPI spec composes each resource via allOf: [CompBaseResponse, {…}]. Opt-in members (geometry, belongsToJamforelseobjekt, containsPropertyUnits (Jämförelseobjekt only), tags) are omitted unless you request them with ?fields= (Query conventions, Geometry, The Comp Composite & clone lineage).

Clone this wiki locally