Fluxmail

Update an API key

Update the permissions or mailbox scope of an API key. Requires admin.api_keys.

PATCH /api/v1/admin/api-keys/{keyId}

Update the permissions or mailbox scope of an API key. Requires admin.api_keys.

Authentication

Pass a Fluxmail API key as a bearer token. The key owner must be an administrator, and the key must include the administrative capability named in the endpoint description.

Remote administrative requests require HTTPS. Requests from the local computer can use HTTP.

Request

curl 'http://localhost:8977/api/v1/admin/api-keys/keyId_123' \
  -X PATCH \
  -H "Authorization: Bearer $FLUXMAIL_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "permissionProfile": "read-only"
}'

Parameters

NameLocationRequiredTypeDetails
keyIdpathYesstringMinimum length: 1. Maximum length: 200.

Request body

Content type: application/json

{
  "type": "object",
  "properties": {
    "permissionProfile": {
      "type": "string",
      "enum": [
        "read-only",
        "read-write",
        "full"
      ]
    },
    "supplementalCapabilities": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "admin.accounts",
          "admin.api_keys",
          "admin.license"
        ]
      },
      "maxItems": 3
    },
    "customCapabilities": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "mail.read",
          "mail.drafts",
          "mail.organize",
          "mail.trash",
          "mail.delete",
          "mail.send",
          "admin.accounts",
          "admin.api_keys",
          "admin.license"
        ]
      },
      "minItems": 1,
      "maxItems": 9
    },
    "accounts": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 200
      },
      "maxItems": 100
    }
  },
  "additionalProperties": false,
  "example": {
    "permissionProfile": "read-only"
  }
}

Responses

StatusDescriptionContent type
200Updated API keyapplication/json
400Invalid requestapplication/json
401Authentication requiredapplication/json
403Administrative access deniedapplication/json
404Resource not foundapplication/json
409Request conflictapplication/json
413Request body too largeapplication/json
415Unsupported media typeapplication/json
500Internal errorapplication/json
502License could not be verifiedapplication/json

200 response

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "lastUsedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "memberId": {
          "type": [
            "string",
            "null"
          ]
        },
        "permissionProfile": {
          "type": "string",
          "enum": [
            "read-only",
            "read-write",
            "full",
            "custom"
          ]
        },
        "capabilities": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "mail.read",
              "mail.drafts",
              "mail.organize",
              "mail.trash",
              "mail.delete",
              "mail.send",
              "admin.accounts",
              "admin.api_keys",
              "admin.license"
            ]
          }
        },
        "supplementalCapabilities": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "admin.accounts",
              "admin.api_keys",
              "admin.license"
            ]
          }
        },
        "accountIds": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "id",
        "name",
        "createdAt",
        "lastUsedAt",
        "memberId",
        "permissionProfile",
        "capabilities",
        "supplementalCapabilities",
        "accountIds"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "data"
  ]
}

Last updated