# API : devices

2 opérations REST du groupe devices.

Base : `/api/v1`. [Conventions](/documentation/api-conventions/) · [Toutes les ressources](/documentation/api-reference/)

- POST /devices : Enregistrer l'appareil pour le push (idempotent par token)
- DELETE /devices : Révoquer un token d'appareil (logout) - no-op si inconnu
## POST /devices

```json
{
  "summary": "Enregistrer l'appareil pour le push (idempotent par token)",
  "description": "Contexte utilisateur uniquement. Sans adaptateur push configuré sur l'instance, l'enregistrement reste accepté mais aucun envoi n'a lieu (ADR-108).",
  "tags": [
    "mobile"
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "type": "object",
          "properties": {
            "platform": {
              "type": "string",
              "enum": [
                "ios",
                "android"
              ]
            },
            "pushToken": {
              "type": "string"
            }
          },
          "required": [
            "platform",
            "pushToken"
          ]
        }
      }
    }
  },
  "security": [
    {
      "oauth2": []
    },
    {
      "userSession": []
    }
  ],
  "responses": {
    "200": {
      "description": "Appareil enregistré",
      "content": {
        "application/json": {
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "registered": {
                "type": "boolean",
                "const": true
              }
            },
            "required": [
              "id",
              "registered"
            ],
            "additionalProperties": false
          }
        }
      }
    },
    "default": {
      "description": "Erreur - enveloppe problem+json (RFC 9457)",
      "content": {
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  }
}
```

## DELETE /devices

```json
{
  "summary": "Révoquer un token d'appareil (logout) - no-op si inconnu",
  "tags": [
    "mobile"
  ],
  "parameters": [
    {
      "name": "pushToken",
      "in": "query",
      "required": true,
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "string"
      }
    }
  ],
  "security": [
    {
      "oauth2": []
    },
    {
      "userSession": []
    }
  ],
  "responses": {
    "200": {
      "description": "Token révoqué",
      "content": {
        "application/json": {
          "schema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "revoked": {
                "type": "boolean",
                "const": true
              }
            },
            "required": [
              "revoked"
            ],
            "additionalProperties": false
          }
        }
      }
    },
    "default": {
      "description": "Erreur - enveloppe problem+json (RFC 9457)",
      "content": {
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  }
}
```
