Zum Inhalt springen

List the channel's price contexts

GET
/v1/admin/channels/{channelId}/price-contexts
curl --request GET \
--url http://localhost:8080/v1/admin/channels/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/price-contexts \
--header 'Authorization: Bearer <token>' \
--header 'X-Antares-Actor: <X-Antares-Actor>'

The diagnostics list behind “which customer groups and price lists does Antares actually know about?”. Each entry resolves a 35-character fingerprint back to the merchant-readable situation that produced it — customer group, matched price rules, quantity thresholds — plus how many indexed documents carry it and when the connector last mentioned it. This is what a merchant is shown instead of the deleted “multi-currency channel not supported” warning: a context with productCount: 0 means the connector registered it but no product deviates, which is normal and cheap, and a context that stopped being seen is the first symptom of a rule that was deleted in the shop. Role: viewer. Prices are never included here.

channelId
required
string format: uuid

Channel UUID — never the human-readable channelKey. Validated against the actor’s organization first.

The implicit default context plus every registered non-default context.

Media typeapplication/json
object
defaultContext
required

The implicit default context, always present, always with ctx: "default". Its productCount is the channel’s total document count.

object
ctx
required

A price-context identifier as it appears in tokens, field names and diagnostics: either the reserved literal default, which names the prices every visitor sees, or a 35-character fingerprint. A validator accepts a context id if and only if it matches one of those two forms.

string
/^(default|c[0-9]{2}[0-9a-f]{32})$/
label
required

What the connector called it. For the implicit default context the API supplies a translated “Standard price” label.

string
<= 120 characters
customerGroupId

The platform customer-group id as the connector sent it, before normalisation. Absent when the situation is not group-bound.

string
<= 128 characters
ruleIds
required

The platform price-rule ids that matched, as the connector sent them.

Array<string>
tierBoundaries
required

Quantity thresholds this context’s own rules introduce.

Array<integer>
productCount
required

How many indexed documents carry a deviating price for this context. Zero is normal and cheap: it means the connector registered the context but no product actually costs a different amount in it.

integer
currencies
required

The currencies at least one product prices in this context.

Array<string>
firstSeenAt
string format: date-time
lastSeenAt

When an envelope last mentioned this context. A value that stops moving is the first symptom of a price rule deleted in the shop; a context unmentioned for 30 days and carried by no document is pruned.

string format: date-time
items
required

Every registered non-default context, most recently seen first.

Array<object>

One registered price context, resolved back into the merchant-readable situation that produced its fingerprint. Carries no prices: this is a diagnostics list, not a price list.

object
ctx
required

A price-context identifier as it appears in tokens, field names and diagnostics: either the reserved literal default, which names the prices every visitor sees, or a 35-character fingerprint. A validator accepts a context id if and only if it matches one of those two forms.

string
/^(default|c[0-9]{2}[0-9a-f]{32})$/
label
required

What the connector called it. For the implicit default context the API supplies a translated “Standard price” label.

string
<= 120 characters
customerGroupId

The platform customer-group id as the connector sent it, before normalisation. Absent when the situation is not group-bound.

string
<= 128 characters
ruleIds
required

The platform price-rule ids that matched, as the connector sent them.

Array<string>
tierBoundaries
required

Quantity thresholds this context’s own rules introduce.

Array<integer>
productCount
required

How many indexed documents carry a deviating price for this context. Zero is normal and cheap: it means the connector registered the context but no product actually costs a different amount in it.

integer
currencies
required

The currencies at least one product prices in this context.

Array<string>
firstSeenAt
string format: date-time
lastSeenAt

When an envelope last mentioned this context. A value that stops moving is the first symptom of a price rule deleted in the shop; a context unmentioned for 30 days and carried by no document is pruned.

string format: date-time
Example
{
"defaultContext": {
"ctx": "default",
"currencies": [
"EUR"
]
},
"items": [
{
"ctx": "default",
"currencies": [
"EUR"
]
}
]
}

contract_validation_failed — the OpenAPI request validator rejected the request before the handler ran — or invalid_request when the body is unreadable or is not valid JSON for the declared operation.

Media typeapplication/problem+json

RFC 9457 problem details. type is always https://api.antares.commergy.de/problems/{code} and is built in exactly one place. type, code and title are stable and never localised; only detail is localised, and only where the registry marks the audience as merchant.

object
type
required

Absolute problem type URI. Stable identifier, never localised.

string format: uri-reference
title
required

Stable English summary of the problem type.

string
status
required

The HTTP status code, repeated in the body.

integer
>= 400 <= 599
detail

Human-readable explanation of this occurrence. The only localised field; may be German or English depending on Accept-Language.

string
instance

The request path this occurrence relates to.

string format: uri-reference
code

The registry code, for example price_context_token_expired. This is what a client branches on; never branch on title or detail.

string
errors

Present only for per-item validation failures, above all ingest batches.

Array<object>
object
field
required

Dotted path of the offending field inside the request body, for example prices.CHF.gross.

string
message
required

What is wrong with it, in English.

string
productIndex

0-based index into the request’s products array. Present only for ingest batches, and the only way to map an error back to a product without echoing it.

integer
key
additional properties
any
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example",
"code": "example",
"errors": [
{
"field": "example",
"message": "example",
"productIndex": 1
}
]
}

unauthorized — the credential is missing, malformed, unknown or revoked. For /v1/admin this also covers an actor JWS that fails signature, exp or kid verification, and a kid that no key in the panel’s JWKS matches.

Media typeapplication/problem+json

RFC 9457 problem details. type is always https://api.antares.commergy.de/problems/{code} and is built in exactly one place. type, code and title are stable and never localised; only detail is localised, and only where the registry marks the audience as merchant.

object
type
required

Absolute problem type URI. Stable identifier, never localised.

string format: uri-reference
title
required

Stable English summary of the problem type.

string
status
required

The HTTP status code, repeated in the body.

integer
>= 400 <= 599
detail

Human-readable explanation of this occurrence. The only localised field; may be German or English depending on Accept-Language.

string
instance

The request path this occurrence relates to.

string format: uri-reference
code

The registry code, for example price_context_token_expired. This is what a client branches on; never branch on title or detail.

string
errors

Present only for per-item validation failures, above all ingest batches.

Array<object>
object
field
required

Dotted path of the offending field inside the request body, for example prices.CHF.gross.

string
message
required

What is wrong with it, in English.

string
productIndex

0-based index into the request’s products array. Present only for ingest batches, and the only way to map an error back to a product without echoing it.

integer
key
additional properties
any
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example",
"code": "example",
"errors": [
{
"field": "example",
"message": "example",
"productIndex": 1
}
]
}

forbidden — authenticated, but the actor’s role does not carry the permission this route needs, or the operation is one of the three that refuse an impersonated actor (billing checkout, portal link, key rotation).

Media typeapplication/problem+json

RFC 9457 problem details. type is always https://api.antares.commergy.de/problems/{code} and is built in exactly one place. type, code and title are stable and never localised; only detail is localised, and only where the registry marks the audience as merchant.

object
type
required

Absolute problem type URI. Stable identifier, never localised.

string format: uri-reference
title
required

Stable English summary of the problem type.

string
status
required

The HTTP status code, repeated in the body.

integer
>= 400 <= 599
detail

Human-readable explanation of this occurrence. The only localised field; may be German or English depending on Accept-Language.

string
instance

The request path this occurrence relates to.

string format: uri-reference
code

The registry code, for example price_context_token_expired. This is what a client branches on; never branch on title or detail.

string
errors

Present only for per-item validation failures, above all ingest batches.

Array<object>
object
field
required

Dotted path of the offending field inside the request body, for example prices.CHF.gross.

string
message
required

What is wrong with it, in English.

string
productIndex

0-based index into the request’s products array. Present only for ingest batches, and the only way to map an error back to a product without echoing it.

integer
key
additional properties
any
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example",
"code": "example",
"errors": [
{
"field": "example",
"message": "example",
"productIndex": 1
}
]
}

not_found — the addressed shop, channel, synonym, curation, index run, key or organization does not exist inside the caller’s organization. Deliberately indistinguishable from “exists but belongs to somebody else”.

Media typeapplication/problem+json

RFC 9457 problem details. type is always https://api.antares.commergy.de/problems/{code} and is built in exactly one place. type, code and title are stable and never localised; only detail is localised, and only where the registry marks the audience as merchant.

object
type
required

Absolute problem type URI. Stable identifier, never localised.

string format: uri-reference
title
required

Stable English summary of the problem type.

string
status
required

The HTTP status code, repeated in the body.

integer
>= 400 <= 599
detail

Human-readable explanation of this occurrence. The only localised field; may be German or English depending on Accept-Language.

string
instance

The request path this occurrence relates to.

string format: uri-reference
code

The registry code, for example price_context_token_expired. This is what a client branches on; never branch on title or detail.

string
errors

Present only for per-item validation failures, above all ingest batches.

Array<object>
object
field
required

Dotted path of the offending field inside the request body, for example prices.CHF.gross.

string
message
required

What is wrong with it, in English.

string
productIndex

0-based index into the request’s products array. Present only for ingest batches, and the only way to map an error back to a product without echoing it.

integer
key
additional properties
any
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example",
"code": "example",
"errors": [
{
"field": "example",
"message": "example",
"productIndex": 1
}
]
}

rate_limit_exceeded — the per-key or per-IP token bucket is exhausted.

Media typeapplication/problem+json

RFC 9457 problem details. type is always https://api.antares.commergy.de/problems/{code} and is built in exactly one place. type, code and title are stable and never localised; only detail is localised, and only where the registry marks the audience as merchant.

object
type
required

Absolute problem type URI. Stable identifier, never localised.

string format: uri-reference
title
required

Stable English summary of the problem type.

string
status
required

The HTTP status code, repeated in the body.

integer
>= 400 <= 599
detail

Human-readable explanation of this occurrence. The only localised field; may be German or English depending on Accept-Language.

string
instance

The request path this occurrence relates to.

string format: uri-reference
code

The registry code, for example price_context_token_expired. This is what a client branches on; never branch on title or detail.

string
errors

Present only for per-item validation failures, above all ingest batches.

Array<object>
object
field
required

Dotted path of the offending field inside the request body, for example prices.CHF.gross.

string
message
required

What is wrong with it, in English.

string
productIndex

0-based index into the request’s products array. Present only for ingest batches, and the only way to map an error back to a product without echoing it.

integer
key
additional properties
any
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example",
"code": "example",
"errors": [
{
"field": "example",
"message": "example",
"productIndex": 1
}
]
}
Retry-After
integer
>= 1

Seconds until the bucket refills enough for one request.

internal_error — unhandled failure. detail is always generic; the cause goes to the log with a correlation id.

Media typeapplication/problem+json

RFC 9457 problem details. type is always https://api.antares.commergy.de/problems/{code} and is built in exactly one place. type, code and title are stable and never localised; only detail is localised, and only where the registry marks the audience as merchant.

object
type
required

Absolute problem type URI. Stable identifier, never localised.

string format: uri-reference
title
required

Stable English summary of the problem type.

string
status
required

The HTTP status code, repeated in the body.

integer
>= 400 <= 599
detail

Human-readable explanation of this occurrence. The only localised field; may be German or English depending on Accept-Language.

string
instance

The request path this occurrence relates to.

string format: uri-reference
code

The registry code, for example price_context_token_expired. This is what a client branches on; never branch on title or detail.

string
errors

Present only for per-item validation failures, above all ingest batches.

Array<object>
object
field
required

Dotted path of the offending field inside the request body, for example prices.CHF.gross.

string
message
required

What is wrong with it, in English.

string
productIndex

0-based index into the request’s products array. Present only for ingest batches, and the only way to map an error back to a product without echoing it.

integer
key
additional properties
any
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example",
"code": "example",
"errors": [
{
"field": "example",
"message": "example",
"productIndex": 1
}
]
}