Guide de référence de l'API

Premiers pas

Pour commencer avec l'API, nous vous conseillons d'utiliser un outil de test d'API. Bruno et Postman sont tous deux parfaits pour tester des requêtes et mettre au point votre flux de travail avant de commencer à programmer.

Premiers pas avec Bruno

Pour commencer, vous devez télécharger et installer Bruno. Bruno est un excellent outil open source pour tester des requêtes API et mettre au point votre flux de travail avant de commencer à programmer.

Importez notre collection Bruno en téléchargeant ce fichier pour ajouter tous nos endpoints et paramètres.
Importer la collection dans Bruno
L'authentification se fait par clé API, en ajoutant l'en-tête de requête "apiKey".
Comment ajouter la clé API dans Bruno
La clé API peut être générée dans Portail Paramètres API

Premiers pas avec Postman

Pour commencer, vous devez télécharger et installer Postman. Postman est un excellent outil pour tester des requêtes API et mettre au point votre flux de travail avant de commencer à programmer.

Importez notre collection Postman en copiant ce lien pour ajouter tous nos endpoints et paramètres.
Importer la collection dans Postman
L'authentification se fait par clé API, en ajoutant l'en-tête de requête "apiKey".
Comment ajouter la clé API dans Postman
La clé API peut être générée dans Portail Paramètres API

Référence

Obtenir les groupes

Renvoie des informations sur les objets groupe. Renvoie tous les groupes.

Exemple de requête

GET https://timeclock.kiwi/api/groups

Exemple de réponse

[
    {
        "id": "d2358de1-3631-428a-a314-f1bdb8ab53a2",
        "name": "Auckland",
        "deleted": false,
        "last_updated": "2024-06-06T21:19:17.622Z",
        "created": "2024-06-06T21:19:17.622Z"
    },
    {
        "id": "369b6e85-b90f-4262-9fab-08da623fe3bd",
        "name": "Christchurch",
        "deleted": false,
        "last_updated": "2024-08-12T20:00:36.701Z",
        "created": "2024-08-12T20:00:36.701Z"
    }
]

Obtenir les chantiers

Renvoie des informations sur les objets chantier. Par défaut, renvoie tous les chantiers.

Parameters

PropertyDescriptionTypeRequirementDefault
idFournir un ID renvoie le chantier correspondant. Sans cette valeur, tous les chantiers sont renvoyés.UUIDOptional
completedNe renvoie que les chantiers dont le champ completed correspond à la valeur.BooleanOptionalfalse
deletedNe renvoie que les chantiers dont le champ deleted correspond à la valeur.BooleanOptionalfalse

Example Query

GET https://timeclock.kiwi/api/jobs?id=01d2aa95-1866-4718-8d86-08aa5182f20d&completed=true&deleted=true

Exemple de réponse

[
    {
        "id": "055fdff9-c264-4c5d-a98e-e98bab581d1a",
        "name": "63 Handover Rd",
        "description": "",
        "cost_code": null,
        "due_date": null,
        "completed": false,
        "permanent": false,
        "deleted": false,
        "budget_hours": 120,
        "priority": false,
        "last_updated": "2024-11-01T02:22:56.973Z",
        "created": "2024-11-01T02:22:56.973Z",
        "groups": [
            {
                "id": "f8a97df7-85b9-4331-a284-9463c68810b8",
                "name": "Mosgiel"
            }
        ],
        "people": null
    },
]

Ajouter un chantier

Ajoute un objet chantier.

Body

PropertyDescriptionTypeRequirementDefault
nameLe nom du chantier.StringRequired
descriptionLa description du chantier.StringOptional
permanentCe chantier peut-il être marqué comme terminé ?BooleanOptionalfalse
due_dateLa date à laquelle le chantier doit être terminé.StringObligatoire si permanent == false
cost_codeLe code de coût du chantier.StringOptional
completedCe chantier est-il terminé ?BooleanOptionalfalse
deletedCe chantier a-t-il été supprimé ?BooleanOptionalfalse
budget_hoursLes heures de main-d'œuvre budgétées (devisées) pour le chantier. null si aucun budget.NumberOptionalnull
priorityEst-ce un chantier prioritaire ? Les chantiers prioritaires s'affichent en premier sur la borne.BooleanOptionalfalse

Example Query

POST https://timeclock.kiwi/api/jobs
{
    "name": "99 Bamford St",
    "description": "Renovating kitchen in 6 apartments",
    "permanent": false,
    "due_date": "2024-11-30 09:00",
    "cost_code": "123456",
    "budget_hours": 120,
    "priority": false,
    "completed": false,
    "deleted": false
}

Exemple de réponse

{
    "name": "99 Bamford St",
    "description": "Renovating kitchen in 6 apartments",
    "permanent": false,
    "due_date": "2024-11-30 09:00",
    "cost_code": "123456",
    "budget_hours": 120,
    "priority": false,
    "completed": false,
    "deleted": false,
    "id": "b6dac400-5097-4763-8021-137222cb1ad4"
}

Supprimer des chantiers

Supprime les objets chantier listés.

Corps

PropriétéDescriptionTypeExigencePar défaut
UUIDUne liste des UUID de tous les chantiers à supprimer.UUIDObligatoire

Example Query

DELETE https://timeclock.kiwi/api/jobs
["01d2aa95-1866-4718-8d86-08aa5182f20d", "13074d81-2483-46ea-8bce-b8d761c2580e"]

Exemple de réponse

{
    "status": 200
}

Mettre à jour un chantier

Met à jour un objet chantier.

Corps

PropriétéDescriptionTypeExigencePar défaut
idL'UUID du chantier que vous voulez modifier.UUIDObligatoire
nameLe nom du chantier.StringObligatoire
descriptionLa description du chantier.StringFacultatif
permanentCe chantier peut-il être marqué comme terminé ?BooleanFacultatiffalse
due_dateLa date à laquelle le chantier doit être terminé.StringObligatoire si permanent == false
cost_codeLe code analytique du chantier.StringFacultatif
completedCe chantier est-il terminé ?BooleanFacultatiffalse
deletedCe chantier a-t-il été supprimé ?BooleanFacultatiffalse
budget_hoursLes heures de main-d'œuvre budgétées (devisées) pour le chantier. null si aucun budget.NumberFacultatifnull
priorityEst-ce un chantier prioritaire ? Les chantiers prioritaires s'affichent en premier sur la borne.BooleanFacultatiffalse
groupsLes UUID de tous les groupes dont fait partie ce chantier.UUIDFacultatif
peopleLes UUID de toutes les personnes qui verront ce chantier.UUIDFacultatif
materialsUne liste de tous les matériaux utilisés sur ce chantier. Les matériaux doivent avoir été utilisés par une personne.UUIDFacultatif
notesAjoute une nouvelle note au chantier.UUIDFacultatif

Example Query

PUT https://timeclock.kiwi/api/jobs
{
    "id": "dfb37a1e-692e-44d5-bedf-309b44b9e136",
    "name": "99 Bamford St",
    "description": "Renovating kitchen in 6 apartments",
    "permanent": true,
    "due_date": "2024-11-30 09:00",
    "cost_code": "123456",
    "completed": true,
    "deleted": true,
    "groups": ["d2358de1-3631-428a-a314-f1bdb8ab53a2","d2358de1-3631-428a-a314-f1bdb8ab53a3"],
    "people": ["d2358de1-3631-428a-a314-f1bdb8ab53a2","d2358de1-3631-428a-a314-f1bdb8ab53a3"],
    "materials": [{ "id": "03b133a9-4546-4e73-89c8-119fb5042fdb", "person_id": "017a1008-de92-4df2-a533-4e17b643123e", "quantity": 5}],
    "notes": [{ "person_id": "017a1008-de92-4df2-a533-4e17b643123e", "note": "Concrete has cat paw prints on it."}]
}

Exemple de réponse

{
    "status": 200
}

Obtenir les bornes

Renvoie des informations sur les objets borne. Renvoie toutes les bornes.

Exemple de requête

GET https://timeclock.kiwi/api/kiosks

Exemple de réponse

[
    {
        "id": "353e1f09-9851-42c8-9b2c-e536ce2cd3bb",
        "name": "Back Stairs",
        "deleted": false,
        "status": "Offline",
        "last_updated": "2024-06-10T00:09:43.169Z",
        "created": "2024-06-10T00:09:43.169Z"
    },
    {
        "id": "7276d2e1-0fe2-4b64-8d89-1e9b65f4a969",
        "name": "Factory Front",
        "deleted": false,
        "status": "Offline",
        "last_updated": "2024-06-10T02:22:51.027Z",
        "created": "2024-06-10T02:22:51.027Z"
    }
]

Obtenir les matériaux

Renvoie des informations sur les objets matériau. Renvoie tous les matériaux.

Exemple de requête

GET https://timeclock.kiwi/api/materials

Exemple de réponse

[
    {
        "id": "03b133a9-4546-4e73-89c8-119fb5042fdb",
        "name": "M2 Screw",
        "cost_code": "0001",
        "unit": "none",
        "description": "2mm thick screw",
        "last_updated": "2024-08-19T21:42:33.021Z",
        "created": "2024-08-19T21:42:33.021Z"
    },
    {
        "id": "c127106f-0570-485c-9466-dcf543d9ffbd",
        "name": "MDF18",
        "cost_code": "ABC123",
        "unit": "m²",
        "description": "18mm MDF",
        "last_updated": "2024-08-05T03:08:12.870Z",
        "created": "2024-08-05T03:08:12.870Z"
    }
]

Obtenir les personnes

Renvoie des informations sur les objets personne. Renvoie toutes les personnes.

Exemple de requête

GET https://timeclock.kiwi/api/people

Exemple de réponse

[
    {
        "id": "b6cc9e4b-cccb-4206-92a0-a387ff121c69",
        "first_name": "Aspen",
        "last_name": "Brewster",
        "email": "[email protected]",
        "pin_enabled": false,
        "pin": null,
        "permission": 3,
        "last_updated": "2024-09-09T02:44:06.604Z",
        "created": "2024-09-09T02:44:06.604Z"
    },
    {
        "id": "2d68300b-f34e-45f9-a1a5-fdf0daa59729",
        "first_name": "Bryne",
        "last_name": "Lynton",
        "email": null,
        "pin_enabled": false,
        "pin": null,
        "permission": 3,
        "last_updated": "2024-09-09T02:44:06.604Z",
        "created": "2024-09-09T02:44:06.604Z"
    }
]

Obtenir les postes

Renvoie des informations sur les objets poste.

Paramètres

PropriétéDescriptionTypeExigencePar défaut
start-datePremier jour des postes à renvoyer (inclus).Date ISO 8601 (YYYY-MM-DD)Obligatoire
end-dateDernier jour des postes à renvoyer (inclus).Date ISO 8601 (YYYY-MM-DD)Obligatoire
group-idNe renvoie que les postes des personnes appartenant à ce groupe.UUIDFacultatif
person-idNe renvoie que les postes de cette personne.UUIDFacultatif

Example Query

GET https://timeclock.kiwi/api/shifts?start-date=2026-02-20&end-date=2026-02-27&group-id=752d68b5-5d57-4727-8c1c-85383b76fecf&person-id=a8b3e429-d307-4cd1-bde4-1c2510b6b8ef

Exemple de réponse

[
  {
    "person_id": "a8b3e429-d307-4cg1-bde4-1c2510b8b8ef",
    "first_name": "Ada",
    "last_name": "Nicodemou",
    "days": [
      {
        "date": "2026-02-20",
        "total_hours": 6.82,
        "hours_worked": 6.57,
        "break_hours": 0.25
      },
      {
        "date": "2026-02-21",
        "total_hours": 6.98,
        "hours_worked": 6.73,
        "break_hours": 0.25
      },
      {
        "date": "2026-02-22",
        "total_hours": 7.02,
        "hours_worked": 6.77,
        "break_hours": 0.25
      }
    ]
  },
  {
    "person_id": "b1d8859f-84cc-49c0-ba94-175c8a1e16c4",
    "first_name": "Fred",
    "last_name": "Flinstone",
    "days": [
      {
        "date": "2026-02-20",
        "total_hours": 8.12,
        "hours_worked": 7.95,
        "break_hours": 0.17
      },
      {
        "date": "2026-02-21",
        "total_hours": 8.13,
        "hours_worked": 7.88,
        "break_hours": 0.25
      },
      {
        "date": "2026-02-22",
        "total_hours": 1.97,
        "hours_worked": 1.72,
        "break_hours": 0.25
      }
    ]
  }
]

Nous sommes toujours ravis de vous aider.
Contactez-nous et nous ferons de notre mieux pour que notre système de suivi des présences réponde à vos besoins.