Skip to content

Discover capabilities

GET
/api/v1/capabilities
curl --request GET \
--url http://127.0.0.1:8080/api/v1/capabilities

Unauthenticated requests return product, API compatibility, interactive sign-in methods, and sign-in features only. auth.native_sign_in means a native app can complete OIDC, SAML, and managed sign-in through begin-native-provider-login and finish-native-provider-login. auth.native_link means a signed-in native app can link an OIDC or SAML identity through create-native-link-ticket, begin-native-provider-login, and finish-native-provider-link. auth.managed_session means a managed provider is configured and its web and native sign-in use short-lived, tenant-audienced grants after PKCE code redemption. auth.managed_native_session means a native client can redeem a scoped hosting grant through finish-managed-native-login for an ordinary local session. Authenticated requests add registered formats, optional features, and enforced bounds. recipes.search.ingredient means ingredient: queries match indexed ingredient names, including optional and alternative names, with original-line fallback only when the name is absent. All words in one qualifier must match the same ingredient. Capabilities describe availability, not a grant of authorization. Schema version 1 permits additive optional fields and new IDs; clients ignore unknown IDs. Cache for the current session and refresh after reconnect or configuration changes.

OK

Media typeapplication/json
object
api_major
required
integer format: int64
auth_enabled
required
boolean
auth_features
Array<string> | null
auth_methods
required
Array<object> | null
object
id
required
string
kind
required
string
name
required
string
key
additional properties
any
event_types
Array<string> | null
exporters
Array<object> | null
object
collection
required
boolean
extensions
Array<string> | null
id
required
string
input_kinds
Array<string> | null
media_types
Array<string> | null
name
required
string
version
string
key
additional properties
any
features
Array<string> | null
importers
Array<object> | null
object
collection
required
boolean
extensions
Array<string> | null
id
required
string
input_kinds
Array<string> | null
media_types
Array<string> | null
name
required
string
version
string
key
additional properties
any
limits
object
artifact_hours
required
integer format: int64
async_items
required
integer format: int64
bulk_items
required
integer format: int64
export_artifact_bytes
required
integer format: int64
export_recipes
required
integer format: int64
grocery_addition_items
required
integer format: int64
import_file_bytes
required
integer format: int64
lookup_items
required
integer format: int64
pantry_entries
required
integer format: int64
print_recipes

Most recipes one printed document holds, when printing is available

integer format: int64
request_body_bytes
required
integer format: int64
retry_receipt_hours
required
integer format: int64
suggestion_items
required
integer format: int64
key
additional properties
any
product
required
string
schema_version
required
integer format: int64
sref_read
Array<string> | null
sref_write
Array<string> | null
version
required
string
key
additional properties
any
Examplegenerated
{
"api_major": 1,
"auth_enabled": true,
"auth_features": [
"example"
],
"auth_methods": [
{
"id": "example",
"kind": "example",
"name": "example"
}
],
"event_types": [
"example"
],
"exporters": [
{
"collection": true,
"extensions": [
"example"
],
"id": "example",
"input_kinds": [
"example"
],
"media_types": [
"example"
],
"name": "example",
"version": "example"
}
],
"features": [
"example"
],
"importers": [
{
"collection": true,
"extensions": [
"example"
],
"id": "example",
"input_kinds": [
"example"
],
"media_types": [
"example"
],
"name": "example",
"version": "example"
}
],
"limits": {
"artifact_hours": 1,
"async_items": 1,
"bulk_items": 1,
"export_artifact_bytes": 1,
"export_recipes": 1,
"grocery_addition_items": 1,
"import_file_bytes": 1,
"lookup_items": 1,
"pantry_entries": 1,
"print_recipes": 1,
"request_body_bytes": 1,
"retry_receipt_hours": 1,
"suggestion_items": 1
},
"product": "example",
"schema_version": 1,
"sref_read": [
"example"
],
"sref_write": [
"example"
],
"version": "example"
}

The credential sent is invalid (invalid-credentials).

Media typeapplication/problem+json
object
code
required
string
detail
required
string
status
required
integer format: int64
title
required
string
type
required
string
key
additional properties
any
Examplegenerated
{
"code": "example",
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}

Error

Media typeapplication/problem+json
object
code

Stable application error code; clients may also use the problem type suffix.

string
detail

A human-readable explanation specific to this occurrence of the problem.

string
errors

Optional list of individual error details

Array<object> | null
object
location

Where the error occurred, e.g. ‘body.items[3].tags’ or ‘path.thing-id’

string
message

Error message text

string
value

The value at the given location

key
additional properties
any
instance

A URI reference that identifies the specific occurrence of the problem.

string format: uri
params

Structured context for the stable error code.

object
key
additional properties
any
status

HTTP status code

integer format: int64
title

A short, human-readable summary of the problem type. This value should not change between occurrences of the error.

string
type

A URI reference to human-readable documentation for the error.

string format: uri
default: about:blank
violations
Array<object>
object
code
required
string
location
required
string
params
object
key
additional properties
any
key
additional properties
any
Example
{
"detail": "Property foo is required but is missing.",
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "about:blank"
}