> For the complete documentation index, see [llms.txt](https://ouvretaferme.gitbook.io/ouvretaferme/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ouvretaferme.gitbook.io/ouvretaferme/endpoints/general/equipe-et-temps-de-travail/equipe.md).

# Équipe

Les personnes qui travaillent dans votre structure, avec ou sans accès à Ouvretaferme. Une présence ne se pose qu'à une personne de l'équipe.

## Lister les personnes de l'équipe

> Scope requis : \`general:read\`.

```json
{"openapi":"3.0.3","info":{"title":"API Ouvretaferme","version":"0.1beta"},"tags":[{"name":"Équipe"}],"servers":[{"url":"https://api.ouvretaferme.org/0.1beta"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clé API personnelle ou jeton OAuth2 d'une application tierce, présenté dans l'en-tête `Authorization: Bearer`. Voir la section Authentification."}},"schemas":{"Teammate":{"type":"object","properties":{"id":{"type":"integer","format":"int64","readOnly":true},"user":{"type":"integer","format":"int64","description":"Personne. Identifiant d'un élément `User`."}},"title":"Équipe","description":"Les personnes qui travaillent dans votre structure, avec ou sans accès à Ouvretaferme. Une présence ne se pose qu'à une personne de l'équipe."},"Error":{"type":"object","properties":{"type":{"type":"string","enum":["authentication_error","resource_error","api_error"]},"code":{"type":"string"},"message":{"type":"string"}}}},"responses":{"ValidationError":{"description":"Un champ, un filtre ou un argument ne respecte pas les règles de validation, ou le corps n'est pas un objet JSON.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"AuthenticationError":{"description":"Clé API ou jeton absent, invalide, expiré ou révoqué.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"Forbidden":{"description":"Le jeton ne porte pas le scope requis, l'écriture n'est pas ouverte à cette structure, la structure n'a pas l'abonnement qui ouvre l'API, ou la personne qui a créé la clé n'administre plus la structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"RateLimited":{"description":"Trop d'appels. L'en-tête `Retry-After` donne le nombre de secondes à attendre.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"headers":{"Retry-After":{"description":"Nombre de secondes à attendre avant le prochain appel.","schema":{"type":"integer"}}}}}},"paths":{"/teammateList":{"get":{"operationId":"getTeammateList","tags":["Équipe"],"summary":"Lister les personnes de l'équipe","description":"Scope requis : `general:read`.","parameters":[{"name":"start","in":"query","required":false,"description":"Rang du premier élément rendu, à partir de 1.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"description":"Nombre d'éléments rendus, 100 par défaut et 500 au plus. À 0, seul le total est rendu.","schema":{"type":"integer","minimum":0,"maximum":500,"default":100}},{"name":"ids","in":"query","required":false,"description":"Ne rend que ces identifiants, 100 au plus, séparés par des virgules.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"integer","format":"int64"},"maxItems":100}},{"name":"afterId","in":"query","required":false,"description":"Ne rend que les éléments d'identifiant supérieur, pour parcourir une liste sans décalage quand elle change pendant la lecture.","schema":{"type":"integer","format":"int64"}},{"name":"beforeId","in":"query","required":false,"description":"Ne rend que les éléments d'identifiant inférieur.","schema":{"type":"integer","format":"int64"}},{"name":"user","in":"query","required":false,"description":"Personne. Identifiant d'un élément `User`.","schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Liste paginée des personnes de l'équipe.","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"Nombre d'éléments que retiennent les filtres, sans tenir compte de la pagination (`start`, `limit`, `afterId`, `beforeId`)."},"list":{"type":"array","items":{"$ref":"#/components/schemas/Teammate"}}}}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/AuthenticationError"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}}}}
```

## Consulter une personne de l'équipe

> Scope requis : \`general:read\`. Pour lire plusieurs personnes de l'équipe, \`GET /teammateList?ids=12,15,18\` en rend jusqu'à 100, et ne compte que pour un appel.

```json
{"openapi":"3.0.3","info":{"title":"API Ouvretaferme","version":"0.1beta"},"tags":[{"name":"Équipe"}],"servers":[{"url":"https://api.ouvretaferme.org/0.1beta"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clé API personnelle ou jeton OAuth2 d'une application tierce, présenté dans l'en-tête `Authorization: Bearer`. Voir la section Authentification."}},"schemas":{"Teammate":{"type":"object","properties":{"id":{"type":"integer","format":"int64","readOnly":true},"user":{"type":"integer","format":"int64","description":"Personne. Identifiant d'un élément `User`."}},"title":"Équipe","description":"Les personnes qui travaillent dans votre structure, avec ou sans accès à Ouvretaferme. Une présence ne se pose qu'à une personne de l'équipe."},"Error":{"type":"object","properties":{"type":{"type":"string","enum":["authentication_error","resource_error","api_error"]},"code":{"type":"string"},"message":{"type":"string"}}}},"responses":{"ValidationError":{"description":"Un champ, un filtre ou un argument ne respecte pas les règles de validation, ou le corps n'est pas un objet JSON.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"AuthenticationError":{"description":"Clé API ou jeton absent, invalide, expiré ou révoqué.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"Forbidden":{"description":"Le jeton ne porte pas le scope requis, l'écriture n'est pas ouverte à cette structure, la structure n'a pas l'abonnement qui ouvre l'API, ou la personne qui a créé la clé n'administre plus la structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"NotFound":{"description":"Aucun élément avec cet identifiant pour votre structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"RateLimited":{"description":"Trop d'appels. L'en-tête `Retry-After` donne le nombre de secondes à attendre.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"headers":{"Retry-After":{"description":"Nombre de secondes à attendre avant le prochain appel.","schema":{"type":"integer"}}}}}},"paths":{"/teammate/{id}":{"get":{"operationId":"getTeammateById","tags":["Équipe"],"summary":"Consulter une personne de l'équipe","description":"Scope requis : `general:read`. Pour lire plusieurs personnes de l'équipe, `GET /teammateList?ids=12,15,18` en rend jusqu'à 100, et ne compte que pour un appel.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Personne de l'équipe demandée.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Teammate"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/AuthenticationError"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}}}}
```

## Créer une personne de l'équipe

> Scope requis : \`general:write\`.

```json
{"openapi":"3.0.3","info":{"title":"API Ouvretaferme","version":"0.1beta"},"tags":[{"name":"Équipe"}],"servers":[{"url":"https://api.ouvretaferme.org/0.1beta"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clé API personnelle ou jeton OAuth2 d'une application tierce, présenté dans l'en-tête `Authorization: Bearer`. Voir la section Authentification."}},"schemas":{"TeammateWrite":{"type":"object","properties":{"user":{"type":"integer","format":"int64","description":"Personne. Identifiant d'un élément `User`."}},"required":["user"]},"Teammate":{"type":"object","properties":{"id":{"type":"integer","format":"int64","readOnly":true},"user":{"type":"integer","format":"int64","description":"Personne. Identifiant d'un élément `User`."}},"title":"Équipe","description":"Les personnes qui travaillent dans votre structure, avec ou sans accès à Ouvretaferme. Une présence ne se pose qu'à une personne de l'équipe."},"Error":{"type":"object","properties":{"type":{"type":"string","enum":["authentication_error","resource_error","api_error"]},"code":{"type":"string"},"message":{"type":"string"}}}},"responses":{"ValidationError":{"description":"Un champ, un filtre ou un argument ne respecte pas les règles de validation, ou le corps n'est pas un objet JSON.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"AuthenticationError":{"description":"Clé API ou jeton absent, invalide, expiré ou révoqué.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"Forbidden":{"description":"Le jeton ne porte pas le scope requis, l'écriture n'est pas ouverte à cette structure, la structure n'a pas l'abonnement qui ouvre l'API, ou la personne qui a créé la clé n'administre plus la structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"RateLimited":{"description":"Trop d'appels. L'en-tête `Retry-After` donne le nombre de secondes à attendre.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"headers":{"Retry-After":{"description":"Nombre de secondes à attendre avant le prochain appel.","schema":{"type":"integer"}}}}}},"paths":{"/teammate":{"post":{"operationId":"postTeammate","tags":["Équipe"],"summary":"Créer une personne de l'équipe","description":"Scope requis : `general:write`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeammateWrite"}}}},"responses":{"201":{"description":"Personne de l'équipe créée.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Teammate"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/AuthenticationError"},"403":{"$ref":"#/components/responses/Forbidden"},"412":{"description":"Condition métier interdisant la création.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"429":{"$ref":"#/components/responses/RateLimited"}}}}}}
```
