NAV
bash javascript

Info

Welcome to the generated API reference. Get Postman Collection

Api\CategoryController

All categories in the categorization tree used for hive inspections Only used to get listing (index) or one category (show)

api/categories

Display a listing of the inspection categories.


Requires authentication

Example request:

curl -X GET -G "https://api.beep.nl/api/categories" 
const url = new URL("https://api.beep.nl/api/categories");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (200):

[
    {
        "id": 1,
        "type": "system",
        "name": "apiary",
        "icon": null,
        "source": null,
        "required": 0,
        "input": "list",
        "trans": {
            "en": "Apiary",
            "nl": "Bijenstand",
            "de": "Bienenstand",
            "fr": "Rucher",
            "ro": "Stupină",
            "pt": "Apiário",
            "es": "Apiario",
            "da": "Bigård"
        },
        "unit": null,
        "children": [
            {
                "id": 2,
                "type": "0",
                "name": "name",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "text",
                "trans": {
                    "en": "Name",
                    "nl": "Naam",
                    "de": "Name",
                    "fr": "Nom",
                    "ro": "Nume",
                    "pt": "Nome",
                    "es": "Nombre",
                    "da": "Navn"
                },
                "unit": null
            },
            {
                "id": 3,
                "type": "list",
                "name": "location",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "select_location",
                "trans": {
                    "en": "Location",
                    "nl": "Locatie",
                    "de": "Ort",
                    "fr": "Lieux",
                    "ro": "Locație",
                    "pt": "Localização",
                    "es": "Ubicación",
                    "da": "Lokation"
                },
                "unit": null
            },
            {
                "id": 12,
                "type": "1",
                "name": "number_of_bee_colonies",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "number_positive",
                "trans": {
                    "en": "Number of bee colonies",
                    "nl": "Aantal bijenvolken",
                    "de": "Anzahl an Bienenvölkern",
                    "fr": "Nombre de colonies",
                    "ro": "Număr de colonii",
                    "pt": "Número de colónias",
                    "es": "Número de colonias de abejas melíferas",
                    "da": "Antal bifamilier"
                },
                "unit": null
            },
            {
                "id": 13,
                "type": "list",
                "name": "orientation",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "options",
                "trans": {
                    "en": "Orientation",
                    "nl": "Orientatie",
                    "de": "Orientierung",
                    "fr": "Orientation",
                    "ro": "Orientare",
                    "pt": "Orientação",
                    "es": "Orientación",
                    "da": "Retning"
                },
                "unit": null
            },
            {
                "id": 25,
                "type": "list",
                "name": "status",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "options",
                "trans": {
                    "en": "Status",
                    "nl": "Status",
                    "de": "Status",
                    "fr": "Statut",
                    "ro": "Stare",
                    "pt": "Estado",
                    "es": "Estado",
                    "da": "Status"
                },
                "unit": null
            },
            {
                "id": 28,
                "type": "system",
                "name": "photo",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "image",
                "trans": {
                    "en": "Photo",
                    "nl": "Foto",
                    "de": "Foto",
                    "fr": "Photo",
                    "ro": "Poză",
                    "pt": "Fotografia",
                    "es": "Foto",
                    "da": "Foto"
                },
                "unit": null
            },
            {
                "id": 913,
                "type": null,
                "name": "can_be_removed",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "list",
                "trans": {
                    "de": "kann entfernt werden",
                    "ro": "poate fi înlăturat",
                    "es": "Puede ser removido"
                },
                "unit": null
            },
            {
                "id": 932,
                "type": "checklist",
                "name": "type",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "select",
                "trans": {
                    "en": "Type",
                    "nl": "Type",
                    "de": "Typ",
                    "fr": "type",
                    "ro": "Tip",
                    "pt": "Tipo",
                    "es": "Tipo",
                    "da": "Type"
                },
                "unit": null
            }
        ]
    },
    {
        "id": 29,
        "type": "system",
        "name": "hive",
        "icon": null,
        "source": null,
        "required": 0,
        "input": "list",
        "trans": {
            "en": "Hive",
            "nl": "Kast",
            "de": "Beute",
            "fr": "Ruche",
            "ro": "Stup",
            "pt": "Colmeia",
            "es": "Colmena",
            "da": "Stade"
        },
        "unit": null,
        "children": [
            {
                "id": 30,
                "type": "system",
                "name": "id",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "ID",
                    "nl": "ID",
                    "de": "ID",
                    "fr": "ID",
                    "ro": "ID",
                    "pt": "ID",
                    "es": "ID",
                    "da": "ID"
                },
                "unit": null
            },
            {
                "id": 34,
                "type": "system",
                "name": "type",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Type",
                    "nl": "Type",
                    "de": "Typ",
                    "fr": "type",
                    "ro": "Tip",
                    "pt": "Tipo",
                    "es": "Tipo",
                    "da": "Type"
                },
                "unit": null
            },
            {
                "id": 64,
                "type": "system",
                "name": "frame_size",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Frame size",
                    "nl": "Raam afmetingen",
                    "de": "Rähmchengröße",
                    "fr": "Taille des cadres",
                    "ro": "Dimensiune ramă",
                    "pt": "Tamanho do quadro",
                    "es": "Tamaño de marco",
                    "da": "Rammestørrelse"
                },
                "unit": null
            },
            {
                "id": 84,
                "type": "system",
                "name": "configuration",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Configuration",
                    "nl": "Samenstelling",
                    "de": "Konfiguration",
                    "fr": "Configuration",
                    "ro": "Configurație",
                    "pt": "Configuração",
                    "es": "Configuración",
                    "da": "Opbygning"
                },
                "unit": null
            },
            {
                "id": 136,
                "type": "system",
                "name": "location",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Location",
                    "nl": "Locatie",
                    "de": "Ort",
                    "fr": "Lieux",
                    "ro": "Locație",
                    "pt": "Localização",
                    "es": "Ubicación",
                    "da": "Lokation"
                },
                "unit": null
            },
            {
                "id": 614,
                "type": "checklist",
                "name": "weight",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "number_2_decimals",
                "trans": {
                    "en": "Weight",
                    "nl": "Gewicht",
                    "de": "Gewicht",
                    "fr": "Poids",
                    "ro": "Greutate",
                    "pt": "Peso",
                    "es": "Peso",
                    "da": "Vægt"
                },
                "unit": "kg"
            },
            {
                "id": 795,
                "type": "system",
                "name": "photo",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "image",
                "trans": {
                    "en": "Photo",
                    "nl": "Foto",
                    "de": "Foto",
                    "fr": "Photo",
                    "ro": "Poză",
                    "pt": "Fotografia",
                    "es": "Foto",
                    "da": "Foto"
                },
                "unit": null
            },
            {
                "id": 818,
                "type": "system",
                "name": "app",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "list",
                "trans": {
                    "nl": "App",
                    "en": "App",
                    "de": "App",
                    "fr": "App",
                    "ro": "Aplicație",
                    "pt": "Aplicação (app)",
                    "es": "App",
                    "da": "App"
                },
                "unit": null
            }
        ]
    },
    {
        "id": 149,
        "type": "list",
        "name": "bee_colony",
        "icon": null,
        "source": null,
        "required": 0,
        "input": "label",
        "trans": {
            "en": "Bee colony",
            "nl": "Bijenvolk",
            "de": "Bienenvolk",
            "fr": "Colonie",
            "ro": "Colonie de albine",
            "pt": "Colónia",
            "es": "Colonia de abejas",
            "da": "Bifamilie"
        },
        "unit": null,
        "children": [
            {
                "id": 73,
                "type": "checklist",
                "name": "space",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Space",
                    "nl": "Ruimte",
                    "de": "Platz",
                    "fr": "Espacement",
                    "ro": "Spațiu",
                    "pt": "Espaço",
                    "es": "Espacio",
                    "da": "Mellemrum"
                },
                "unit": null
            },
            {
                "id": 150,
                "type": "system",
                "name": "origin",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Origin",
                    "nl": "Oorsprong",
                    "de": "Ursprung",
                    "fr": "Origine",
                    "ro": "Origine",
                    "pt": "Origem",
                    "es": "Origen",
                    "da": "Oprindelse"
                },
                "unit": null
            },
            {
                "id": 165,
                "type": "list",
                "name": "activity",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Activity",
                    "nl": "Activiteit",
                    "de": "Aktivität",
                    "fr": "Activité",
                    "ro": "Activitate",
                    "pt": "Actividade",
                    "es": "Actividad",
                    "da": "Aktivitet"
                },
                "unit": null
            },
            {
                "id": 208,
                "type": "system",
                "name": "status",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Status",
                    "nl": "Status",
                    "de": "Status",
                    "fr": "Statut",
                    "ro": "Stare",
                    "pt": "Estado",
                    "es": "Estado",
                    "da": "Status"
                },
                "unit": null
            },
            {
                "id": 213,
                "type": "list",
                "name": "characteristics",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Characteristics",
                    "nl": "Eigenschappen",
                    "de": "Charakteristiken",
                    "fr": "Caracteristique",
                    "ro": "Caracteristici",
                    "pt": "Características",
                    "es": "Características",
                    "da": "Egenskaber"
                },
                "unit": null
            },
            {
                "id": 253,
                "type": "checklist",
                "name": "swarm_prevention",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Swarm prevention",
                    "nl": "Zwermverhindering",
                    "de": "Schwarmverhinderung",
                    "fr": "Prévention de l'essaimage",
                    "ro": "Prevenirea roirii",
                    "pt": "Prevenção de enxameamento",
                    "es": "Prevención de enjambrazón",
                    "da": "Sværmehindring"
                },
                "unit": null
            },
            {
                "id": 263,
                "type": "list",
                "name": "brood",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Brood",
                    "nl": "Broed",
                    "de": "Brut",
                    "fr": "Couvain",
                    "ro": "Puiet",
                    "pt": "Criação",
                    "es": "Cría",
                    "da": "Yngel"
                },
                "unit": null
            },
            {
                "id": 333,
                "type": "checklist",
                "name": "queen",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Queen",
                    "nl": "Moer",
                    "de": "Königin",
                    "fr": "Reine",
                    "ro": "Matcă",
                    "pt": "Raínha",
                    "es": "Reina",
                    "da": "Dronning"
                },
                "unit": null
            },
            {
                "id": 442,
                "type": "list",
                "name": "drones",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Drones",
                    "nl": "Darren",
                    "de": "Drohnen",
                    "fr": "Mâles",
                    "ro": "Trântori",
                    "pt": "Zangões",
                    "es": "Zánganos",
                    "da": "Droner"
                },
                "unit": null
            },
            {
                "id": 448,
                "type": "checklist",
                "name": "uniting_colonies",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Uniting colonies",
                    "nl": "Volken samenvoegen",
                    "de": "Volksvereinigung",
                    "fr": "Reunion de colonies",
                    "ro": "Unificare colonii",
                    "pt": "União de colónias",
                    "es": "Colmenas fusionadas",
                    "da": "Samling af bifamilier"
                },
                "unit": null
            },
            {
                "id": 453,
                "type": "list",
                "name": "bees_added",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Bees added",
                    "nl": "Bijen toegevoegd",
                    "de": "Bienen hinzugefügt",
                    "fr": "Ajout d'abeille",
                    "ro": "Albine adăugate",
                    "pt": "Abelhas adicionadas",
                    "es": "Abejas agregadas",
                    "da": "Bier tilføjet"
                },
                "unit": null
            },
            {
                "id": 459,
                "type": "list",
                "name": "loss",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Loss",
                    "nl": "Verlies",
                    "de": "Verluste",
                    "fr": "Perdu",
                    "ro": "Pierderi",
                    "pt": "Perdas",
                    "es": "Pérdida",
                    "da": "Tab"
                },
                "unit": null
            },
            {
                "id": 472,
                "type": "list",
                "name": "removal",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Removal",
                    "nl": "Verwijdering",
                    "de": "Entfernt",
                    "fr": "Suppression",
                    "ro": "Înlăturare",
                    "pt": "Remoção",
                    "es": "Remoción",
                    "da": "Fjernelse"
                },
                "unit": null
            },
            {
                "id": 755,
                "type": "system",
                "name": "reminder",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "nl": "Herinnnering",
                    "en": "Reminder",
                    "de": "Erinnerung",
                    "fr": "Rappel",
                    "ro": "Aducere aminte",
                    "pt": "Lembrete",
                    "es": "Recordatorio",
                    "da": "Påmindelse"
                },
                "unit": null
            },
            {
                "id": 771,
                "type": "checklist",
                "name": "size",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "nl": "Grootte",
                    "en": "Size",
                    "de": "Größe",
                    "fr": "Taille",
                    "ro": "Mărime",
                    "pt": "Tamanho",
                    "es": "Tamaño",
                    "da": "Størrelse"
                },
                "unit": null
            },
            {
                "id": 776,
                "type": "checklist",
                "name": "splitting_colony",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "nl": "Volk splitsen",
                    "en": "Splitting colony",
                    "de": "Aufgeteiltes Volk",
                    "fr": "Division de colonie",
                    "ro": "Împărțirea coloniei",
                    "pt": "Colónia desdobrada",
                    "es": "División de colonia",
                    "da": "Opdeling af bifamilie"
                },
                "unit": null
            },
            {
                "id": 867,
                "type": "system",
                "name": "purpose",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Purpose",
                    "nl": "Doel",
                    "de": "Zweck",
                    "fr": "Raison",
                    "ro": "Scop",
                    "pt": "Propósito",
                    "es": "Propósito",
                    "da": "Formål"
                },
                "unit": null
            },
            {
                "id": 960,
                "type": "checklist",
                "name": "comb_replacement",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Comb replacement",
                    "nl": "Raat vervanging",
                    "de": "Wabenerneuerung",
                    "fr": "Remplacement de rayon",
                    "ro": "Înlocuirea fagurelui",
                    "pt": "Substituição de favos",
                    "es": "Reemplazo de panal",
                    "da": "Tavleudskiftning"
                },
                "unit": null
            }
        ]
    },
    {
        "id": 475,
        "type": "list",
        "name": "food",
        "icon": null,
        "source": null,
        "required": 0,
        "input": "label",
        "trans": {
            "en": "Food",
            "nl": "Voedsel",
            "de": "Futter",
            "fr": "Nourriture",
            "ro": "Hrană",
            "pt": "Comida",
            "es": "Alimento",
            "da": "Føde"
        },
        "unit": null,
        "children": [
            {
                "id": 476,
                "type": "checklist",
                "name": "feeding",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Feeding",
                    "nl": "Bijvoeren",
                    "de": "Fütterung",
                    "fr": "Nourrissement",
                    "ro": "Hrănire",
                    "pt": "Alimentação",
                    "es": "Alimentación",
                    "da": "Fodring"
                },
                "unit": null
            },
            {
                "id": 493,
                "type": "checklist",
                "name": "stock",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Stock",
                    "nl": "Voorraad",
                    "de": "Vorrat",
                    "fr": "Stock",
                    "ro": "Stoc",
                    "pt": "Stock",
                    "es": "Stock",
                    "da": "Lager"
                },
                "unit": null
            },
            {
                "id": 500,
                "type": "list",
                "name": "forage",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Forage",
                    "nl": "Dracht",
                    "de": "Futter",
                    "fr": "Butinage",
                    "ro": "Cules",
                    "pt": "Forrageamento",
                    "es": "Forraje"
                },
                "unit": null
            },
            {
                "id": 891,
                "type": "checklist",
                "name": "water",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Water",
                    "nl": "Water",
                    "de": "Wasser",
                    "fr": "Eau",
                    "ro": "Apă",
                    "pt": "Água",
                    "es": "Agua",
                    "da": "Vand"
                },
                "unit": null
            }
        ]
    },
    {
        "id": 513,
        "type": "list",
        "name": "disorder",
        "icon": null,
        "source": null,
        "required": 0,
        "input": "label",
        "trans": {
            "en": "Disorder",
            "nl": "Aandoening",
            "de": "Störung",
            "fr": "Problème",
            "ro": "Boală",
            "pt": "Problemas",
            "es": "Problema",
            "da": "Sygdom"
        },
        "unit": null,
        "children": [
            {
                "id": 514,
                "type": "list",
                "name": "type",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Type",
                    "nl": "Type",
                    "de": "Typ",
                    "fr": "type",
                    "ro": "Tip",
                    "pt": "Tipo",
                    "es": "Tipo",
                    "da": "Type"
                },
                "unit": null
            },
            {
                "id": 582,
                "type": "list",
                "name": "severity",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "score_amount",
                "trans": {
                    "en": "Severity",
                    "nl": "Ernst",
                    "de": "Schweregrad",
                    "fr": "Sévérité",
                    "ro": "Severitate",
                    "pt": "Severidade",
                    "da": "Alvorlighed"
                },
                "unit": null
            },
            {
                "id": 589,
                "type": "checklist",
                "name": "laboratory_test",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Laboratory test",
                    "nl": "Laboratorium test",
                    "de": "Labortest",
                    "fr": "Test laboratoire",
                    "ro": "Test de laborator",
                    "pt": "Teste laboratorial",
                    "es": "Test de laboratorio",
                    "da": "Laboratorietest"
                },
                "unit": null
            },
            {
                "id": 594,
                "type": "list",
                "name": "treatment",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Treatment",
                    "nl": "Behandeling",
                    "de": "Behandlung",
                    "fr": "Traitement",
                    "ro": "Tratament",
                    "pt": "Tratamento",
                    "es": "Tratamiento",
                    "da": "Behandling"
                },
                "unit": null
            },
            {
                "id": 830,
                "type": "checklist",
                "name": "varroa",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Varroa",
                    "nl": "Varroa",
                    "de": "Varoa",
                    "fr": "Varroa",
                    "ro": "Varroa",
                    "pt": "Varroa",
                    "es": "Varroa",
                    "da": "Varroa"
                },
                "unit": null
            }
        ]
    },
    {
        "id": 612,
        "type": "checklist",
        "name": "weather",
        "icon": null,
        "source": null,
        "required": 0,
        "input": "label",
        "trans": {
            "en": "Weather",
            "nl": "Weer",
            "de": "Wetter",
            "fr": "Météo",
            "ro": "Vreme",
            "pt": "Clima",
            "es": "Tiempo atmosférico",
            "da": "Vejr"
        },
        "unit": null,
        "children": [
            {
                "id": 615,
                "type": "checklist",
                "name": "ambient_temperature",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "number",
                "trans": {
                    "en": "Ambient temperature",
                    "nl": "Omgevingstemperatuur",
                    "de": "Umgebungstemperatur",
                    "fr": "Température ambiante",
                    "ro": "Temperatura ambientală",
                    "pt": "Temperatura ambiente",
                    "es": "Temperatura ambiental",
                    "da": "Omgivelsestemperatur"
                },
                "unit": "°C"
            },
            {
                "id": 620,
                "type": "checklist",
                "name": "humidity",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "number_percentage",
                "trans": {
                    "en": "Humidity",
                    "nl": "Luchtvochtigheid",
                    "de": "Feuchtigkeit",
                    "fr": "Humidité",
                    "ro": "Umiditate",
                    "pt": "Humidade",
                    "es": "Humedad",
                    "da": "Fugtighed"
                },
                "unit": "%"
            },
            {
                "id": 621,
                "type": "checklist",
                "name": "cloud_cover",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "options",
                "trans": {
                    "en": "Cloud cover",
                    "nl": "Wolken",
                    "de": "Wolkendecke",
                    "fr": "Couverture nuageuse",
                    "ro": "Nebulozitate",
                    "pt": "Nebulosidade",
                    "es": "Cubierto de nubes",
                    "da": "Skydække"
                },
                "unit": null
            },
            {
                "id": 628,
                "type": "checklist",
                "name": "wind",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "number",
                "trans": {
                    "en": "Wind",
                    "nl": "Wind",
                    "de": "Wind",
                    "fr": "Vent",
                    "ro": "Vânt",
                    "pt": "Vento",
                    "es": "Viento",
                    "da": "Vind"
                },
                "unit": "bft"
            },
            {
                "id": 629,
                "type": "checklist",
                "name": "precipitation",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "number_positive",
                "trans": {
                    "en": "Precipitation",
                    "nl": "Neerslag",
                    "de": "Niederschlag",
                    "fr": "Précipitation",
                    "ro": "Precipitații",
                    "pt": "Precipitação",
                    "es": "Precipitación",
                    "da": "Nedbør"
                },
                "unit": "mm"
            }
        ]
    },
    {
        "id": 658,
        "type": "system",
        "name": "beekeeper",
        "icon": null,
        "source": null,
        "required": 0,
        "input": "list",
        "trans": {
            "en": "Beekeeper",
            "nl": "Imker",
            "de": "Imker",
            "fr": "Apiculteur",
            "ro": "Apicultor",
            "pt": "Apicultor",
            "es": "Apicultor(a)",
            "da": "Biavler"
        },
        "unit": null,
        "children": [
            {
                "id": 659,
                "type": "0",
                "name": "name",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "boolean",
                "trans": {
                    "en": "Name",
                    "nl": "Naam",
                    "de": "Name",
                    "fr": "Nom",
                    "ro": "Nume",
                    "pt": "Nome",
                    "es": "Nombre",
                    "da": "Navn"
                },
                "unit": null
            },
            {
                "id": 660,
                "type": "list",
                "name": "location",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "select_location",
                "trans": {
                    "en": "Location",
                    "nl": "Locatie",
                    "de": "Ort",
                    "fr": "Lieux",
                    "ro": "Locație",
                    "pt": "Localização",
                    "es": "Ubicación",
                    "da": "Lokation"
                },
                "unit": null
            },
            {
                "id": 666,
                "type": "1",
                "name": "telephone",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "list_item",
                "trans": {
                    "en": "Telephone",
                    "nl": "Telefoon",
                    "de": "Telefon",
                    "fr": "Telephone",
                    "ro": "Telefon",
                    "pt": "Telefone",
                    "es": "Teléfono",
                    "da": "Telefon"
                },
                "unit": null
            },
            {
                "id": 667,
                "type": "2",
                "name": "email",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "list_item",
                "trans": {
                    "en": "Email",
                    "nl": "Email",
                    "de": "Email",
                    "fr": "Email",
                    "ro": "Email",
                    "pt": "Email",
                    "es": "Email",
                    "da": "Email"
                },
                "unit": null
            },
            {
                "id": 668,
                "type": "3",
                "name": "date_of_birth",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "date",
                "trans": {
                    "en": "Date of birth",
                    "nl": "Geboortedatum",
                    "de": "Geburtsdatum",
                    "fr": "Date de naissance",
                    "ro": "Data nașterii",
                    "pt": "Data de nascimento",
                    "es": "Fecha de Nacimiento",
                    "da": "Fødselsdato"
                },
                "unit": null
            },
            {
                "id": 669,
                "type": "4",
                "name": "gender",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "list_item",
                "trans": {
                    "en": "Gender",
                    "nl": "Geslacht",
                    "de": "Geschlecht",
                    "fr": "Genre",
                    "ro": "Gen",
                    "pt": "Género",
                    "es": "Género",
                    "da": "Køn"
                },
                "unit": null
            },
            {
                "id": 670,
                "type": "list",
                "name": "beekeeper_since",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Beekeeper since",
                    "nl": "Imker sinds",
                    "de": "Imker seit",
                    "fr": "Apiculteur depuis",
                    "ro": "Apicultor din",
                    "pt": "Apicultor desde",
                    "es": "Apicultor desde",
                    "da": "Biavler siden"
                },
                "unit": null
            },
            {
                "id": 672,
                "type": "5",
                "name": "beekeeper_id",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "text",
                "trans": {
                    "en": "Beekeeper ID",
                    "nl": "Imker ID",
                    "de": "Imker ID",
                    "fr": "ID apiculteur",
                    "ro": "ID apicultor",
                    "pt": "Número de apicultor",
                    "es": "ID Apicultor",
                    "da": "Biavler ID"
                },
                "unit": null
            },
            {
                "id": 673,
                "type": "list",
                "name": "company",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Company",
                    "nl": "Bedrijf",
                    "de": "Betrieb",
                    "fr": "Société",
                    "ro": "Companie",
                    "pt": "Empresa",
                    "es": "Compañía\/Empresa",
                    "da": "Firma"
                },
                "unit": null
            },
            {
                "id": 680,
                "type": "list",
                "name": "method",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "options",
                "trans": {
                    "en": "Method",
                    "nl": "Methode",
                    "de": "Methode",
                    "fr": "Méthode",
                    "ro": "Metodă",
                    "pt": "Método",
                    "es": "Método",
                    "da": "Metode"
                },
                "unit": null
            },
            {
                "id": 688,
                "type": "list",
                "name": "role",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "options",
                "trans": {
                    "en": "Role",
                    "nl": "Rol",
                    "fr": "Rôle",
                    "ro": "Rol",
                    "pt": "Papel",
                    "es": "Rol",
                    "da": "Rolle"
                },
                "unit": null
            },
            {
                "id": 691,
                "type": "system",
                "name": "photo",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "list_item",
                "trans": {
                    "en": "Photo",
                    "nl": "Foto",
                    "de": "Foto",
                    "fr": "Photo",
                    "ro": "Poză",
                    "pt": "Fotografia",
                    "es": "Foto",
                    "da": "Foto"
                },
                "unit": null
            },
            {
                "id": 692,
                "type": "list",
                "name": "inspection_role",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Inspection role",
                    "nl": "Inspectie rol",
                    "fr": "Rôle d'inspection",
                    "ro": "Scopul inspecției",
                    "pt": "Inspecção",
                    "es": "Rol durante la inspección"
                },
                "unit": null
            }
        ]
    },
    {
        "id": 698,
        "type": "list",
        "name": "production",
        "icon": null,
        "source": null,
        "required": 0,
        "input": "label",
        "trans": {
            "en": "Production",
            "nl": "Productie",
            "de": "Produktion",
            "fr": "Production",
            "ro": "Producție",
            "pt": "Produção",
            "es": "Producción",
            "da": "Produktion"
        },
        "unit": null,
        "children": [
            {
                "id": 851,
                "type": "checklist",
                "name": "honey",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Honey",
                    "nl": "Honing",
                    "de": "Honig",
                    "fr": "Miel",
                    "ro": "Miere",
                    "pt": "Mel",
                    "es": "Miel",
                    "da": "Honning"
                },
                "unit": null
            },
            {
                "id": 852,
                "type": "checklist",
                "name": "other",
                "icon": null,
                "source": null,
                "required": 0,
                "input": "label",
                "trans": {
                    "en": "Other",
                    "nl": "Andere",
                    "de": "andere",
                    "fr": "Autre",
                    "ro": "Alte",
                    "pt": "Outros",
                    "es": "Otro",
                    "da": "Andet"
                },
                "unit": null
            }
        ]
    }
]

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/categories

api/categories/{id}

Display the specified category.


Requires authentication

Example request:

curl -X GET -G "https://api.beep.nl/api/categories/1" 
const url = new URL("https://api.beep.nl/api/categories/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/categories/{category}

api/categoryinputs

List of all available input types of the inspection categories


Requires authentication

Example request:

curl -X GET -G "https://api.beep.nl/api/categoryinputs" 
const url = new URL("https://api.beep.nl/api/categoryinputs");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (200):

[
    {
        "id": 1,
        "name": "List",
        "type": "list",
        "min": null,
        "max": null,
        "decimals": null
    },
    {
        "id": 2,
        "name": "List item",
        "type": "list_item",
        "min": null,
        "max": null,
        "decimals": null
    },
    {
        "id": 3,
        "name": "Boolean (yes = green)",
        "type": "boolean",
        "min": null,
        "max": null,
        "decimals": null
    }
]

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/categoryinputs

Api\ChecklistController

Display a listing of the resource.

Example request:

curl -X GET -G "https://api.beep.nl/api/checklists" 
const url = new URL("https://api.beep.nl/api/checklists");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/checklists

api/checklists

Example request:

curl -X POST "https://api.beep.nl/api/checklists" 
const url = new URL("https://api.beep.nl/api/checklists");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/checklists

api/checklists/{checklist}

Example request:

curl -X GET -G "https://api.beep.nl/api/checklists/1" 
const url = new URL("https://api.beep.nl/api/checklists/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/checklists/{checklist}

api/checklists/{checklist}

Example request:

curl -X PUT "https://api.beep.nl/api/checklists/1" 
const url = new URL("https://api.beep.nl/api/checklists/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "PUT",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

PUT api/checklists/{checklist}

PATCH api/checklists/{checklist}

api/checklists/{checklist}

Example request:

curl -X DELETE "https://api.beep.nl/api/checklists/1" 
const url = new URL("https://api.beep.nl/api/checklists/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

DELETE api/checklists/{checklist}

Api\DeviceController

Store and retreive Devices that produce measurements

api/devices/multiple POST

Store/update multiple Devices in an array of Device objects


Requires authentication

Example request:

curl -X POST "https://api.beep.nl/api/devices/multiple" \
    -H "Content-Type: application/json" \
    -d '{"id":6,"key":"molestiae","hardware_id":"distinctio","name":"harum","hive_id":4,"type":"dolore","last_message_received":"distinctio","firmware_version":"at","hardware_version":"suscipit","boot_count":15,"measurement_interval_min":6268.5739,"measurement_transmission_ratio":65374.419682,"ble_pin":"dolores","battery_voltage":475873.937686,"next_downlink_message":"nesciunt","last_downlink_result":"inventore"}'
const url = new URL("https://api.beep.nl/api/devices/multiple");

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "id": 6,
    "key": "molestiae",
    "hardware_id": "distinctio",
    "name": "harum",
    "hive_id": 4,
    "type": "dolore",
    "last_message_received": "distinctio",
    "firmware_version": "at",
    "hardware_version": "suscipit",
    "boot_count": 15,
    "measurement_interval_min": 6268.5739,
    "measurement_transmission_ratio": 65374.419682,
    "ble_pin": "dolores",
    "battery_voltage": 475873.937686,
    "next_downlink_message": "nesciunt",
    "last_downlink_result": "inventore"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/devices/multiple

Body Parameters

Parameter Type Status Description
id integer optional Device id to update. (Required without key and hardware_id)
key string optional DEV EUI of the sensor to enable storing sensor data incoming on the api/sensors or api/lora_sensors endpoint. (Required without id and hardware_id)
hardware_id string optional Hardware id of the device as device name in TTN. (Required without id and key)
name string optional Device name
hive_id integer optional Hive that the sensor is measuring. Default: null
type string optional Category name of the hive type from the Categories table. Default: beep
last_message_received timestamp optional Will be converted with date('Y-m-d H:i:s', $last_message_received); before storing
firmware_version string optional Firmware version of the Device
hardware_version string optional Hardware version of the Device
boot_count integer optional Amount of boots of the Device
measurement_interval_min float optional Measurement interval in minutes
measurement_transmission_ratio float optional Measurements ratio of non-transmitted vs transmitted messages. If 0 or 1, every measurement gets transmitted.
ble_pin string optional Bleutooth PIN of Device: 6 numbers between 0-9
battery_voltage float optional Last measured battery voltage
next_downlink_message string optional Hex string to send via downlink at next connection (LoRaWAN port 6)
last_downlink_result string optional Result received from BEEP base after downlink message (LoRaWAN port 5)

api/devices/ttn/{dev_id} GET

Get a TTN Device by Device ID (BEEP hardware_id)


Requires authentication

Example request:

curl -X GET -G "https://api.beep.nl/api/devices/ttn/1" 
const url = new URL("https://api.beep.nl/api/devices/ttn/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/devices/ttn/{dev_id}

api/devices/ttn/{dev_id} POST

Create an OTAA LoRaWAN Device in the BEEP TTN Console by dev_id (dev_id (= BEEP hardwareid) a unique identifier for the device. It can contain lowercase letters, numbers, - and ) and this payload: { "lorawan_device": { "dev_eui": "<8 byte identifier for the device>", "app_key": "<16 byte static key that is known by the device and the application. It is used for negotiating session keys (OTAA)>" } }


Requires authentication

Example request:

curl -X POST "https://api.beep.nl/api/devices/ttn/1" 
const url = new URL("https://api.beep.nl/api/devices/ttn/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/devices/ttn/{dev_id}

api/devices GET

List all user Devices


Requires authentication

Example request:

curl -X GET -G "https://api.beep.nl/api/devices" \
    -H "Content-Type: application/json" \
    -d '{"hardware_id":"rem"}'
const url = new URL("https://api.beep.nl/api/devices");

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "hardware_id": "rem"
}

fetch(url, {
    method: "GET",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (200):

[
    {
        "id": 1,
        "hive_id": 2,
        "name": "BEEPBASE-0000",
        "key": "000000000000000",
        "created_at": "2020-01-22 09:43:03",
        "last_message_received": null,
        "hardware_id": null,
        "firmware_version": null,
        "hardware_version": null,
        "boot_count": null,
        "measurement_interval_min": null,
        "measurement_transmission_ratio": null,
        "ble_pin": null,
        "battery_voltage": null,
        "next_downlink_message": null,
        "last_downlink_result": null,
        "type": "beep",
        "hive_name": "Hive 2",
        "location_name": "Test stand 1",
        "owner": true,
        "sensor_definitions": [
            {
                "id": 7,
                "name": null,
                "inside": null,
                "offset": 8131,
                "multiplier": null,
                "input_measurement_id": 7,
                "output_measurement_id": 20,
                "device_id": 1,
                "input_abbr": "w_v",
                "output_abbr": "weight_kg"
            }
        ]
    }
]

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/devices

Body Parameters

Parameter Type Status Description
hardware_id string optional Provide to filter on hardware_id

api/devices POST

Create or Update a Device


Requires authentication

Example request:

curl -X POST "https://api.beep.nl/api/devices" \
    -H "Content-Type: application/json" \
    -d '{"id":10,"key":"cumque","hardware_id":"commodi","name":"harum","hive_id":2,"type":"sit","last_message_received":"saepe","firmware_version":"voluptatem","hardware_version":"delectus","boot_count":5,"measurement_interval_min":92.761391605,"measurement_transmission_ratio":28.5562406,"ble_pin":"voluptatem","battery_voltage":741624.5458,"next_downlink_message":"quaerat","last_downlink_result":"ea","create_ttn_device":true,"app_key":"animi"}'
const url = new URL("https://api.beep.nl/api/devices");

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "id": 10,
    "key": "cumque",
    "hardware_id": "commodi",
    "name": "harum",
    "hive_id": 2,
    "type": "sit",
    "last_message_received": "saepe",
    "firmware_version": "voluptatem",
    "hardware_version": "delectus",
    "boot_count": 5,
    "measurement_interval_min": 92.761391605,
    "measurement_transmission_ratio": 28.5562406,
    "ble_pin": "voluptatem",
    "battery_voltage": 741624.5458,
    "next_downlink_message": "quaerat",
    "last_downlink_result": "ea",
    "create_ttn_device": true,
    "app_key": "animi"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/devices

Body Parameters

Parameter Type Status Description
id integer optional Device id to update. (Required without key and hardware_id)
key string optional DEV EUI of the sensor to enable storing sensor data incoming on the api/sensors or api/lora_sensors endpoint. (Required without id and hardware_id)
hardware_id string optional Hardware id of the device as device name in TTN. (Required without id and key)
name string optional Device name
hive_id integer optional Hive that the sensor is measuring. Default: null
type string optional Category name of the hive type from the Categories table. Default: beep
last_message_received timestamp optional Will be converted with date('Y-m-d H:i:s', $last_message_received); before storing
firmware_version string optional Firmware version of the Device
hardware_version string optional Hardware version of the Device
boot_count integer optional Amount of boots of the Device
measurement_interval_min float optional Measurement interval in minutes
measurement_transmission_ratio float optional Measurements ratio of non-transmitted vs transmitted messages. If 0 or 1, every measurement gets transmitted.
ble_pin string optional Bleutooth PIN of Device: 6 numbers between 0-9
battery_voltage float optional Last measured battery voltage
next_downlink_message string optional Hex string to send via downlink at next connection (LoRaWAN port 6)
last_downlink_result string optional Result received from BEEP base after downlink message (LoRaWAN port 5)
create_ttn_device boolean optional If true, create a new LoRaWAN device in the BEEP TTN console. If succesfull, create the device.
app_key string optional BEEP base LoRaWAN application key that you would like to store in TTN

api/devices/{id} GET

List one Device by id


Requires authentication

Example request:

curl -X GET -G "https://api.beep.nl/api/devices/1" 
const url = new URL("https://api.beep.nl/api/devices/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/devices/{device}

api/devices PUT/PATCH

Update an existing Device


Requires authentication

Example request:

curl -X PUT "https://api.beep.nl/api/devices/1" \
    -H "Content-Type: application/json" \
    -d '{"id":12,"key":"ut","hardware_id":"accusamus","name":"aliquid","hive_id":10,"type":"aut","delete":false,"last_message_received":"dicta","firmware_version":"neque","hardware_version":"ut","boot_count":13,"measurement_interval_min":0.421143344,"measurement_transmission_ratio":3.634199094,"ble_pin":"voluptatem","battery_voltage":69934.80713105,"next_downlink_message":"eligendi","last_downlink_result":"recusandae"}'
const url = new URL("https://api.beep.nl/api/devices/1");

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "id": 12,
    "key": "ut",
    "hardware_id": "accusamus",
    "name": "aliquid",
    "hive_id": 10,
    "type": "aut",
    "delete": false,
    "last_message_received": "dicta",
    "firmware_version": "neque",
    "hardware_version": "ut",
    "boot_count": 13,
    "measurement_interval_min": 0.421143344,
    "measurement_transmission_ratio": 3.634199094,
    "ble_pin": "voluptatem",
    "battery_voltage": 69934.80713105,
    "next_downlink_message": "eligendi",
    "last_downlink_result": "recusandae"
}

fetch(url, {
    method: "PUT",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

PUT api/devices/{device}

PATCH api/devices/{device}

Body Parameters

Parameter Type Status Description
id integer optional Device id to update. (Required without key and hardware_id)
key string optional DEV EUI of the sensor to enable storing sensor data incoming on the api/sensors or api/lora_sensors endpoint. (Required without id and hardware_id)
hardware_id string optional Hardware id of the device as device name in TTN. (Required without id and key)
name string optional Name of the sensor
hive_id integer optional Hive that the sensor is measuring. Default: null
type string optional Category name of the hive type from the Categories table. Default: beep
delete boolean optional If true delete the sensor and all it's data in the Influx database
last_message_received timestamp optional Will be converted with date('Y-m-d H:i:s', $last_message_received); before storing
firmware_version string optional Firmware version of the Device
hardware_version string optional Hardware version of the Device
boot_count integer optional Amount of boots of the Device
measurement_interval_min float optional Measurement interval in minutes
measurement_transmission_ratio float optional Measurements ratio of non-transmitted vs transmitted messages. If 0 or 1, every measurement gets transmitted.
ble_pin string optional Bleutooth PIN of Device: 6 numbers between 0-9
battery_voltage float optional Last measured battery voltage
next_downlink_message string optional Hex string to send via downlink at next connection (LoRaWAN port 6)
last_downlink_result string optional Result received from BEEP base after downlink message (LoRaWAN port 5)

Api\ExportController

Export all data to an Excel file by email (GDPR)

api/export

Example request:

curl -X GET -G "https://api.beep.nl/api/export" 
const url = new URL("https://api.beep.nl/api/export");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/export

api/export/csv POST

Generate a CSV measurement data export from InfluxDB. Make sure not to load a too large timespan (i.e. > 30 days), because the call will not succeed due to memory overload.


Requires authentication

Example request:

curl -X POST "https://api.beep.nl/api/export/csv" \
    -H "Content-Type: application/json" \
    -d '{"device_id":"est","start":"2020-05-27 16:16","end":"2020-05-30 00:00","separator":";","measurements":"'am2315_t,am2315_h,mhz_co2'","link":true}'
const url = new URL("https://api.beep.nl/api/export/csv");

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "device_id": "est",
    "start": "2020-05-27 16:16",
    "end": "2020-05-30 00:00",
    "separator": ";",
    "measurements": "'am2315_t,am2315_h,mhz_co2'",
    "link": true
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/export/csv

Body Parameters

Parameter Type Status Description
device_id required optional Device id to download data from
start date required Date for start of data export.
end date required Date for end of data export.
separator string optional Symbol that should be used to separate columns in CSV file.
measurements string optional Comma separated list of measurement types to load. If you want a lot of data (i.e. > 30 days), make sure not to load more than one measurement.
link boolean optional filled means: save the export to a file and provide the link, not filled means: output a text/html header with text containing the .csv content. Example:

Api\GroupController

api/groups/checktoken

Example request:

curl -X POST "https://api.beep.nl/api/groups/checktoken" 
const url = new URL("https://api.beep.nl/api/groups/checktoken");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/groups/checktoken

api/groups

Example request:

curl -X GET -G "https://api.beep.nl/api/groups" 
const url = new URL("https://api.beep.nl/api/groups");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/groups

api/groups

Example request:

curl -X POST "https://api.beep.nl/api/groups" 
const url = new URL("https://api.beep.nl/api/groups");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/groups

api/groups/{group}

Example request:

curl -X GET -G "https://api.beep.nl/api/groups/1" 
const url = new URL("https://api.beep.nl/api/groups/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/groups/{group}

api/groups/{group}

Example request:

curl -X PUT "https://api.beep.nl/api/groups/1" 
const url = new URL("https://api.beep.nl/api/groups/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "PUT",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

PUT api/groups/{group}

PATCH api/groups/{group}

api/groups/{group}

Example request:

curl -X DELETE "https://api.beep.nl/api/groups/1" 
const url = new URL("https://api.beep.nl/api/groups/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

DELETE api/groups/{group}

api/groups/detach/{id}

Example request:

curl -X DELETE "https://api.beep.nl/api/groups/detach/1" 
const url = new URL("https://api.beep.nl/api/groups/detach/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

DELETE api/groups/detach/{id}

Api\HiveController

api/hives GET

Display a listing of user hives.


Requires authentication

Example request:

curl -X GET -G "https://api.beep.nl/api/hives" 
const url = new URL("https://api.beep.nl/api/hives");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (200):

{
    "hives": [
        {
            "id": 1,
            "location_id": 1,
            "hive_type_id": 43,
            "color": "#35f200",
            "name": "Kast 1",
            "created_at": "2017-07-13 23:34:49",
            "type": "spaarkast",
            "location": "",
            "attention": null,
            "impression": null,
            "reminder": null,
            "reminder_date": null,
            "inspection_count": 0,
            "sensors": [
                3,
                19
            ],
            "owner": true,
            "layers": [
                {
                    "id": 1,
                    "order": 0,
                    "color": "#35f200",
                    "type": "brood",
                    "framecount": 10
                },
                {
                    "id": 2,
                    "order": 1,
                    "color": "#35f200",
                    "type": "brood",
                    "framecount": 10
                },
                {
                    "id": 3,
                    "order": 2,
                    "color": "#35f200",
                    "type": "honey",
                    "framecount": 10
                }
            ],
            "queen": null
        }
    ]
}

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/hives

api/hives POST

Store a newly created Hive in storage for the authenticated user.


Requires authentication

Example request:

curl -X POST "https://api.beep.nl/api/hives" 
const url = new URL("https://api.beep.nl/api/hives");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/hives

api/hives/{id} GET

Display the specified resource.


Requires authentication

Example request:

curl -X GET -G "https://api.beep.nl/api/hives/1" 
const url = new URL("https://api.beep.nl/api/hives/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/hives/{hive}

api/hives/{id} PATCH

Update the specified user Hive in storage.


Requires authentication

Example request:

curl -X PUT "https://api.beep.nl/api/hives/1" 
const url = new URL("https://api.beep.nl/api/hives/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "PUT",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

PUT api/hives/{hive}

PATCH api/hives/{hive}

api/hives/{id} DELETE

Remove the specified user Hive from storage.


Requires authentication

Example request:

curl -X DELETE "https://api.beep.nl/api/hives/1" 
const url = new URL("https://api.beep.nl/api/hives/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

DELETE api/hives/{hive}

Api\ImageController

Store and retreive image metadata (image_url, thumb_url, width, category_id, etc.)

Display a listing of the resource.

Example request:

curl -X GET -G "https://api.beep.nl/api/images" 
const url = new URL("https://api.beep.nl/api/images");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/images

Store a newly created resource in storage.

Example request:

curl -X POST "https://api.beep.nl/api/images" 
const url = new URL("https://api.beep.nl/api/images");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/images

Display the specified resource.

Example request:

curl -X GET -G "https://api.beep.nl/api/images/1" 
const url = new URL("https://api.beep.nl/api/images/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/images/{image}

Update the specified resource in storage.

Example request:

curl -X PUT "https://api.beep.nl/api/images/1" 
const url = new URL("https://api.beep.nl/api/images/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "PUT",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

PUT api/images/{image}

PATCH api/images/{image}

Remove the specified resource from storage.

Example request:

curl -X DELETE "https://api.beep.nl/api/images" 
const url = new URL("https://api.beep.nl/api/images");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

DELETE api/images

Api\InspectionsController

api/inspections GET

Show the 'inspections' list with objects reflecting only the general inspection data.


Requires authentication

Example request:

curl -X GET -G "https://api.beep.nl/api/inspections" 
const url = new URL("https://api.beep.nl/api/inspections");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/inspections

api/inspections/lists GET

List checklists and its inspections linked to Hive id. The 'inspections' object contains a descending date ordered list of general inspection data. The 'items_by_date' object contains a list of (rows of) inspection items that can be placed (in columns) under the inspections by created_at date (table format). NB: Use 'Accept-Language' Header (default nl_NL) to provide localized category names (anc, name) in items_by_date.


Requires authentication

Example request:

curl -X GET -G "https://api.beep.nl/api/inspections/lists" \
    -H "Content-Type: application/json" \
    -d '{"id":18}'
const url = new URL("https://api.beep.nl/api/inspections/lists");

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "id": 18
}

fetch(url, {
    method: "GET",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (200):

{
    "checklists": [
        {
            "id": 810,
            "type": "beep_v2_copy",
            "name": "Beep v2 - info@beep.nl",
            "description": null,
            "created_at": "2020-01-13 18:30:02",
            "updated_at": "2020-01-13 19:58:47",
            "category_ids": [
                149,
                771,
                963,
                964,
                965,
                966,
                263,
                265,
                270,
                276
            ],
            "required_ids": [],
            "owner": true,
            "researches": []
        }
    ]
}

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/inspections/lists

Body Parameters

Parameter Type Status Description
id integer required The hive to request inspections from.

api/inspections/{id} GET

Show the 'inspection' object. The object reflects only the general inspection data.


Requires authentication

Example request:

curl -X GET -G "https://api.beep.nl/api/inspections/1" 
const url = new URL("https://api.beep.nl/api/inspections/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/inspections/{id}

api/inspections/hive/{hive_id} GET

List all inspections linked to Hive id. The 'inspections' object contains a descending date ordered list of general inspection data. The 'items_by_date' object contains a list of (rows of) inspection items that can be placed (in columns) under the inspections by created_at date (table format). NB: Use 'Accept-Language' Header (default nl_NL) to provide localized category names (anc, name) in items_by_date.


Requires authentication

Example request:

curl -X GET -G "https://api.beep.nl/api/inspections/hive/1" 
const url = new URL("https://api.beep.nl/api/inspections/hive/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (200):

{
    "inspections": [
        {
            "id": 93,
            "notes": null,
            "reminder": null,
            "reminder_date": null,
            "impression": 1,
            "attention": null,
            "created_at": "2020-05-18 12:34:00",
            "checklist_id": 829,
            "image_id": null,
            "owner": true,
            "thumb_url": null,
            "hive_id": 42
        },
        {
            "id": 91,
            "notes": null,
            "reminder": null,
            "reminder_date": null,
            "impression": 3,
            "attention": 0,
            "created_at": "2020-05-18 11:43:00",
            "checklist_id": 829,
            "image_id": null,
            "owner": true,
            "thumb_url": null,
            "hive_id": 42
        }
    ],
    "items_by_date": [
        {
            "anc": null,
            "name": "Bee colony",
            "items": null
        },
        {
            "anc": "Bee colony > Brood > ",
            "name": "Pattern consistency",
            "type": "score",
            "range": "min: 1 - max: 5",
            "items": [
                {
                    "id": 138,
                    "value": "3",
                    "inspection_id": 93,
                    "category_id": 279,
                    "val": "3",
                    "unit": null,
                    "type": "score"
                },
                ""
            ]
        },
        {
            "anc": "Bee colony > Brood > Status > ",
            "name": "All stages",
            "type": "boolean",
            "range": null,
            "items": [
                "",
                {
                    "id": 77,
                    "value": "1",
                    "inspection_id": 91,
                    "category_id": 868,
                    "val": "Yes",
                    "unit": null,
                    "type": "boolean"
                }
            ]
        },
        {
            "anc": "Bee colony > Brood > Status > ",
            "name": "Eggs",
            "type": "boolean",
            "range": null,
            "items": [
                "",
                {
                    "id": 308,
                    "value": "1",
                    "inspection_id": 91,
                    "category_id": 270,
                    "val": "Yes",
                    "unit": null,
                    "type": "boolean"
                }
            ]
        }
    ]
}

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/inspections/hive/{hive_id}

api/inspections POST

Register a new hive inspection the 'inspection' object. The object reflects only the general inspection data.


Requires authentication

Example request:

curl -X POST "https://api.beep.nl/api/inspections/store" \
    -H "Content-Type: application/json" \
    -d '{"date":"2020-05-18 16:16","items":"{\"547\":0,\"595\":1,\"845\":\"814\"}","hive_id":42,"impression":-1,"attention":1,"reminder":"This is an inspection reminder","reminder_date":"2020-05-27 16:16","notes":"This is an inspection note","checklist_id":829}'
const url = new URL("https://api.beep.nl/api/inspections/store");

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "date": "2020-05-18 16:16",
    "items": "{\"547\":0,\"595\":1,\"845\":\"814\"}",
    "hive_id": 42,
    "impression": -1,
    "attention": 1,
    "reminder": "This is an inspection reminder",
    "reminder_date": "2020-05-27 16:16",
    "notes": "This is an inspection note",
    "checklist_id": 829
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/inspections/store

Body Parameters

Parameter Type Status Description
date date required The date of the inspection.
items object required An object of category id's containing their inspected values (id's in case of lists, otherwise numeric/textual values).
hive_id integer required Hive id for which this inspection has been carried out.
impression integer optional Numeric impression value -1 (unfilled) to 1-3 (smileys).
attention integer optional Numeric impression value -1 (unfilled) to 0-1 (needs attention).
reminder string optional Textual value of the reminder fields.
reminder_date date optional Date for an optional reminder that can be fed to the users calender.
notes string optional Textual value of the notes fields.
checklist_id integer optional Id of the user checklist for generating this inspection.

Remove the specified resource from storage.

Example request:

curl -X DELETE "https://api.beep.nl/api/inspections/1" 
const url = new URL("https://api.beep.nl/api/inspections/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

DELETE api/inspections/{id}

Api\LocationController

Manage Apiaries

Display a listing of the resource.

Example request:

curl -X GET -G "https://api.beep.nl/api/locations" 
const url = new URL("https://api.beep.nl/api/locations");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/locations

Store a newly created resource in storage.

Example request:

curl -X POST "https://api.beep.nl/api/locations" 
const url = new URL("https://api.beep.nl/api/locations");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/locations

Display the specified resource.

Example request:

curl -X GET -G "https://api.beep.nl/api/locations/1" 
const url = new URL("https://api.beep.nl/api/locations/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/locations/{location}

Update the specified resource in storage.

Example request:

curl -X PUT "https://api.beep.nl/api/locations/1" 
const url = new URL("https://api.beep.nl/api/locations/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "PUT",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

PUT api/locations/{location}

PATCH api/locations/{location}

Remove the specified resource from storage.

Example request:

curl -X DELETE "https://api.beep.nl/api/locations/1" 
const url = new URL("https://api.beep.nl/api/locations/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

DELETE api/locations/{location}

Api\MeasurementController

Store and retreive sensor data (both LoRa and API POSTs) from a Device

api/sensors POST

Store sensor measurement data (see BEEP sensor data API definition) from API, or TTN. In case of using api/unsecure_sensors, this is used for legacy measurement devices that do not have the means to encrypt HTTPS cypher

Example request:

curl -X POST "https://api.beep.nl/api/sensors" \
    -H "Content-Type: application/json" \
    -d '{"key":"harum","data":[],"payload_fields":[]}'
const url = new URL("https://api.beep.nl/api/sensors");

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "key": "harum",
    "data": [],
    "payload_fields": []
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/sensors

Body Parameters

Parameter Type Status Description
key string required DEV EUI of the Device to enable storing sensor data
data array optional Measurement data
payload_fields array optional TTN Measurement data

api/lora_sensors POST

Store sensor measurement data (see BEEP sensor data API definition) from TTN or KPN (Simpoint) When Simpoint payload is supplied, the LoRa HEX to key/value pairs decoding is done within function $this->parse_ttn_payload() When TTN payload is supplied, the TTN HTTP integration decoder/converter is assumed to have already converted the payload from LoRa HEX to key/value conversion

Example request:

curl -X POST "https://api.beep.nl/api/lora_sensors" \
    -H "Content-Type: application/json" \
    -d '{"key":"voluptas","payload_fields":[],"DevEUI_uplink":[]}'
const url = new URL("https://api.beep.nl/api/lora_sensors");

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "key": "voluptas",
    "payload_fields": [],
    "DevEUI_uplink": []
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/lora_sensors

Body Parameters

Parameter Type Status Description
key string required DEV EUI of the Device to enable storing sensor data
payload_fields array optional TTN Measurement data
DevEUI_uplink array optional KPN Measurement data

api/sensors POST

Store sensor measurement data (see BEEP sensor data API definition) from API, or TTN. In case of using api/unsecure_sensors, this is used for legacy measurement devices that do not have the means to encrypt HTTPS cypher

Example request:

curl -X POST "https://api.beep.nl/api/unsecure_sensors" \
    -H "Content-Type: application/json" \
    -d '{"key":"expedita","data":[],"payload_fields":[]}'
const url = new URL("https://api.beep.nl/api/unsecure_sensors");

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "key": "expedita",
    "data": [],
    "payload_fields": []
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/unsecure_sensors

Body Parameters

Parameter Type Status Description
key string required DEV EUI of the Device to enable storing sensor data
data array optional Measurement data
payload_fields array optional TTN Measurement data

api/sensors/measurements GET

Request all sensor measurements from a certain interval (hour, day, week, month, year) and index (0=until now, 1=previous interval, etc.)


Requires authentication

Example request:

curl -X GET -G "https://api.beep.nl/api/sensors/measurements" \
    -H "Content-Type: application/json" \
    -d '{"key":"tempore","id":3,"hive_id":3,"names":"nulla","interval":"est","index":1}'
const url = new URL("https://api.beep.nl/api/sensors/measurements");

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "key": "tempore",
    "id": 3,
    "hive_id": 3,
    "names": "nulla",
    "interval": "est",
    "index": 1
}

fetch(url, {
    method: "GET",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/sensors/measurements

Body Parameters

Parameter Type Status Description
key string optional DEV EUI to look up the sensor (Device)
id integer optional ID to look up the sensor (Device)
hive_id integer optional Hive ID to look up the sensor (Device)
names string optional comma separated list of Measurement abbreviations to filter request data (weight_kg, t, h, etc.)
interval string optional Data interval for interpolation of measurement values: hour (2min), day (10min), week (1 hour), month (3 hours), year (1 day). Default: day.
index integer optional Interval index (>=0; 0=until now, 1=previous interval, etc.). Default: 0.

api/sensors/lastvalues GET

Request last measurement values of all sensor measurements from a Device


Requires authentication

Example request:

curl -X GET -G "https://api.beep.nl/api/sensors/lastvalues" \
    -H "Content-Type: application/json" \
    -d '{"key":"commodi","id":2,"hive_id":3}'
const url = new URL("https://api.beep.nl/api/sensors/lastvalues");

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "key": "commodi",
    "id": 2,
    "hive_id": 3
}

fetch(url, {
    method: "GET",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/sensors/lastvalues

Body Parameters

Parameter Type Status Description
key string optional DEV EUI to look up the Device
id integer optional ID to look up the Device
hive_id integer optional Hive ID to look up the Device

api/sensors/lastweight GET

Request last weight related measurement values from a sensor (Device), used by legacy webapp to show calibration data: ['w_fl', 'w_fr', 'w_bl', 'w_br', 'w_v', 'weight_kg', 'weight_kg_corrected', 'calibrating_weight', 'w_v_offset', 'w_v_kg_per_val', 'w_fl_offset', 'w_fr_offset', 'w_bl_offset', 'w_br_offset']


Requires authentication

Example request:

curl -X GET -G "https://api.beep.nl/api/sensors/lastweight" \
    -H "Content-Type: application/json" \
    -d '{"key":"beatae","id":17,"hive_id":7}'
const url = new URL("https://api.beep.nl/api/sensors/lastweight");

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "key": "beatae",
    "id": 17,
    "hive_id": 7
}

fetch(url, {
    method: "GET",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/sensors/lastweight

Body Parameters

Parameter Type Status Description
key string optional DEV EUI to look up the sensor (Device)
id integer optional ID to look up the sensor (Device)
hive_id integer optional Hive ID to look up the sensor (Device)

api/sensors/calibrateweight

Legacy method, used by legacy webapp to store weight calibration value e.g.[w_v_kg_per_val] in Influx database, to lookup and calculate [weight_kg] at incoming measurement value storage

At the next measurement coming in, calibrate each weight sensor with it's part of a given weight. Because the measurements can come in only each hour/ 3hrs, set a value to trigger the calculation on next measurement

  1. If $next_measurement == true: save 'calibrating' = true in Influx with the sensor key
  2. If $next_measurement == false: save 'calibrating' = false in Influx with the sensor key and...
  3. Get the last measured weight values for this sensor key, Divide the given weight (in kg) with the amount of sensor values > 1.0 (assuming the weight is evenly distributed) Calculate the multiplier per sensor by dividing the multiplier = weight_part / (value - offset) Save the multiplier as $device_name.'_kg_per_val' in Influx

Example request:

curl -X POST "https://api.beep.nl/api/sensors/calibrateweight" 
const url = new URL("https://api.beep.nl/api/sensors/calibrateweight");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/sensors/calibrateweight

api/sensors/offsetweight

Example request:

curl -X POST "https://api.beep.nl/api/sensors/offsetweight" 
const url = new URL("https://api.beep.nl/api/sensors/offsetweight");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/sensors/offsetweight

api/sensors/measurement_types_available

Example request:

curl -X GET -G "https://api.beep.nl/api/sensors/measurement_types_available" 
const url = new URL("https://api.beep.nl/api/sensors/measurement_types_available");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/sensors/measurement_types_available

api/lora_sensors POST

Store sensor measurement data (see BEEP sensor data API definition) from TTN or KPN (Simpoint) When Simpoint payload is supplied, the LoRa HEX to key/value pairs decoding is done within function $this->parse_ttn_payload() When TTN payload is supplied, the TTN HTTP integration decoder/converter is assumed to have already converted the payload from LoRa HEX to key/value conversion

Example request:

curl -X POST "https://api.beep.nl/api/lora_sensors_auth" \
    -H "Content-Type: application/json" \
    -d '{"key":"sapiente","payload_fields":[],"DevEUI_uplink":[]}'
const url = new URL("https://api.beep.nl/api/lora_sensors_auth");

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "key": "sapiente",
    "payload_fields": [],
    "DevEUI_uplink": []
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/lora_sensors_auth

Body Parameters

Parameter Type Status Description
key string required DEV EUI of the Device to enable storing sensor data
payload_fields array optional TTN Measurement data
DevEUI_uplink array optional KPN Measurement data

api/sensors/flashlog

POST data from BEEP base fw 1.5.0+ FLASH log (with timestamp), interpret data and store in InlfuxDB (overwriting existing data). BEEP base BLE cmd: when the response is 200 OK and erase_mx_flash > -1, provide the ERASE_MX_FLASH BLE command (0x21) to the BEEP base with the last byte being the HEX value of the erase_mx_flash value (0 = 0x00, 1 = 0x01, i.e.0x2100, or 0x2101, i.e. erase_type:"fatfs", or erase_type:"full")


Requires authentication

Example request:

curl -X POST "https://api.beep.nl/api/sensors/flashlog?show=quo&save=nostrum&fill=dolorum&log_size_bytes=voluptas" \
    -H "Content-Type: application/json" \
    -d '{"id":14,"key":"sed","hardware_id":"voluptas","data":"rem","file":"voluptas"}'
const url = new URL("https://api.beep.nl/api/sensors/flashlog");

    let params = {
            "show": "quo",
            "save": "nostrum",
            "fill": "dolorum",
            "log_size_bytes": "voluptas",
        };
    Object.keys(params).forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "id": 14,
    "key": "sed",
    "hardware_id": "voluptas",
    "data": "rem",
    "file": "voluptas"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (200):

null

HTTP Request

POST api/sensors/flashlog

Body Parameters

Parameter Type Status Description
id integer optional Device id to update. (Required without key and hardware_id)
key string optional DEV EUI of the sensor to enable storing sensor data incoming on the api/sensors or api/lora_sensors endpoint. (Required without id and hardware_id)
hardware_id string optional Hardware id of the device as device name in TTN. (Required without id and key)
data string optional MX_FLASH_LOG Hexadecimal string lines (new line) separated, with many rows of log data, or text file binary with all data inside.
file binary optional File with MX_FLASH_LOG Hexadecimal string lines (new line) separated, with many rows of log data, or text file binary with all data inside.

Query Parameters

Parameter Status Description
show optional integer 1 for displaying info in result JSON, 0 for not displaying (default).
save optional integer 1 for saving the data to a file (default), 0 for not save log file.
fill optional integer 1 for filling data gaps in the database, 0 for not filling gaps (default).
log_size_bytes optional integer 0x22 decimal result of log size requested from BEEP base.

api/sensors/decode/p/{port}/pl/{payload}

Example request:

curl -X GET -G "https://api.beep.nl/api/sensors/decode/p/1/pl/1" 
const url = new URL("https://api.beep.nl/api/sensors/decode/p/1/pl/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/sensors/decode/p/{port}/pl/{payload}

Api\ProductionController

Not used

Display a listing of the resource.

Example request:

curl -X GET -G "https://api.beep.nl/api/productions" 
const url = new URL("https://api.beep.nl/api/productions");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/productions

Store a newly created resource in storage.

Example request:

curl -X POST "https://api.beep.nl/api/productions" 
const url = new URL("https://api.beep.nl/api/productions");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/productions

Display the specified resource.

Example request:

curl -X GET -G "https://api.beep.nl/api/productions/1" 
const url = new URL("https://api.beep.nl/api/productions/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/productions/{production}

Update the specified resource in storage.

Example request:

curl -X PUT "https://api.beep.nl/api/productions/1" 
const url = new URL("https://api.beep.nl/api/productions/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "PUT",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

PUT api/productions/{production}

PATCH api/productions/{production}

Remove the specified resource from storage.

Example request:

curl -X DELETE "https://api.beep.nl/api/productions/1" 
const url = new URL("https://api.beep.nl/api/productions/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

DELETE api/productions/{production}

Api\QueenController

Not used

Display a listing of the resource.

Example request:

curl -X GET -G "https://api.beep.nl/api/queens" 
const url = new URL("https://api.beep.nl/api/queens");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/queens

Store a newly created resource in storage.

Example request:

curl -X POST "https://api.beep.nl/api/queens" 
const url = new URL("https://api.beep.nl/api/queens");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/queens

Display the specified resource.

Example request:

curl -X GET -G "https://api.beep.nl/api/queens/1" 
const url = new URL("https://api.beep.nl/api/queens/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/queens/{queen}

Update the specified resource in storage.

Example request:

curl -X PUT "https://api.beep.nl/api/queens/1" 
const url = new URL("https://api.beep.nl/api/queens/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "PUT",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

PUT api/queens/{queen}

PATCH api/queens/{queen}

Remove the specified resource from storage.

Example request:

curl -X DELETE "https://api.beep.nl/api/queens/1" 
const url = new URL("https://api.beep.nl/api/queens/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

DELETE api/queens/{queen}

Api\ResearchController

Display a listing of the resource.

Example request:

curl -X GET -G "https://api.beep.nl/api/research" 
const url = new URL("https://api.beep.nl/api/research");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/research

Update the specified resource in storage.

Example request:

curl -X POST "https://api.beep.nl/api/research/1/add_consent" 
const url = new URL("https://api.beep.nl/api/research/1/add_consent");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/research/{id}/add_consent

api/research/{id}/remove_consent

Example request:

curl -X POST "https://api.beep.nl/api/research/1/remove_consent" 
const url = new URL("https://api.beep.nl/api/research/1/remove_consent");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/research/{id}/remove_consent

api/research/{id}/edit/{consent_id}

Example request:

curl -X PATCH "https://api.beep.nl/api/research/1/edit/1" 
const url = new URL("https://api.beep.nl/api/research/1/edit/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "PATCH",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

PATCH api/research/{id}/edit/{consent_id}

api/research/{id}/delete/{consent_id}

Example request:

curl -X DELETE "https://api.beep.nl/api/research/1/delete/1" 
const url = new URL("https://api.beep.nl/api/research/1/delete/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

DELETE api/research/{id}/delete/{consent_id}

Api\ResearchDataController

Retreive owned or viewable Research data

api/researchdata GET

List all available Researches


Requires authentication

Example request:

curl -X GET -G "https://api.beep.nl/api/researchdata" 
const url = new URL("https://api.beep.nl/api/researchdata");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (200):

[
    {
        "id": 1,
        "created_at": "2020-02-25 03:01:57",
        "updated_at": "2020-11-13 17:08:31",
        "name": "B-GOOD",
        "url": "https:\/\/b-good-project.eu\/",
        "description": "B-GOOD has the overall goal to provide guidance for beekeepers and help them make better and more informed decisions.",
        "type": "research-b-good",
        "institution": "Wageningen University & Research",
        "type_of_data_used": "Hive inspections, hive settings, BEEP base measurement data",
        "start_date": "2019-07-01 00:00:00",
        "end_date": "2023-06-30 00:00:00",
        "image_id": 1,
        "consent": true,
        "consent_history": [
            {
                "id": 185,
                "created_at": "2020-11-12 22:28:09",
                "updated_at": "2020-06-12 22:28:00",
                "user_id": 1,
                "research_id": 1,
                "consent": 1,
                "consent_location_ids": null,
                "consent_hive_ids": null,
                "consent_sensor_ids": null
            },
            {
                "id": 1,
                "created_at": "2020-02-25 03:02:23",
                "updated_at": "2020-05-27 03:03:00",
                "user_id": 1,
                "research_id": 1,
                "consent": 0,
                "consent_location_ids": null,
                "consent_hive_ids": null,
                "consent_sensor_ids": null
            },
            {
                "id": 97,
                "created_at": "2020-05-14 16:24:41",
                "updated_at": "2020-03-14 16:24:00",
                "user_id": 1,
                "research_id": 1,
                "consent": 1,
                "consent_location_ids": null,
                "consent_hive_ids": null,
                "consent_sensor_ids": null
            }
        ],
        "checklist_names": [
            "1 Winter",
            "2 Varroa",
            "3 Summer+",
            "4 Summer",
            "5 Health"
        ],
        "thumb_url": "\/storage\/users\/1\/thumbs\/research\/6LJEp35dodWWtfxnm3xfRnL05qvvJrHbn8IXAJqNCFZj2vFjwyLXbmWscKVz.jpg",
        "image": {
            "id": 1,
            "created_at": "2020-02-25 03:01:57",
            "updated_at": "2020-02-25 03:01:57",
            "filename": "6LJEp35dodWWtfxnm3xfRnL05qvvJrHbn8IXAJqNCFZj2vFjwyLXbmWscKVz.jpg",
            "image_url": "\/storage\/users\/1\/images\/research\/6LJEp35dodWWtfxnm3xfRnL05qvvJrHbn8IXAJqNCFZj2vFjwyLXbmWscKVz.jpg",
            "thumb_url": "\/storage\/users\/1\/thumbs\/research\/6LJEp35dodWWtfxnm3xfRnL05qvvJrHbn8IXAJqNCFZj2vFjwyLXbmWscKVz.jpg",
            "description": "B-GOOD has the overall goal to provide guidance for beekeepers and help them make better and more informed decisions.",
            "type": "research",
            "height": 1271,
            "width": 1271,
            "size_kb": 51,
            "date": "2020-02-25 03:01:57",
            "hive_id": null,
            "category_id": null,
            "inspection_id": null
        }
    }
]

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/researchdata

api/researchdata/{id} GET

List one Research by id with list of consent_users


Requires authentication

Example request:

curl -X GET -G "https://api.beep.nl/api/researchdata/1" 
const url = new URL("https://api.beep.nl/api/researchdata/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (200):

{
    "research": {
        "id": 1,
        "created_at": "2020-02-25 03:01:57",
        "updated_at": "2020-11-18 10:33:23",
        "name": "B-GOOD",
        "url": "https:\/\/b-good-project.eu\/",
        "description": "B-GOOD has the overall goal to provide guidance for beekeepers and help them make better and more informed decisions.",
        "type": "research-b-good",
        "institution": "Wageningen University & Research",
        "type_of_data_used": "Hive inspections, hive settings, BEEP base measurement data",
        "start_date": "2019-07-01 00:00:00",
        "end_date": "2023-06-30 00:00:00",
        "image_id": 1,
        "consent": true,
        "consent_history": [
            {
                "id": 185,
                "created_at": "2020-11-12 22:28:09",
                "updated_at": "2020-06-12 22:28:00",
                "user_id": 1,
                "research_id": 1,
                "consent": 1,
                "consent_location_ids": null,
                "consent_hive_ids": null,
                "consent_sensor_ids": null
            },
            {
                "id": 1,
                "created_at": "2020-02-25 03:02:23",
                "updated_at": "2020-05-27 03:03:00",
                "user_id": 1,
                "research_id": 1,
                "consent": 0,
                "consent_location_ids": null,
                "consent_hive_ids": null,
                "consent_sensor_ids": null
            },
            {
                "id": 97,
                "created_at": "2020-05-14 16:24:41",
                "updated_at": "2020-03-14 16:24:00",
                "user_id": 1,
                "research_id": 1,
                "consent": 1,
                "consent_location_ids": null,
                "consent_hive_ids": null,
                "consent_sensor_ids": null
            }
        ],
        "checklist_names": [
            "1 Winter",
            "2 Varroa",
            "3 Summer+",
            "4 Summer",
            "5 Health"
        ],
        "thumb_url": "\/storage\/users\/1\/thumbs\/research\/6LJEp35dodWWtfxnm3xfRnL05qvvJrHbn8IXAJqNCFZj2vFjwyLXbmWscKVz.jpg",
        "image": {
            "id": 1,
            "created_at": "2020-02-25 03:01:57",
            "updated_at": "2020-02-25 03:01:57",
            "filename": "6LJEp35dodWWtfxnm3xfRnL05qvvJrHbn8IXAJqNCFZj2vFjwyLXbmWscKVz.jpg",
            "image_url": "\/storage\/users\/1\/images\/research\/6LJEp35dodWWtfxnm3xfRnL05qvvJrHbn8IXAJqNCFZj2vFjwyLXbmWscKVz.jpg",
            "thumb_url": "\/storage\/users\/1\/thumbs\/research\/6LJEp35dodWWtfxnm3xfRnL05qvvJrHbn8IXAJqNCFZj2vFjwyLXbmWscKVz.jpg",
            "description": "B-GOOD has the overall goal to provide guidance for beekeepers and help them make better and more informed decisions.",
            "type": "research",
            "height": 1271,
            "width": 1271,
            "size_kb": 51,
            "date": "2020-02-25 03:01:57",
            "hive_id": null,
            "category_id": null,
            "inspection_id": null
        }
    },
    "consent_users": [
        {
            "id": 1,
            "name": "Beep",
            "email": "pim@beep.nl",
            "created_at": "2017-07-14 03:34:10",
            "updated_at": "2020-05-27 03:03:00",
            "last_login": "2020-11-18 10:32:16",
            "locale": null,
            "consent": 0
        },
        {
            "id": 2371,
            "name": "app@beep.nl",
            "email": "app@beep.nl",
            "created_at": "2019-10-24 17:15:55",
            "updated_at": "2020-02-25 11:46:59",
            "last_login": "2020-08-20 18:24:22",
            "locale": null,
            "consent": 0
        },
        {
            "id": 1,
            "name": "Beep",
            "email": "pim@beep.nl",
            "created_at": "2017-07-14 03:34:10",
            "updated_at": "2020-06-12 22:28:00",
            "last_login": "2020-11-18 10:32:16",
            "locale": null,
            "consent": 1
        }
    ]
}

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/researchdata/{id}

api/researchdata/{id}/user/{user_id}/{item} GET

List all user 'item' data within the consent=1 periods of a specific user within a Research. The 'item' field indicates the type of user data (apiaries/hives/devices/flashlogs/inspections/measurements/weather) to request within the research (which the user gave consent for to use). Example: inspectionsResponse: api/researchdata/1/user/1/inspections.


Requires authentication

Example request:

curl -X GET -G "https://api.beep.nl/api/researchdata/1/user/1/1" \
    -H "Content-Type: application/json" \
    -d '{"date_start":"2020-01-01 00:00:00","date_until":"2020-09-29 23:59:59","device_id":1,"precision":"rfc3339"}'
const url = new URL("https://api.beep.nl/api/researchdata/1/user/1/1");

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "date_start": "2020-01-01 00:00:00",
    "date_until": "2020-09-29 23:59:59",
    "device_id": 1,
    "precision": "rfc3339"
}

fetch(url, {
    method: "GET",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (200):

[
    {
        "id": 35211,
        "notes": "test",
        "reminder": null,
        "reminder_date": null,
        "impression": 2,
        "attention": 1,
        "created_at": "2020-03-26 18:28:00",
        "checklist_id": 798,
        "image_id": null,
        "owner": true,
        "thumb_url": null,
        "hive_id": 280,
        "items": []
    },
    {
        "id": 40162,
        "notes": "Input Liebefeld",
        "reminder": null,
        "reminder_date": null,
        "impression": null,
        "attention": null,
        "created_at": "2020-04-24 11:03:00",
        "checklist_id": 3206,
        "image_id": null,
        "owner": true,
        "thumb_url": null,
        "hive_id": 280,
        "items": [
            {
                "id": 326538,
                "value": "0.6",
                "inspection_id": 40162,
                "category_id": 977,
                "val": "0.6",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326539,
                "value": "4",
                "inspection_id": 40162,
                "category_id": 978,
                "val": "4",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326540,
                "value": "2",
                "inspection_id": 40162,
                "category_id": 979,
                "val": "2",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326541,
                "value": "4",
                "inspection_id": 40162,
                "category_id": 980,
                "val": "4",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326542,
                "value": "3",
                "inspection_id": 40162,
                "category_id": 981,
                "val": "3",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326543,
                "value": "581",
                "inspection_id": 40162,
                "category_id": 982,
                "val": "581",
                "unit": "bzz",
                "type": "number_positive"
            },
            {
                "id": 326544,
                "value": "5",
                "inspection_id": 40162,
                "category_id": 984,
                "val": "5",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326545,
                "value": "1",
                "inspection_id": 40162,
                "category_id": 985,
                "val": "1",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326546,
                "value": "4",
                "inspection_id": 40162,
                "category_id": 987,
                "val": "4",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326547,
                "value": "5",
                "inspection_id": 40162,
                "category_id": 988,
                "val": "5",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326548,
                "value": "4",
                "inspection_id": 40162,
                "category_id": 989,
                "val": "4",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326549,
                "value": "2",
                "inspection_id": 40162,
                "category_id": 990,
                "val": "2",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326550,
                "value": "2",
                "inspection_id": 40162,
                "category_id": 991,
                "val": "2",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326551,
                "value": "3",
                "inspection_id": 40162,
                "category_id": 992,
                "val": "3",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326552,
                "value": "3",
                "inspection_id": 40162,
                "category_id": 993,
                "val": "3",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326553,
                "value": "6",
                "inspection_id": 40162,
                "category_id": 995,
                "val": "6",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326554,
                "value": "2",
                "inspection_id": 40162,
                "category_id": 996,
                "val": "2",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326555,
                "value": "2",
                "inspection_id": 40162,
                "category_id": 997,
                "val": "2",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326556,
                "value": "2",
                "inspection_id": 40162,
                "category_id": 998,
                "val": "2",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326557,
                "value": "2",
                "inspection_id": 40162,
                "category_id": 999,
                "val": "2",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326558,
                "value": "2",
                "inspection_id": 40162,
                "category_id": 1000,
                "val": "2",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326559,
                "value": "2",
                "inspection_id": 40162,
                "category_id": 1001,
                "val": "2",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326560,
                "value": "8",
                "inspection_id": 40162,
                "category_id": 1163,
                "val": "8",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326561,
                "value": "4",
                "inspection_id": 40162,
                "category_id": 1164,
                "val": "4",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326562,
                "value": "2",
                "inspection_id": 40162,
                "category_id": 1165,
                "val": "2",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326563,
                "value": "6",
                "inspection_id": 40162,
                "category_id": 1166,
                "val": "6",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326564,
                "value": "2",
                "inspection_id": 40162,
                "category_id": 1167,
                "val": "2",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326565,
                "value": "2",
                "inspection_id": 40162,
                "category_id": 1168,
                "val": "2",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            },
            {
                "id": 326566,
                "value": "3",
                "inspection_id": 40162,
                "category_id": 1169,
                "val": "3",
                "unit": "x 25cm2",
                "type": "square_25cm2"
            }
        ]
    },
    {
        "id": 40163,
        "notes": "Brood photograph",
        "reminder": null,
        "reminder_date": null,
        "impression": null,
        "attention": null,
        "created_at": "2020-04-24 11:07:00",
        "checklist_id": 3206,
        "image_id": null,
        "owner": true,
        "thumb_url": null,
        "hive_id": 280,
        "items": [
            {
                "id": 326567,
                "value": "1",
                "inspection_id": 40163,
                "category_id": 399,
                "val": "Ja",
                "unit": null,
                "type": "boolean"
            },
            {
                "id": 326568,
                "value": "https:\/\/assets.beep.nl\/users\/1\/thumbs\/inspection\/jIcycTYnO8zYq6SHCvAwPHb97BDLFkZaDmfZUop5.png",
                "inspection_id": 40163,
                "category_id": 973,
                "val": "https:\/\/assets.beep.nl\/users\/1\/thumbs\/inspection\/jIcycTYnO8zYq6SHCvAwPHb97BDLFkZaDmfZUop5.png",
                "unit": null,
                "type": "image"
            }
        ]
    },
    {
        "id": 68477,
        "notes": null,
        "reminder": null,
        "reminder_date": null,
        "impression": 3,
        "attention": 1,
        "created_at": "2020-10-23 12:43:00",
        "checklist_id": 3206,
        "image_id": null,
        "owner": true,
        "thumb_url": null,
        "hive_id": 281,
        "items": []
    },
    {
        "id": 68478,
        "notes": "Hive change",
        "reminder": null,
        "reminder_date": null,
        "impression": null,
        "attention": null,
        "created_at": "2020-10-23 13:12:33",
        "checklist_id": null,
        "image_id": null,
        "owner": true,
        "thumb_url": null,
        "hive_id": 281,
        "items": [
            {
                "id": 522496,
                "value": "2",
                "inspection_id": 68478,
                "category_id": 85,
                "val": "2",
                "unit": null,
                "type": "number_positive"
            },
            {
                "id": 522497,
                "value": "2",
                "inspection_id": 68478,
                "category_id": 87,
                "val": "2",
                "unit": null,
                "type": "number"
            },
            {
                "id": 522498,
                "value": "10",
                "inspection_id": 68478,
                "category_id": 89,
                "val": "10",
                "unit": null,
                "type": "number_positive"
            }
        ]
    }
]

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/researchdata/{id}/user/{user_id}/{item}

Body Parameters

Parameter Type Status Description
date_start datetime optional The date in 'YYYY-MM-DD HH:mm:ss' format (2020-01-01 00:00:00) to request data from (default is beginning of research, or earlier (except inspections and measurements).
date_until datetime optional The date in 'YYYY-MM-DD HH:mm:ss' format (2020-09-29 23:59:59) to request data until (default is until the end of the user consent, or research end).
device_id integer optional The device_id to filter the measurements on (next to date_start and date_until).
precision string optional Specifies the optional InfluxDB format/precision (rfc3339/h/m/s/ms/u) of the timestamp of the measurements and weather data: rfc3339 (YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ), h (hours), m (minutes), s (seconds), ms (milliseconds), u (microseconds). Precision defaults to rfc3339.

Api\SampleCodeController

Research lab result sample code controller

Display a listing of the resource.

Example request:

curl -X GET -G "https://api.beep.nl/api/samplecode" 
const url = new URL("https://api.beep.nl/api/samplecode");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/samplecode

Store a newly created resource in storage.

Example request:

curl -X POST "https://api.beep.nl/api/samplecode" 
const url = new URL("https://api.beep.nl/api/samplecode");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/samplecode

Display the specified resource.

Example request:

curl -X GET -G "https://api.beep.nl/api/samplecode/1" 
const url = new URL("https://api.beep.nl/api/samplecode/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/samplecode/{samplecode}

Update the specified resource in storage.

Example request:

curl -X PUT "https://api.beep.nl/api/samplecode/1" 
const url = new URL("https://api.beep.nl/api/samplecode/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "PUT",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

PUT api/samplecode/{samplecode}

PATCH api/samplecode/{samplecode}

Remove the specified resource from storage.

Example request:

curl -X DELETE "https://api.beep.nl/api/samplecode" 
const url = new URL("https://api.beep.nl/api/samplecode");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

DELETE api/samplecode

Api\SensorDefinitionController

api/sensordefinition GET

Display a listing of the resource.


Requires authentication

Example request:

curl -X GET -G "https://api.beep.nl/api/sensordefinition" \
    -H "Content-Type: application/json" \
    -d '{"device_id":18,"device_hardware_id":"perspiciatis","input_measurement_abbreviation":"id","limit":11}'
const url = new URL("https://api.beep.nl/api/sensordefinition");

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "device_id": 18,
    "device_hardware_id": "perspiciatis",
    "input_measurement_abbreviation": "id",
    "limit": 11
}

fetch(url, {
    method: "GET",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/sensordefinition

Body Parameters

Parameter Type Status Description
device_id integer optional Either device_id, or device_hardware_id is required. Device that the definition value belongs to.
device_hardware_id string optional Either device_id, or device_hardware_id is required. Device that the definition values belong to.
input_measurement_abbreviation string optional Filter sensordefinitions by provided input abbreviation.
limit integer optional If input_abbr is set, limit the amount of results provided by more than 1 to get all historic sensordefinitions of this type.

api/sensordefinition POST

Store a newly created resource in storage.


Requires authentication

Example request:

curl -X POST "https://api.beep.nl/api/sensordefinition" \
    -H "Content-Type: application/json" \
    -d '{"name":"nihil","inside":false,"offset":282862118,"multiplier":20811261.33254,"input_measurement_id":5,"input_measurement_abbreviation":"w_v","output_measurement_id":6,"output_measurement_abbreviation":"t_i","device_id":17,"device_hardware_id":"voluptatem"}'
const url = new URL("https://api.beep.nl/api/sensordefinition");

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "name": "nihil",
    "inside": false,
    "offset": 282862118,
    "multiplier": 20811261.33254,
    "input_measurement_id": 5,
    "input_measurement_abbreviation": "w_v",
    "output_measurement_id": 6,
    "output_measurement_abbreviation": "t_i",
    "device_id": 17,
    "device_hardware_id": "voluptatem"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/sensordefinition

Body Parameters

Parameter Type Status Description
name string optional Name of the sensorinstance (e.g. temperature frame 1)
inside boolean optional True is measured inside, false if measured outside
offset float optional Measurement value that defines 0
multiplier float optional Amount of units (calibration figure) per delta Measurement value to multiply withy (value - offset)
input_measurement_id integer optional Measurement that represents the input Measurement value (e.g. 5, 3).
input_measurement_abbreviation string optional Abbreviation of the Measurement that represents the input value (e.g. w_v, or t_i).
output_measurement_id integer optional Measurement that represents the output Measurement value (e.g. 6, 3).
output_measurement_abbreviation string optional Abbreviation of the Measurement that represents the output (calculated with (raw_value - offset) * multiplier) value (e.g. weight_kg, or t_i),
device_id integer optional Device that the Measurement value belongs to
device_hardware_id string required Device that the Measurement values belong to

api/sensordefinition/{id} GET

Display the specified resource.

Example request:

curl -X GET -G "https://api.beep.nl/api/sensordefinition/1" 
const url = new URL("https://api.beep.nl/api/sensordefinition/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/sensordefinition/{sensordefinition}

api/sensordefinition PATCH

Update the specified resource in storage.

Example request:

curl -X PUT "https://api.beep.nl/api/sensordefinition/1" 
const url = new URL("https://api.beep.nl/api/sensordefinition/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "PUT",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

PUT api/sensordefinition/{sensordefinition}

PATCH api/sensordefinition/{sensordefinition}

api/sensordefinition DELETE

Remove the specified resource from storage.

Example request:

curl -X DELETE "https://api.beep.nl/api/sensordefinition/1" 
const url = new URL("https://api.beep.nl/api/sensordefinition/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

DELETE api/sensordefinition/{sensordefinition}

Api\SettingController

api/settings

Example request:

curl -X POST "https://api.beep.nl/api/settings" 
const url = new URL("https://api.beep.nl/api/settings");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/settings

api/settings

Example request:

curl -X GET -G "https://api.beep.nl/api/settings" 
const url = new URL("https://api.beep.nl/api/settings");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/settings

Api\TaxonomyController

api/taxonomy/lists

Example request:

curl -X GET -G "https://api.beep.nl/api/taxonomy/lists" 
const url = new URL("https://api.beep.nl/api/taxonomy/lists");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/taxonomy/lists

api/taxonomy/taxonomy

Example request:

curl -X GET -G "https://api.beep.nl/api/taxonomy/taxonomy" 
const url = new URL("https://api.beep.nl/api/taxonomy/taxonomy");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/taxonomy/taxonomy

Api\UserController

APIs for managing users

api/register

Registers a new user and sends an e-mail verification request on succesful save

Example request:

curl -X POST "https://api.beep.nl/api/register" \
    -H "Content-Type: application/json" \
    -d '{"email":"test@test.com","password":"testtest","password_confirmation":"testtest","policy_accepted":"beep_terms_2018_05_25_avg_v1"}'
const url = new URL("https://api.beep.nl/api/register");

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "email": "test@test.com",
    "password": "testtest",
    "password_confirmation": "testtest",
    "policy_accepted": "beep_terms_2018_05_25_avg_v1"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/register

Body Parameters

Parameter Type Status Description
email string required Email address of the user.
password string required Password of the user.
password_confirmation string required Password confirmation of the user.
policy_accepted string required Name of the privacy policy that has been accepted by the user by ticking the accept terms box.

api/login

Login via login form

Example request:

curl -X POST "https://api.beep.nl/api/login" \
    -H "Content-Type: application/json" \
    -d '{"email":"test@test.com","password":"testtest"}'
const url = new URL("https://api.beep.nl/api/login");

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "email": "test@test.com",
    "password": "testtest"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (200):

{
    "id": 1317,
    "name": "test@test.com",
    "email": "test@test.com",
    "avatar": "default.jpg",
    "api_token": "1snu2aRRiwQNl2Tul567hLF0XpKuZO8hqkgXU4GvjzZ3f3pOCiDPFbBDea7W",
    "created_at": "2018-12-30 23:57:35",
    "updated_at": "2020-01-09 16:31:32",
    "last_login": "2020-01-09 16:31:32",
    "policy_accepted": "beep_terms_2018_05_25_avg_v1",
    "email_verified_at": "2018-05-25 00:00:00"
}

HTTP Request

POST api/login

Body Parameters

Parameter Type Status Description
email string required Email address of the user.
password string required Password of the user.

api/user/reminder

Send password reset link responses: invalid_user, reminder_sent, invalid_password, invalid_token, password_reset

Example request:

curl -X POST "https://api.beep.nl/api/user/reminder" \
    -H "Content-Type: application/json" \
    -d '{"email":"test@test.com"}'
const url = new URL("https://api.beep.nl/api/user/reminder");

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "email": "test@test.com"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (200):

{
    "message": "reminder_sent"
}

HTTP Request

POST api/user/reminder

Body Parameters

Parameter Type Status Description
email string required Email address of the user.

api/user/reset

Reset the user passowrd with a reset link responses: INVALID_USER, RESET_LINK_SENT, INVALID_PASSWORD, INVALID_TOKEN, PASSWORD_RESET

Example request:

curl -X POST "https://api.beep.nl/api/user/reset" \
    -H "Content-Type: application/json" \
    -d '{"email":"test@test.com","password":"testtest","password_confirmation":"testtest","token":"z8iQafmgP1"}'
const url = new URL("https://api.beep.nl/api/user/reset");

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "email": "test@test.com",
    "password": "testtest",
    "password_confirmation": "testtest",
    "token": "z8iQafmgP1"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/user/reset

Body Parameters

Parameter Type Status Description
email string required Email address of the user.
password string required Password of the user.
password_confirmation string required Password confirmation of the user.
token string required Token sent in the reminder e-mail to the email address of the user.

api/authenticate

Authorize a user and login with an api_token. Used for persistent login in webapp.


Requires authentication Header parameter with Bearer [api_token] from the user object. Example: Bearer 1snu2aRRiwQNl2Tul5F0XpKuZO8hqkgXU4GvjzZ3f3pOCiDPFbBDea7W

Example request:

curl -X POST "https://api.beep.nl/api/authenticate" 
const url = new URL("https://api.beep.nl/api/authenticate");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (200):

{
    "id": 1317,
    "name": "test@test.com",
    "email": "test@test.com",
    "avatar": "default.jpg",
    "api_token": "1snu2aRRiwQNl2Tul567hLF0XpKuZO8hqkgXU4GvjzZ3f3pOCiDPFbBDea7W",
    "created_at": "2018-12-30 23:57:35",
    "updated_at": "2020-01-09 16:31:32",
    "last_login": "2020-01-09 16:31:32",
    "policy_accepted": "beep_terms_2018_05_25_avg_v1",
    "email_verified_at": "2018-05-25 00:00:00"
}

HTTP Request

POST api/authenticate

api/user DELETE

Destroy the logged in user and all its data in the database


Requires authentication

Example request:

curl -X DELETE "https://api.beep.nl/api/user" 
const url = new URL("https://api.beep.nl/api/user");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

DELETE api/user

api/user PATCH

Edit the user details, renew API token


Requires authentication

Example request:

curl -X PATCH "https://api.beep.nl/api/user" \
    -H "Content-Type: application/json" \
    -d '{"email":"test@test.com","password":"testtest","password_confirmation":"testtest","policy_accepted":"beep_terms_2018_05_25_avg_v1"}'
const url = new URL("https://api.beep.nl/api/user");

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
}

let body = {
    "email": "test@test.com",
    "password": "testtest",
    "password_confirmation": "testtest",
    "policy_accepted": "beep_terms_2018_05_25_avg_v1"
}

fetch(url, {
    method: "PATCH",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

PATCH api/user

Body Parameters

Parameter Type Status Description
email string required Email address of the user.
password string required Password of the user with minimum of 8 characters.
password_confirmation string required Password confirmation of the user.
policy_accepted string optional Name of the privacy policy that has been accepted by the user by ticking the accept terms box.

Api\VerificationController

User verification functions

Mark the authenticated user's email address as verified.

Example request:

curl -X GET -G "https://api.beep.nl/api/email/verify/1" 
const url = new URL("https://api.beep.nl/api/email/verify/1");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (403):

{
    "message": "Invalid signature."
}

HTTP Request

GET api/email/verify/{id}

Resend the email verification notification.

Example request:

curl -X POST "https://api.beep.nl/api/email/resend" 
const url = new URL("https://api.beep.nl/api/email/resend");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

HTTP Request

POST api/email/resend

Api\WeatherController

Weather data request

Display a listing of the resource.

Example request:

curl -X GET -G "https://api.beep.nl/api/weather" 
const url = new URL("https://api.beep.nl/api/weather");

let headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
}

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

Example response (401):

{
    "message": "Unauthenticated."
}

HTTP Request

GET api/weather