Page Introduction

MarketplaceFilters namespace

This namespace page is optimized for frontend implementation with endpoint index, request/response examples, and code snippets.

  • Use auth and summary fields to configure your API client.
  • Use code snippets as starter references, not production-ready final code.
  • Validate critical mutations in interactive console before release.

CarOwner Namespace

MarketplaceFilters

Namespace details with request/response examples and code snippets.

5Endpoint methods

Endpoint Quick Index

Detailed Endpoints

GET/api/co/marketplace/shops/921460929

Endpoint operation.

Auth: None (public endpoint).Source: CAROWNER-API-COMPLETE.md

Request Example

{}

Response Example

{
  "data": {},
  "meta": {
    "request_id": "f59ee325-0445-4bd0-9bf1-73edcd7da151",
    "generated_at": "2026-02-12T10:00:00Z"
  }
}
Node.js Axios example
import axios from "axios";

const BASE_URL = process.env.MINBIL_API_BASE_URL ?? "http://localhost:5000";
const API_KEY = process.env.MINBIL_API_KEY ?? "YOUR_API_KEY";
const ACCESS_TOKEN = process.env.MINBIL_ACCESS_TOKEN ?? "YOUR_BEARER_TOKEN";

async function run() {
  const response = await axios({
    method: "get",
    url: BASE_URL + "/api/co/marketplace/shops/921460929",
    headers: {
      "Content-Type": "application/json",
    },
    timeout: 20000,
  });
  console.log(response.status, response.data);
}

run().catch((error) => {
  console.error(error.response?.status, error.response?.data ?? error.message);
});
cURL example
curl -X GET 'https://api.minbil.no/api/co/marketplace/shops/921460929'\
  -H 'Accept: application/json'
Fetch example
const BASE_URL = process.env.MINBIL_API_BASE_URL ?? "http://localhost:5000";
const API_KEY = process.env.MINBIL_API_KEY ?? "YOUR_API_KEY";
const ACCESS_TOKEN = process.env.MINBIL_ACCESS_TOKEN ?? "YOUR_BEARER_TOKEN";

const response = await fetch(BASE_URL + "/api/co/marketplace/shops/921460929", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
  },
});
const data = await response.json();
console.log(response.status, data);
GET/api/co/filters?page_size=string_value&page=string_value&order=string_value&sort=string_value

Endpoint operation.

Composite filter for marketplace search (text, categories, rating, price, location, and paging).

Auth: Bearer token (`Authorization: Bearer <token>`)Source: CAROWNER-API-COMPLETE.md

Request Example

{}

Response Example

{
  "results": [
    {
      "org_nr": "921460929",
      "name": "string_value",
      "address_line": "string_value",
      "city": "string_value",
      "postal_code": "string_value",
      "latitude": 499.0,
      "longitude": 499.0,
      "distance_km": 499.0,
      "logo": [
        {}
      ],
      "categories": [
        {}
      ],
      "avg_rating": 499.0,
      "total_reviews": 1,
      "cheapest_service_price": 499.0,
      "services_count": 1
    }
  ],
  "count": 1,
  "total_count": 1,
  "total_pages": 1,
  "current_page": 1,
  "page_size": 1
}
Node.js Axios example
import axios from "axios";

const BASE_URL = process.env.MINBIL_API_BASE_URL ?? "http://localhost:5000";
const API_KEY = process.env.MINBIL_API_KEY ?? "YOUR_API_KEY";
const ACCESS_TOKEN = process.env.MINBIL_ACCESS_TOKEN ?? "YOUR_BEARER_TOKEN";

async function run() {
  const response = await axios({
    method: "get",
    url: BASE_URL + "/api/co/filters?page_size=string_value&page=string_value&order=string_value&sort=string_value",
    headers: {
      "Content-Type": "application/json",
      Authorization: "Bearer " + ACCESS_TOKEN,
    },
    timeout: 20000,
  });
  console.log(response.status, response.data);
}

run().catch((error) => {
  console.error(error.response?.status, error.response?.data ?? error.message);
});
cURL example
curl -X GET 'https://api.minbil.no/api/co/filters?page_size=string_value&page=string_value&order=string_value&sort=string_value'\
  -H 'Accept: application/json'\
  -H 'Authorization: Bearer <access-token>'
Fetch example
const BASE_URL = process.env.MINBIL_API_BASE_URL ?? "http://localhost:5000";
const API_KEY = process.env.MINBIL_API_KEY ?? "YOUR_API_KEY";
const ACCESS_TOKEN = process.env.MINBIL_ACCESS_TOKEN ?? "YOUR_BEARER_TOKEN";

const response = await fetch(BASE_URL + "/api/co/filters?page_size=string_value&page=string_value&order=string_value&sort=string_value", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    Authorization: "Bearer " + ACCESS_TOKEN,
  },
});
const data = await response.json();
console.log(response.status, data);
GET/api/co/filters/filterByCategories?categories=string_value

Endpoint operation.

Legacy compatibility endpoint used by older marketplace clients. Accepts `categories` as comma-separated WorkshopCategory IDs.

Auth: Bearer token (`Authorization: Bearer <token>`)Source: CAROWNER-API-COMPLETE.md

Request Example

{}

Response Example

{
  "results": [
    {
      "org_nr": "921460929",
      "name": "string_value",
      "address_line": "string_value",
      "city": "string_value",
      "postal_code": "string_value",
      "latitude": 499.0,
      "longitude": 499.0,
      "distance_km": 499.0,
      "logo": [
        {}
      ],
      "categories": [
        {}
      ],
      "avg_rating": 499.0,
      "total_reviews": 1,
      "cheapest_service_price": 499.0,
      "services_count": 1
    }
  ],
  "count": 1,
  "total_count": 1,
  "total_pages": 1,
  "current_page": 1,
  "page_size": 1
}
Node.js Axios example
import axios from "axios";

const BASE_URL = process.env.MINBIL_API_BASE_URL ?? "http://localhost:5000";
const API_KEY = process.env.MINBIL_API_KEY ?? "YOUR_API_KEY";
const ACCESS_TOKEN = process.env.MINBIL_ACCESS_TOKEN ?? "YOUR_BEARER_TOKEN";

async function run() {
  const response = await axios({
    method: "get",
    url: BASE_URL + "/api/co/filters/filterByCategories?categories=string_value",
    headers: {
      "Content-Type": "application/json",
      Authorization: "Bearer " + ACCESS_TOKEN,
    },
    timeout: 20000,
  });
  console.log(response.status, response.data);
}

run().catch((error) => {
  console.error(error.response?.status, error.response?.data ?? error.message);
});
cURL example
curl -X GET 'https://api.minbil.no/api/co/filters/filterByCategories?categories=string_value'\
  -H 'Accept: application/json'\
  -H 'Authorization: Bearer <access-token>'
Fetch example
const BASE_URL = process.env.MINBIL_API_BASE_URL ?? "http://localhost:5000";
const API_KEY = process.env.MINBIL_API_KEY ?? "YOUR_API_KEY";
const ACCESS_TOKEN = process.env.MINBIL_ACCESS_TOKEN ?? "YOUR_BEARER_TOKEN";

const response = await fetch(BASE_URL + "/api/co/filters/filterByCategories?categories=string_value", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    Authorization: "Bearer " + ACCESS_TOKEN,
  },
});
const data = await response.json();
console.log(response.status, data);
GET/api/co/filters/filterByHierarchicalCategories?categories=string_value

Endpoint operation.

Legacy compatibility endpoint used by older marketplace clients. Accepts `categories` as comma-separated ServiceCategory IDs.

Auth: Bearer token (`Authorization: Bearer <token>`)Source: CAROWNER-API-COMPLETE.md

Request Example

{}

Response Example

{
  "results": [
    {
      "org_nr": "921460929",
      "name": "string_value",
      "address_line": "string_value",
      "city": "string_value",
      "postal_code": "string_value",
      "latitude": 499.0,
      "longitude": 499.0,
      "distance_km": 499.0,
      "logo": [
        {}
      ],
      "categories": [
        {}
      ],
      "avg_rating": 499.0,
      "total_reviews": 1,
      "cheapest_service_price": 499.0,
      "services_count": 1
    }
  ],
  "count": 1,
  "total_count": 1,
  "total_pages": 1,
  "current_page": 1,
  "page_size": 1
}
Node.js Axios example
import axios from "axios";

const BASE_URL = process.env.MINBIL_API_BASE_URL ?? "http://localhost:5000";
const API_KEY = process.env.MINBIL_API_KEY ?? "YOUR_API_KEY";
const ACCESS_TOKEN = process.env.MINBIL_ACCESS_TOKEN ?? "YOUR_BEARER_TOKEN";

async function run() {
  const response = await axios({
    method: "get",
    url: BASE_URL + "/api/co/filters/filterByHierarchicalCategories?categories=string_value",
    headers: {
      "Content-Type": "application/json",
      Authorization: "Bearer " + ACCESS_TOKEN,
    },
    timeout: 20000,
  });
  console.log(response.status, response.data);
}

run().catch((error) => {
  console.error(error.response?.status, error.response?.data ?? error.message);
});
cURL example
curl -X GET 'https://api.minbil.no/api/co/filters/filterByHierarchicalCategories?categories=string_value'\
  -H 'Accept: application/json'\
  -H 'Authorization: Bearer <access-token>'
Fetch example
const BASE_URL = process.env.MINBIL_API_BASE_URL ?? "http://localhost:5000";
const API_KEY = process.env.MINBIL_API_KEY ?? "YOUR_API_KEY";
const ACCESS_TOKEN = process.env.MINBIL_ACCESS_TOKEN ?? "YOUR_BEARER_TOKEN";

const response = await fetch(BASE_URL + "/api/co/filters/filterByHierarchicalCategories?categories=string_value", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    Authorization: "Bearer " + ACCESS_TOKEN,
  },
});
const data = await response.json();
console.log(response.status, data);
GET/api/co/filters/location?radius=25&lng=10.7522&lat=59.9139

Endpoint operation.

Find workshops within a radius (km) from a given latitude/longitude.

Auth: Bearer token (`Authorization: Bearer <token>`)Source: CAROWNER-API-COMPLETE.md

Request Example

{}

Response Example

{
  "results": [
    {
      "org_nr": "921460929",
      "name": "string_value",
      "address_line": "string_value",
      "city": "string_value",
      "postal_code": "string_value",
      "latitude": 499.0,
      "longitude": 499.0,
      "distance_km": 499.0,
      "logo": [
        {}
      ],
      "categories": [
        {}
      ],
      "avg_rating": 499.0,
      "total_reviews": 1,
      "cheapest_service_price": 499.0,
      "services_count": 1
    }
  ],
  "count": 1,
  "total_count": 1,
  "total_pages": 1,
  "current_page": 1,
  "page_size": 1
}
Node.js Axios example
import axios from "axios";

const BASE_URL = process.env.MINBIL_API_BASE_URL ?? "http://localhost:5000";
const API_KEY = process.env.MINBIL_API_KEY ?? "YOUR_API_KEY";
const ACCESS_TOKEN = process.env.MINBIL_ACCESS_TOKEN ?? "YOUR_BEARER_TOKEN";

async function run() {
  const response = await axios({
    method: "get",
    url: BASE_URL + "/api/co/filters/location?radius=25&lng=10.7522&lat=59.9139",
    headers: {
      "Content-Type": "application/json",
      Authorization: "Bearer " + ACCESS_TOKEN,
    },
    timeout: 20000,
  });
  console.log(response.status, response.data);
}

run().catch((error) => {
  console.error(error.response?.status, error.response?.data ?? error.message);
});
cURL example
curl -X GET 'https://api.minbil.no/api/co/filters/location?radius=25&lng=10.7522&lat=59.9139'\
  -H 'Accept: application/json'\
  -H 'Authorization: Bearer <access-token>'
Fetch example
const BASE_URL = process.env.MINBIL_API_BASE_URL ?? "http://localhost:5000";
const API_KEY = process.env.MINBIL_API_KEY ?? "YOUR_API_KEY";
const ACCESS_TOKEN = process.env.MINBIL_ACCESS_TOKEN ?? "YOUR_BEARER_TOKEN";

const response = await fetch(BASE_URL + "/api/co/filters/location?radius=25&lng=10.7522&lat=59.9139", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    Authorization: "Bearer " + ACCESS_TOKEN,
  },
});
const data = await response.json();
console.log(response.status, data);