Skip to content

Search the catalog

GET
/v1/catalog/products
curl --request GET \
--url 'https://api.blupinta.app/v1/catalog/products?mount=floor&sort=relevance&language=it' \
--header 'Authorization: Bearer <token>'

Blupinta’s catalog of products searched as the editor searches it: words, narrowed by category, brand, mount and colour family, in pages.

q
string

Words to find, tolerant of a slip of a letter and of accents

category
string

A category or any below it (storage takes storage/shelving)

brand
Array<string>

Any of these brands

mount
string
Allowed values: floor wall ceiling surface built-in

Where it stands or hangs

family
string

A colour family one of its finishes is in (white, wood)

sort
string
Allowed values: relevance name smallest largest

The order: by relevance (the default), by name, smallest or largest first

language
string
Allowed values: it en

The names words and order are read in (en by default)

limit
integer
>= 1

How many on a page, at most 100 (50 by default)

after
string

Where the page starts: the next of the page before

Search the catalog

Media typeapplication/json

A page of a catalog search

object
rows
required
Array<object>

A product of the catalog as a search lists it

object
id
required

namespace/name, stable forever (“ikea/kallax”): read it whole at /v1/catalog/products/{namespace}/{name}

string
version
required

Bumped on any change that can move or reshape an item made of it

integer
brand
required
string | null
name
required
object
it
required
string
en
required
string
category
required

A path in the catalog’s taxonomy (“storage/shelving”)

string
mount
required
string
Allowed values: floor wall ceiling surface built-in
thumbnails
required

Its thumbnails, by sha256: /v1/catalog/thumbnails/{sha256}

Array<string>
total
required

How many products the search found in all

integer
next
required

Where the next page starts, to send back as after; null on the last page

string | null
Example
{
"rows": [
{
"mount": "floor"
}
]
}
RateLimit-Limit
integer

The requests the caller may make in the window: an app counts per connection, every token together

RateLimit-Remaining
integer

The requests left in the window

RateLimit-Reset
integer

Seconds until the window starts again

invalid_input: What was sent isn’t right: problems says what, each with where

Media typeapplication/json

The body of a refusal

object
error
required

What /v1 answers when it refuses

string
Allowed values: unauthenticated forbidden not_found rate_limited server_error invalid_input conflict invalid_home blocking_problems unsupported_file
errorId

The server’s id for a server_error, to quote when asking for help

string
problems

What is wrong, for invalid_input, conflict, invalid_home, blocking_problems

Array<string>
Example
{
"error": "unauthenticated"
}
RateLimit-Limit
integer

The requests the caller may make in the window: an app counts per connection, every token together

RateLimit-Remaining
integer

The requests left in the window

RateLimit-Reset
integer

Seconds until the window starts again

unauthenticated: No valid access token for this API

Media typeapplication/json

The body of a refusal

object
error
required

What /v1 answers when it refuses

string
Allowed values: unauthenticated forbidden not_found rate_limited server_error invalid_input conflict invalid_home blocking_problems unsupported_file
errorId

The server’s id for a server_error, to quote when asking for help

string
problems

What is wrong, for invalid_input, conflict, invalid_home, blocking_problems

Array<string>
Example
{
"error": "unauthenticated"
}
RateLimit-Limit
integer

The requests the caller may make in the window: an app counts per connection, every token together

RateLimit-Remaining
integer

The requests left in the window

RateLimit-Reset
integer

Seconds until the window starts again

forbidden: The token lacks the scope this operation needs

Media typeapplication/json

The body of a refusal

object
error
required

What /v1 answers when it refuses

string
Allowed values: unauthenticated forbidden not_found rate_limited server_error invalid_input conflict invalid_home blocking_problems unsupported_file
errorId

The server’s id for a server_error, to quote when asking for help

string
problems

What is wrong, for invalid_input, conflict, invalid_home, blocking_problems

Array<string>
Example
{
"error": "unauthenticated"
}
RateLimit-Limit
integer

The requests the caller may make in the window: an app counts per connection, every token together

RateLimit-Remaining
integer

The requests left in the window

RateLimit-Reset
integer

Seconds until the window starts again

rate_limited: Too many requests: wait as long as Retry-After says

Media typeapplication/json

The body of a refusal

object
error
required

What /v1 answers when it refuses

string
Allowed values: unauthenticated forbidden not_found rate_limited server_error invalid_input conflict invalid_home blocking_problems unsupported_file
errorId

The server’s id for a server_error, to quote when asking for help

string
problems

What is wrong, for invalid_input, conflict, invalid_home, blocking_problems

Array<string>
Example
{
"error": "unauthenticated"
}
RateLimit-Limit
integer

The requests the caller may make in the window: an app counts per connection, every token together

RateLimit-Remaining
integer

The requests left in the window

RateLimit-Reset
integer

Seconds until the window starts again

Retry-After
integer

Seconds to wait before asking again

server_error: Something failed on Blupinta’s side: quote errorId when asking for help

Media typeapplication/json

The body of a refusal

object
error
required

What /v1 answers when it refuses

string
Allowed values: unauthenticated forbidden not_found rate_limited server_error invalid_input conflict invalid_home blocking_problems unsupported_file
errorId

The server’s id for a server_error, to quote when asking for help

string
problems

What is wrong, for invalid_input, conflict, invalid_home, blocking_problems

Array<string>
Example
{
"error": "unauthenticated"
}
RateLimit-Limit
integer

The requests the caller may make in the window: an app counts per connection, every token together

RateLimit-Remaining
integer

The requests left in the window

RateLimit-Reset
integer

Seconds until the window starts again