Appearance
credentials
5 endpoints.
GET /api/v1/settings/credentials
List Credentials
Every managed credential, its fields, and where to get each one.
200 — Successful Response
json
{}PUT /api/v1/settings/credentials/{cred_id}
Update Credential
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
cred_id | path | yes | string |
Request body
json
{
"properties": {
"values": {
"additionalProperties": {
"type": "string"
},
"type": "object",
"title": "Values"
}
},
"type": "object",
"required": [
"values"
],
"title": "CredentialIn",
"description": "Partial update: ``{field_name: value}``. A field omitted is left alone;\nan empty string clears that field's override so it falls back to ``.env``."
}200 — Successful Response
json
{}422 — Validation Error
json
{
"properties": {
"detail": {
"items": {
"properties": {
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"type": "array",
"title": "Location"
},
"msg": {
"type": "string",
"title": "Message"
},
"type": {
"type": "string",
"title": "Error Type"
}
},
"type": "object",
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}DELETE /api/v1/settings/credentials/{cred_id}
Clear Credential
Drop every stored field for one integration; .env takes over again.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
cred_id | path | yes | string |
200 — Successful Response
json
{}422 — Validation Error
json
{
"properties": {
"detail": {
"items": {
"properties": {
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"type": "array",
"title": "Location"
},
"msg": {
"type": "string",
"title": "Message"
},
"type": {
"type": "string",
"title": "Error Type"
}
},
"type": "object",
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}POST /api/v1/settings/credentials/{cred_id}/upload
Upload Credential File
Store an uploaded key file (Play JSON, Apple .p8) into one FILE field.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
cred_id | path | yes | string | |
field | query | yes | string |
200 — Successful Response
json
{}422 — Validation Error
json
{
"properties": {
"detail": {
"items": {
"properties": {
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"type": "array",
"title": "Location"
},
"msg": {
"type": "string",
"title": "Message"
},
"type": {
"type": "string",
"title": "Error Type"
}
},
"type": "object",
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}POST /api/v1/settings/credentials/{cred_id}/test
Test Credential
Prove the credential actually authenticates.
Deliberately a real round-trip rather than a "looks well-formed" check: the failure these credentials actually have is a well-formed key with the wrong grant behind it, which only the far end can tell you about.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
cred_id | path | yes | string |
200 — Successful Response
json
{}422 — Validation Error
json
{
"properties": {
"detail": {
"items": {
"properties": {
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"type": "array",
"title": "Location"
},
"msg": {
"type": "string",
"title": "Message"
},
"type": {
"type": "string",
"title": "Error Type"
}
},
"type": "object",
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}