Introduction

REST API for custom integrations with external systems. Allows bulk import of products and categories.

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

You can retrieve your token by visiting your dashboard and clicking Generate API token.

API V2 (Multilang)

Products


Product list

GET
https://api.pobo.space
/api/v2/rest/products
requires authentication

Get paginated list of products with content in all active languages. Only returns products with is_delete=false (includes both visible and hidden products). Language variants are returned only if is_active=true.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

page
integer

The page number. Default: 1.

Example:
1
per_page
integer

Items per page. Maximum: 100, Default: 100.

Example:
50
is_edited
boolean

Filter by edited status (is_loaded).

Example:
true
last_update_time_from
string

Filter products updated after this datetime. Format: Y-m-d H:i:s.

Example:
2024-01-01 14:30:00
Example request:
curl --request GET \
    --get "https://api.pobo.space/api/v2/rest/products?page=1&per_page=50&is_edited=1&last_update_time_from=2024-01-01+14%3A30%3A00" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "id": "PROD-001",
            "guid": "550e8400-e29b-41d4-a716-446655440000",
            "is_visible": true,
            "is_loaded": false,
            "image_preview": "https://example.com/preview.jpg",
            "name": {
                "default": "Product Name",
                "sk": "Názov produktu"
            },
            "short_description": {
                "default": "Short description",
                "sk": "Krátky popis"
            },
            "description": {
                "default": "<p>Full description</p>",
                "sk": "<p>Plný popis</p>"
            },
            "url": {
                "default": "https://example.com/product",
                "sk": "https://example.com/sk/produkt"
            },
            "seo_title": {
                "default": "SEO Title",
                "sk": "SEO Názov"
            },
            "seo_description": {
                "default": "SEO Description",
                "sk": "SEO Popis"
            },
            "content": {
                "html": {
                    "cs": "<div class=\"pobo-content\">...</div>",
                    "sk": "<div class=\"pobo-content\">...</div>",
                    "en": "<div class=\"pobo-content\">...</div>"
                },
                "marketplace": {
                    "cs": "<div class=\"pobo-content\">...</div>",
                    "sk": "<div class=\"pobo-content\">...</div>",
                    "en": "<div class=\"pobo-content\">...</div>"
                }
            },
            "created_at": "2024-01-15T10:30:00.000000Z",
            "updated_at": "2024-01-16T14:20:00.000000Z"
        }
    ],
    "meta": {
        "current_page": 1,
        "per_page": 100,
        "total": 150
    }
}
{
    "error": "Authorization token required"
}

Bulk import products

POST
https://api.pobo.space
/api/v2/rest/products
requires authentication

Import or update multiple products at once with multilingual content. Maximum 100 products per request. Invalid products will be skipped and reported in the errors array.

Supported languages: default, cs, sk, en, de, pl, hu

Validation rules:

  • name.default and url.default are always required
  • If a language key exists anywhere in the request, name.{lang} and url.{lang} are required
  • Other multilang fields (short_description, description, seo_title, seo_description) can be null but keys must exist
  • URL must start with https://
  • Unsupported languages are silently ignored

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.pobo.space/api/v2/rest/products" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"*\": {
        \"id\": \"PROD-123-ABC\",
        \"is_visible\": true,
        \"images\": [
            \"https:\\/\\/example.com\\/img1.jpg\",
            \"https:\\/\\/example.com\\/img2.jpg\"
        ],
        \"categories_ids\": [
            \"CAT-001\",
            \"CAT-002\"
        ],
        \"parameters_ids\": [
            1,
            2,
            3
        ],
        \"name\": {
            \"default\": \"Product Name\",
            \"sk\": \"Názov produktu\",
            \"*\": \"Názov produktu\"
        },
        \"url\": {
            \"default\": \"https:\\/\\/example.com\\/product\",
            \"sk\": \"https:\\/\\/example.com\\/sk\\/produkt\",
            \"*\": \"https:\\/\\/example.com\\/sk\\/produkt\"
        },
        \"short_description\": {
            \"default\": \"Short desc\",
            \"sk\": \"Krátky popis\",
            \"*\": \"voluptas\"
        },
        \"description\": {
            \"default\": \"<p>Full description<\\/p>\",
            \"sk\": \"<p>Plný popis<\\/p>\",
            \"*\": \"consectetur\"
        },
        \"seo_title\": {
            \"default\": \"SEO Title\",
            \"sk\": \"SEO Názov\",
            \"*\": \"est\"
        },
        \"seo_description\": {
            \"default\": \"SEO Description\",
            \"sk\": \"SEO Popis\",
            \"*\": \"exercitationem\"
        }
    }
}"
Example response:
{
    "success": true,
    "imported": 2,
    "updated": 1,
    "skipped": 1,
    "errors": [
        {
            "index": 3,
            "id": "PROD-004",
            "errors": [
                "The name.sk field is required when using language sk."
            ]
        }
    ]
}
{
    "error": "Authorization token required"
}
{
    "success": false,
    "errors": {
        "bulk": [
            "Maximum 100 items allowed for bulk import"
        ]
    }
}

Bulk delete products

DELETE
https://api.pobo.space
/api/v2/rest/products
requires authentication

Soft-delete multiple products at once by setting is_delete = true. Maximum 100 products per request. Products that don't exist or are already deleted will be skipped.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request DELETE \
    "https://api.pobo.space/api/v2/rest/products" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "success": true,
    "deleted": 2,
    "skipped": 1,
    "errors": [
        {
            "index": 2,
            "id": "PROD-999",
            "errors": [
                "Product not found"
            ]
        }
    ]
}
{
    "error": "Authorization token required"
}
{
    "success": false,
    "errors": {
        "bulk": [
            "Maximum 100 items allowed for bulk delete"
        ]
    }
}

Categories


Category list

GET
https://api.pobo.space
/api/v2/rest/categories
requires authentication

Get paginated list of categories with content in all active languages. Only returns categories with is_delete=false (includes both visible and hidden categories). Language variants are returned only if is_active=true.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

page
integer

The page number. Default: 1.

Example:
1
per_page
integer

Items per page. Maximum: 100, Default: 100.

Example:
50
is_edited
boolean

Filter by edited status (is_loaded).

Example:
true
last_update_time_from
string

Filter categories updated after this datetime. Format: Y-m-d H:i:s.

Example:
2024-01-01 14:30:00
Example request:
curl --request GET \
    --get "https://api.pobo.space/api/v2/rest/categories?page=1&per_page=50&is_edited=1&last_update_time_from=2024-01-01+14%3A30%3A00" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "id": "CAT-001",
            "guid": "550e8400-e29b-41d4-a716-446655440000",
            "is_visible": true,
            "is_loaded": false,
            "name": {
                "default": "Electronics",
                "sk": "Elektronika"
            },
            "description": {
                "default": "<p>Electronics category</p>",
                "sk": "<p>Kategória elektroniky</p>"
            },
            "url": {
                "default": "https://example.com/electronics",
                "sk": "https://example.com/sk/elektronika"
            },
            "seo_title": {
                "default": "Electronics | Shop",
                "sk": "Elektronika | Obchod"
            },
            "seo_description": {
                "default": "Best electronics",
                "sk": "Najlepšia elektronika"
            },
            "content": {
                "html": {
                    "cs": "<div class=\"pobo-content\">...</div>",
                    "sk": "<div class=\"pobo-content\">...</div>",
                    "en": "<div class=\"pobo-content\">...</div>"
                },
                "marketplace": {
                    "cs": "<div class=\"pobo-content\">...</div>",
                    "sk": "<div class=\"pobo-content\">...</div>",
                    "en": "<div class=\"pobo-content\">...</div>"
                }
            },
            "created_at": "2024-01-15T10:30:00.000000Z",
            "updated_at": "2024-01-16T14:20:00.000000Z"
        }
    ],
    "meta": {
        "current_page": 1,
        "per_page": 100,
        "total": 50
    }
}
{
    "error": "Authorization token required"
}

Bulk import categories

POST
https://api.pobo.space
/api/v2/rest/categories
requires authentication

Import or update multiple categories at once with multilingual content. Maximum 100 categories per request. Invalid categories will be skipped and reported in the errors array.

Supported languages: default, cs, sk, en, de, pl, hu

Validation rules:

  • name.default and url.default are always required
  • If a language key exists anywhere in the request, name.{lang} and url.{lang} are required
  • Other multilang fields (description, seo_title, seo_description) can be null but keys must exist
  • URL must start with https://
  • Unsupported languages are silently ignored

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.pobo.space/api/v2/rest/categories" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"*\": {
        \"id\": \"A01.01.07\",
        \"is_visible\": true,
        \"images\": [
            \"https:\\/\\/example.com\\/img1.jpg\"
        ],
        \"name\": {
            \"default\": \"Electronics\",
            \"sk\": \"Elektronika\",
            \"*\": \"Elektronika\"
        },
        \"url\": {
            \"default\": \"https:\\/\\/example.com\\/electronics\",
            \"sk\": \"https:\\/\\/example.com\\/sk\\/elektronika\",
            \"*\": \"https:\\/\\/example.com\\/sk\\/elektronika\"
        },
        \"description\": {
            \"default\": \"<p>Description<\\/p>\",
            \"sk\": \"<p>Popis<\\/p>\",
            \"*\": \"eos\"
        },
        \"seo_title\": {
            \"default\": \"SEO Title\",
            \"sk\": \"SEO Názov\",
            \"*\": \"alias\"
        },
        \"seo_description\": {
            \"default\": \"SEO Description\",
            \"sk\": \"SEO Popis\",
            \"*\": \"ea\"
        }
    }
}"
Example response:
{
    "success": true,
    "imported": 2,
    "updated": 1,
    "skipped": 1,
    "errors": [
        {
            "index": 3,
            "id": "CAT-004",
            "errors": [
                "The name.sk field is required when using language sk."
            ]
        }
    ]
}
{
    "error": "Authorization token required"
}
{
    "success": false,
    "errors": {
        "bulk": [
            "Maximum 100 items allowed for bulk import"
        ]
    }
}

Bulk delete categories

DELETE
https://api.pobo.space
/api/v2/rest/categories
requires authentication

Soft-delete multiple categories at once by setting is_delete = true. Maximum 100 categories per request. Categories that don't exist or are already deleted will be skipped.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request DELETE \
    "https://api.pobo.space/api/v2/rest/categories" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "success": true,
    "deleted": 2,
    "skipped": 1,
    "errors": [
        {
            "index": 2,
            "id": "CAT-999",
            "errors": [
                "Category not found"
            ]
        }
    ]
}
{
    "error": "Authorization token required"
}
{
    "success": false,
    "errors": {
        "bulk": [
            "Maximum 100 items allowed for bulk delete"
        ]
    }
}

Parameters


Bulk import parameters

POST
https://api.pobo.space
/api/v2/rest/parameters
requires authentication

Import or update multiple parameters with their values at once. Maximum 100 parameters per request. Invalid parameters will be skipped and reported in the errors array.

Note: Parameters do not have multilang support - same structure as V1.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.pobo.space/api/v2/rest/parameters" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"*\": {
        \"id\": 1,
        \"name\": \"Color\",
        \"values\": [
            {
                \"id\": 1,
                \"value\": \"Red\"
            },
            {
                \"id\": 2,
                \"value\": \"Blue\"
            }
        ]
    }
}"
Example response:
{
    "success": true,
    "imported": 2,
    "updated": 1,
    "skipped": 0,
    "values_imported": 5,
    "values_updated": 2,
    "errors": []
}
{
    "error": "Authorization token required"
}
{
    "success": false,
    "errors": {
        "bulk": [
            "Maximum 100 items allowed for bulk import"
        ]
    }
}

Blogs


Blog list

GET
https://api.pobo.space
/api/v2/rest/blogs
requires authentication

Get paginated list of blogs with content in all active languages. Only returns blogs with is_delete=false (includes both visible and hidden blogs). Language variants are returned only if is_active=true.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

page
integer

The page number. Default: 1.

Example:
1
per_page
integer

Items per page. Maximum: 100, Default: 100.

Example:
50
is_edited
boolean

Filter by edited status (is_loaded).

Example:
true
last_update_time_from
string

Filter blogs updated after this datetime. Format: Y-m-d H:i:s.

Example:
2024-01-01 14:30:00
Example request:
curl --request GET \
    --get "https://api.pobo.space/api/v2/rest/blogs?page=1&per_page=50&is_edited=1&last_update_time_from=2024-01-01+14%3A30%3A00" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "data": [
        {
            "id": "BLOG-001",
            "guid": "550e8400-e29b-41d4-a716-446655440000",
            "category": "news",
            "is_visible": true,
            "is_loaded": false,
            "name": {
                "default": "Blog Title",
                "sk": "Názov blogu"
            },
            "description": {
                "default": "<p>Blog content</p>",
                "sk": "<p>Obsah blogu</p>"
            },
            "url": {
                "default": "https://example.com/blog-title",
                "sk": "https://example.com/sk/nazov-blogu"
            },
            "seo_title": {
                "default": "Blog Title | SEO",
                "sk": "Názov blogu | SEO"
            },
            "seo_description": {
                "default": "SEO description",
                "sk": "SEO popis"
            },
            "content": {
                "html": {
                    "cs": "<div class=\"pobo-content\">...</div>",
                    "sk": "<div class=\"pobo-content\">...</div>",
                    "en": "<div class=\"pobo-content\">...</div>"
                },
                "marketplace": {
                    "cs": "<div class=\"pobo-content\">...</div>",
                    "sk": "<div class=\"pobo-content\">...</div>",
                    "en": "<div class=\"pobo-content\">...</div>"
                }
            },
            "created_at": "2024-01-15T10:30:00.000000Z",
            "updated_at": "2024-01-16T14:20:00.000000Z"
        }
    ],
    "meta": {
        "current_page": 1,
        "per_page": 100,
        "total": 25
    }
}
{
    "error": "Authorization token required"
}

Bulk import blogs

POST
https://api.pobo.space
/api/v2/rest/blogs
requires authentication

Import or update multiple blogs at once with multilingual content. Maximum 100 blogs per request. Invalid blogs will be skipped and reported in the errors array.

Supported languages: default, cs, sk, en, de, pl, hu

Validation rules:

  • id, name.default and url.default are always required
  • If a language key exists anywhere in the request, name.{lang} and url.{lang} are required
  • Other multilang fields (description, seo_title, seo_description) can be null but keys must exist
  • URL must start with https://
  • Unsupported languages are silently ignored

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.pobo.space/api/v2/rest/blogs" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"*\": {
        \"id\": \"BLOG-001\",
        \"category\": \"news\",
        \"is_visible\": true,
        \"images\": [
            \"https:\\/\\/example.com\\/img1.jpg\"
        ],
        \"name\": {
            \"default\": \"Blog Title\",
            \"sk\": \"Názov blogu\",
            \"*\": \"Názov blogu\"
        },
        \"url\": {
            \"default\": \"https:\\/\\/example.com\\/blog\",
            \"sk\": \"https:\\/\\/example.com\\/sk\\/blog\",
            \"*\": \"https:\\/\\/example.com\\/sk\\/blog\"
        },
        \"description\": {
            \"default\": \"<p>Content<\\/p>\",
            \"sk\": \"<p>Obsah<\\/p>\",
            \"*\": \"exercitationem\"
        },
        \"seo_title\": {
            \"default\": \"SEO Title\",
            \"sk\": \"SEO Názov\",
            \"*\": \"et\"
        },
        \"seo_description\": {
            \"default\": \"SEO Description\",
            \"sk\": \"SEO Popis\",
            \"*\": \"qui\"
        }
    }
}"
Example response:
{
    "success": true,
    "imported": 2,
    "updated": 1,
    "skipped": 1,
    "errors": [
        {
            "index": 3,
            "id": "BLOG-004",
            "errors": [
                "The name.sk field is required when using language sk."
            ]
        }
    ]
}
{
    "error": "Authorization token required"
}
{
    "success": false,
    "errors": {
        "bulk": [
            "Maximum 100 items allowed for bulk import"
        ]
    }
}

Bulk delete blogs

DELETE
https://api.pobo.space
/api/v2/rest/blogs
requires authentication

Soft-delete multiple blogs at once by setting is_delete = true. Maximum 100 blogs per request. Blogs that don't exist or are already deleted will be skipped.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request DELETE \
    "https://api.pobo.space/api/v2/rest/blogs" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "success": true,
    "deleted": 2,
    "skipped": 1,
    "errors": [
        {
            "index": 2,
            "id": "BLOG-999",
            "errors": [
                "Blog not found"
            ]
        }
    ]
}
{
    "error": "Authorization token required"
}
{
    "success": false,
    "errors": {
        "bulk": [
            "Maximum 100 items allowed for bulk delete"
        ]
    }
}

API V1 (Legacy)

Products


Bulk import products

POST
https://api.pobo.space
/api/v1/products/bulk-import
requires authentication

Import or update multiple products at once. Maximum 100 products per request. Invalid products will be skipped and reported in the errors array.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.pobo.space/api/v1/products/bulk-import" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "success": true,
    "imported": 2,
    "updated": 0,
    "skipped": 1,
    "errors": [
        {
            "index": 0,
            "id": "PROD-123",
            "errors": [
                "The name field is required."
            ]
        }
    ]
}
{
    "error": "Authorization token required"
}
{
    "success": false,
    "errors": {
        "bulk": [
            "Maximum 100 items allowed for bulk import"
        ]
    }
}

Product list

GET
https://api.pobo.space
/api/v1/products/list
requires authentication

Get paginated list of products with content in all supported languages.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

page
integer

The page number. Default: 1.

Example:
1
per_page
integer

Items per page (max 100). Default: 100.

Example:
10
is_edited
boolean

Filter by edited status. If true, returns only edited products. If false, returns only unedited products. If omitted, returns all products.

Example:
true
last_update_time_from
string

Filter products updated after this datetime. Format: Y-m-d H:i:s (e.g., 2024-01-01 14:30:00).

Example:
2024-01-01 14:30:00
Example request:
curl --request GET \
    --get "https://api.pobo.space/api/v1/products/list?page=1&per_page=10&is_edited=1&last_update_time_from=2024-01-01+14%3A30%3A00" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "products": [
        {
            "id": "PROD-123",
            "name": "Sample Product",
            "short_description": "This is a sample product.",
            "url": "https://example.com/product/123",
            "content": {
                "html": {
                    "default": "<h1>Sample Product Description</h1><p>This product is used for demonstration purposes.</p>",
                    "cs": "<h1>Popis vzorového produktu</h1><p>Tento produkt slouží pro demonstrační účely.</p>",
                    "en": "<h1>Sample Product Description</h1><p>This product is used for demonstration purposes.</p>",
                    "de": "<h1>Beispiel Produktbeschreibung</h1><p>Dieses Produkt wird zu Demonstrationszwecken verwendet.</p>",
                    "sk": "<h1>Popis vzorového produktu</h1><p>Tento produkt slúži na demonštračné účely.</p>"
                },
                "marketplace": {
                    "default": "<h1>Sample Product Description</h1><p>This product is used for demonstration purposes.</p>",
                    "cs": "<h1>Popis vzorového produktu</h1><p>Tento produkt slouží pro demonstrační účely.</p>",
                    "en": "<h1>Sample Product Description</h1><p>This product is used for demonstration purposes.</p>",
                    "de": "<h1>Beispiel Produktbeschreibung</h1><p>Dieses Produkt wird zu Demonstrationszwecken verwendet.</p>",
                    "sk": "<h1>Popis vzorového produktu</h1><p>Tento produkt slúži na demonštračné účely.</p>"
                }
            }
        }
    ],
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
{
    "error": "Authorization token required"
}

Categories


Bulk import categories

POST
https://api.pobo.space
/api/v1/categories/bulk-import
requires authentication

Import or update multiple categories at once. Maximum 100 categories per request. Invalid categories will be skipped and reported in the errors array.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.pobo.space/api/v1/categories/bulk-import" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "success": true,
    "imported": 2,
    "updated": 0,
    "skipped": 1,
    "errors": [
        {
            "index": 0,
            "id": "A01.01.07",
            "errors": [
                "The name field is required."
            ]
        }
    ]
}
{
    "error": "Authorization token required"
}
{
    "success": false,
    "errors": {
        "bulk": [
            "Maximum 100 items allowed for bulk import"
        ]
    }
}

Category list

GET
https://api.pobo.space
/api/v1/categories/list
requires authentication

Get paginated list of categories with content in all supported languages.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Query Parameters

page
integer

The page number. Default: 1.

Example:
1
per_page
integer

Items per page (max 100). Default: 100.

Example:
10
is_edited
boolean

Filter by edited status. If true, returns only edited categories. If false, returns only unedited categories. If omitted, returns all categories.

Example:
true
last_update_time_from
string

Filter categories updated after this datetime. Format: Y-m-d H:i:s (e.g., 2024-01-01 14:30:00).

Example:
2024-01-01 14:30:00
Example request:
curl --request GET \
    --get "https://api.pobo.space/api/v1/categories/list?page=1&per_page=10&is_edited=1&last_update_time_from=2024-01-01+14%3A30%3A00" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
Example response:
{
    "categories": [
        {
            "id": "A01.01.07",
            "name": "Sample Category",
            "url": "https://example.com/category/123",
            "content": {
                "html": {
                    "default": "<h1>Sample Category Description</h1><p>This category is used for demonstration purposes.</p>",
                    "cs": "<h1>Popis vzorové kategorie</h1><p>Tato kategorie slouží pro demonstrační účely.</p>",
                    "en": "<h1>Sample Category Description</h1><p>This category is used for demonstration purposes.</p>",
                    "de": "<h1>Beispiel Kategoriebeschreibung</h1><p>Diese Kategorie wird zu Demonstrationszwecken verwendet.</p>",
                    "sk": "<h1>Popis vzorovej kategórie</h1><p>Táto kategória slúži na demonštračné účely.</p>"
                },
                "marketplace": {
                    "default": "<h1>Sample Category Description</h1><p>This category is used for demonstration purposes.</p>",
                    "cs": "<h1>Popis vzorové kategorie</h1><p>Tato kategorie slouží pro demonstrační účely.</p>",
                    "en": "<h1>Sample Category Description</h1><p>This category is used for demonstration purposes.</p>",
                    "de": "<h1>Beispiel Kategoriebeschreibung</h1><p>Diese Kategorie wird zu Demonstrationszwecken verwendet.</p>",
                    "sk": "<h1>Popis vzorovej kategórie</h1><p>Táto kategória slúži na demonštračné účely.</p>"
                }
            }
        }
    ],
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "per_page": 10,
        "to": 2,
        "total": 2
    }
}
{
    "error": "Authorization token required"
}

Parameters


Bulk import parameters

POST
https://api.pobo.space
/api/v1/parameters/bulk-import
requires authentication

Import or update multiple parameters with their values at once. Maximum 100 parameters per request. Invalid parameters will be skipped and reported in the errors array.

Headers

Authorization
Example:
Bearer {YOUR_AUTH_KEY}
Content-Type
Example:
application/json
Accept
Example:
application/json

Body Parameters

Example request:
curl --request POST \
    "https://api.pobo.space/api/v1/parameters/bulk-import" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
Example response:
{
    "success": true,
    "imported": 2,
    "updated": 0,
    "skipped": 1,
    "values_imported": 4,
    "values_updated": 0,
    "errors": [
        {
            "index": 0,
            "id": 1,
            "errors": [
                "The name field is required."
            ]
        }
    ]
}
{
    "error": "Authorization token required"
}
{
    "success": false,
    "errors": {
        "bulk": [
            "Maximum 100 items allowed for bulk import"
        ]
    }
}