MENU navbar-image

Introduction

BEEP API specification

This documentation aims to provide all the information you need to work with our API.

Base URL

https://api.beep.nl/

Authenticating requests

This API is authenticated by sending an Authorization header with the value "Bearer your-token".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

You can retrieve your token by enabling the development option of your browser and logging in at app.beep.nl. Then get your api_token from the /authenticate response and use it as your Bearer [api_token].

Api\AlertController

Manage your alerts

api/alerts GET List all user alerts that are not deleted.

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/alerts" \
    --header "Authorization: Bearer adf6Vc4E561agP8e3bhvZkD" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/alerts"
);

const headers = {
    "Authorization": "Bearer adf6Vc4E561agP8e3bhvZkD",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/alerts

api/alerts/{id} POST Create the specified user alert.

requires authentication

Example request:
curl --request POST \
    "https://api.beep.nl/api/alerts" \
    --header "Authorization: Bearer ev83khg146DZb65PfVcadaE" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"alert_rule_id\": 18,
    \"measurement_id\": 4,
    \"alert_value\": \"incidunt\",
    \"show\": false
}"
const url = new URL(
    "https://api.beep.nl/api/alerts"
);

const headers = {
    "Authorization": "Bearer ev83khg146DZb65PfVcadaE",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "alert_rule_id": 18,
    "measurement_id": 4,
    "alert_value": "incidunt",
    "show": false
};

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

Request      

POST api/alerts

Body Parameters

alert_rule_id  integer  

The alert rule that has been alerted for.

measurement_id  integer  

The physical quantity / unit to alert for.

alert_value  string  

The alert value.

show  boolean optional  

Set to false (0) if the alert should NOT be shown anymore.

api/alerts/{id} GET Display the specified user alert.

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/alerts/1" \
    --header "Authorization: Bearer 3D461cEva8k6P5fbdaVegZh" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/alerts/1"
);

const headers = {
    "Authorization": "Bearer 3D461cEva8k6P5fbdaVegZh",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/alerts/{id}

URL Parameters

id  integer  

The ID of the alert.

api/alerts/{id} PATCH Update the specified user alert.

requires authentication

Example request:
curl --request PUT \
    "https://api.beep.nl/api/alerts/1" \
    --header "Authorization: Bearer kfePvDd1b5hVcE64Zg3aa86" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"show\": true
}"
const url = new URL(
    "https://api.beep.nl/api/alerts/1"
);

const headers = {
    "Authorization": "Bearer kfePvDd1b5hVcE64Zg3aa86",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "show": true
};

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

Request      

PUT api/alerts/{id}

PATCH api/alerts/{id}

URL Parameters

id  integer  

The ID of the alert.

Body Parameters

show  boolean optional  

Set to false (0) if the alert should NOT be shown anymore.

api/alerts/{id} DELETE Delete the specified user alert, or all if id === 'all', or specific id's when provided &alert_ids=1,4,7

requires authentication

Example request:
curl --request DELETE \
    "https://api.beep.nl/api/alerts/1" \
    --header "Authorization: Bearer agDkV64bvcdf16EPZ8ah35e" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/alerts/1"
);

const headers = {
    "Authorization": "Bearer agDkV64bvcdf16EPZ8ah35e",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

DELETE api/alerts/{id}

URL Parameters

id  integer  

The ID of the alert.

Api\AlertRuleController

Manage your alert rules

api/alert-rules GET List all user alert rules that are not deleted.

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/alert-rules" \
    --header "Authorization: Bearer 6agb3DP845EfdcvhZa6V1ek" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/alert-rules"
);

const headers = {
    "Authorization": "Bearer 6agb3DP845EfdcvhZa6V1ek",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/alert-rules

api/alert-rules/{id} POST Create the specified user alert rule.

requires authentication

Example request:
curl --request POST \
    "https://api.beep.nl/api/alert-rules" \
    --header "Authorization: Bearer bah5gP6Zv463VaekfE8cDd1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"name\": \"quia\",
    \"description\": \"facilis\",
    \"measurement_id\": 12,
    \"calculation\": \"officiis\",
    \"comparator\": \"est\",
    \"comparison\": \"labore\",
    \"threshold_value\": 29472.5653379,
    \"calculation_minutes\": 19,
    \"alert_on_occurrences\": 7,
    \"alert_via_email\": false,
    \"webhook_url\": \"iste\",
    \"active\": true,
    \"exclude_months\": [
        1,
        2,
        3,
        11,
        12
    ],
    \"exclude_hours\": [
        0,
        1,
        2,
        3,
        22,
        23
    ],
    \"exclude_hive_ids\": [
        \"ea\"
    ]
}"
const url = new URL(
    "https://api.beep.nl/api/alert-rules"
);

const headers = {
    "Authorization": "Bearer bah5gP6Zv463VaekfE8cDd1",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "name": "quia",
    "description": "facilis",
    "measurement_id": 12,
    "calculation": "officiis",
    "comparator": "est",
    "comparison": "labore",
    "threshold_value": 29472.5653379,
    "calculation_minutes": 19,
    "alert_on_occurrences": 7,
    "alert_via_email": false,
    "webhook_url": "iste",
    "active": true,
    "exclude_months": [
        1,
        2,
        3,
        11,
        12
    ],
    "exclude_hours": [
        0,
        1,
        2,
        3,
        22,
        23
    ],
    "exclude_hive_ids": [
        "ea"
    ]
};

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

Request      

POST api/alert-rules

Body Parameters

name  string optional  

The name of the alert rule.

description  string optional  

The description of the alert rule.

measurement_id  integer  

The physical quantity / unit to alert for.

calculation  string  

Calculation to be done with measurement value(s): (min, max, ave, der, cnt) -> Minimum, Maximum, Average (mean), Derivative, Count.

comparator  string  

Logical comparator to perform with comparison calculation result and threshold_value (=, <, >, <=, >=).

comparison  string  

Comparison function to perform with measurement value(s): (val, dif, abs, abs_dif) -> Value, Difference, Absolute value, Absolute value of the difference.

threshold_value  number  

The threshold value beyond which the alert will be sent.

calculation_minutes  integer optional  

The amount of minutes used for calculating the (min, max, ave, der, cnt) of the measurement value(s). If not provided, the last recorded value is used as a reference.

alert_on_occurrences  integer optional  

Amount of occurences that a calculated value goed beyond the threshold_value. If not filled the standard is 1 (immediate alert).

alert_via_email  boolean optional  

Set to false (0) if an e-mail should NOT be sent on alert. Default: true (1).

webhook_url  string optional  

URL of optional endpoint to call on alert for web hook integration.

active  boolean optional  

Set to false (0) if the alert should NOT be active. Default: true (1).

exclude_months  string[] optional  

Array of month indexes (1-12). If not filled the standard alert is 'always on'.

exclude_hours  string[] optional  

Array of hour indexes (0-23). If not filled the standard alert is 'always on'.

exclude_hive_ids  string[] optional  

Array of Hive ids. If not filled the standard alert is evaluated on 'all hives'.

api/alert-rules/{id} GET Display the specified user alert rules.

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/alert-rules/1" \
    --header "Authorization: Bearer 6aZfDcbV5163h8a4vgdeEPk" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/alert-rules/1"
);

const headers = {
    "Authorization": "Bearer 6aZfDcbV5163h8a4vgdeEPk",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/alert-rules/{id}

URL Parameters

id  integer  

The ID of the alert rule.

api/alert-rules/{id} PATCH Update the specified user alert rule.

requires authentication

Example request:
curl --request PUT \
    "https://api.beep.nl/api/alert-rules/1" \
    --header "Authorization: Bearer c8bg5aVZh4ek6dPv61a3EfD" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"name\": \"nostrum\",
    \"description\": \"rem\",
    \"measurement_id\": 5,
    \"calculation\": \"quia\",
    \"comparator\": \"id\",
    \"comparison\": \"impedit\",
    \"threshold_value\": 0.761193917,
    \"calculation_minutes\": 7,
    \"alert_on_occurrences\": 12,
    \"alert_via_email\": true,
    \"webhook_url\": \"sed\",
    \"active\": true,
    \"exclude_months\": [
        1,
        2,
        3,
        11,
        12
    ],
    \"exclude_hours\": [
        0,
        1,
        2,
        3,
        22,
        23
    ],
    \"exclude_hive_ids\": [
        \"saepe\"
    ]
}"
const url = new URL(
    "https://api.beep.nl/api/alert-rules/1"
);

const headers = {
    "Authorization": "Bearer c8bg5aVZh4ek6dPv61a3EfD",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "name": "nostrum",
    "description": "rem",
    "measurement_id": 5,
    "calculation": "quia",
    "comparator": "id",
    "comparison": "impedit",
    "threshold_value": 0.761193917,
    "calculation_minutes": 7,
    "alert_on_occurrences": 12,
    "alert_via_email": true,
    "webhook_url": "sed",
    "active": true,
    "exclude_months": [
        1,
        2,
        3,
        11,
        12
    ],
    "exclude_hours": [
        0,
        1,
        2,
        3,
        22,
        23
    ],
    "exclude_hive_ids": [
        "saepe"
    ]
};

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

Request      

PUT api/alert-rules/{id}

PATCH api/alert-rules/{id}

URL Parameters

id  integer  

The ID of the alert rule.

Body Parameters

name  string optional  

The name of the alert rule.

description  string optional  

The description of the alert rule.

measurement_id  integer  

The physical quantity / unit to alert for.

calculation  string  

Calculation to be done with measurement value(s): (min, max, ave, der, cnt) -> Minimum, Maximum, Average (mean), Derivative, Count.

comparator  string  

Logical comparator to perform with comparison calculation result and threshold_value (=, <, >, <=, >=).

comparison  string  

Comparison function to perform with measurement value(s): (val, dif, abs, abs_dif) -> Value, Difference, Absolute value, Absolute value of the difference.

threshold_value  number  

The threshold value beyond which the alert will be sent.

calculation_minutes  integer optional  

The amount of minutes used for calculating the (min, max, ave, der, cnt) of the measurement value(s). If not provided, the last recorded value is used as a reference.

alert_on_occurrences  integer optional  

Amount of occurences that a calculated value goed beyond the threshold_value. If not filled the standard is 1 (immediate alert).

alert_via_email  boolean optional  

Set to false (0) if an e-mail should NOT be sent on alert. Default: true (1).

webhook_url  string optional  

URL of optional endpoint to call on alert for web hook integration.

active  boolean optional  

Set to false (0) if the alert should NOT be active. Default: true (1).

exclude_months  string[] optional  

Array of month indexes (1-12). If not filled the standard alert is 'always on'.

exclude_hours  string[] optional  

Array of hour indexes (0-23). If not filled the standard alert is 'always on'.

exclude_hive_ids  string[] optional  

Array of Hive ids. If not filled the standard alert is evaluated on 'all hives'.

api/alert-rules/{id} DELETE Delete the specified user alert rule.

requires authentication

Example request:
curl --request DELETE \
    "https://api.beep.nl/api/alert-rules/1" \
    --header "Authorization: Bearer EevPV6ag8kcfZDdhb46a531" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/alert-rules/1"
);

const headers = {
    "Authorization": "Bearer EevPV6ag8kcfZDdhb46a531",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

DELETE api/alert-rules/{id}

URL Parameters

id  integer  

The ID of the alert rule.

api/alert-rules-default GET List all default alert rules that are available.

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/alert-rules-default" \
    --header "Authorization: Bearer Vefbc166PDadkhv48Z3aE5g" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/alert-rules-default"
);

const headers = {
    "Authorization": "Bearer Vefbc166PDadkhv48Z3aE5g",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/alert-rules-default

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 --request GET \
    --get "https://api.beep.nl/api/categories" \
    --header "Authorization: Bearer D4b6c83fPavdZhg6VEak15e" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/categories"
);

const headers = {
    "Authorization": "Bearer D4b6c83fPavdZhg6VEak15e",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.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
            }
        ]
    }
]
 

Request      

GET api/categories

api/categories/{id} Display the specified category.

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/categories/1" \
    --header "Authorization: Bearer 16EdgPVc3D84eZkh6b5fava" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/categories/1"
);

const headers = {
    "Authorization": "Bearer 16EdgPVc3D84eZkh6b5fava",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/categories/{id}

URL Parameters

id  integer  

The ID of the category.

api/categoryinputs List of all available input types of the inspection categories

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/categoryinputs" \
    --header "Authorization: Bearer Pvdkeb51DahV66c3Zf4g8Ea" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/categoryinputs"
);

const headers = {
    "Authorization": "Bearer Pvdkeb51DahV66c3Zf4g8Ea",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.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
    }
]
 

Request      

GET api/categoryinputs

Api\ChecklistController

Manage your personal inspection checklists

Display a listing of the resource.

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/checklists" \
    --header "Authorization: Bearer cV5aEf86Da6gd1khevbZP34" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/checklists"
);

const headers = {
    "Authorization": "Bearer cV5aEf86Da6gd1khevbZP34",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/checklists

POST api/checklists

requires authentication

Example request:
curl --request POST \
    "https://api.beep.nl/api/checklists" \
    --header "Authorization: Bearer 3abVkdgP541vDec8afhE66Z" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/checklists"
);

const headers = {
    "Authorization": "Bearer 3abVkdgP541vDec8afhE66Z",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

POST api/checklists

GET api/checklists/{id}

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/checklists/8" \
    --header "Authorization: Bearer PDvd6Z8aac36gek1hE4fbV5" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/checklists/8"
);

const headers = {
    "Authorization": "Bearer PDvd6Z8aac36gek1hE4fbV5",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/checklists/{id}

URL Parameters

id  integer  

The ID of the checklist.

PUT api/checklists/{id}

requires authentication

Example request:
curl --request PUT \
    "https://api.beep.nl/api/checklists/8" \
    --header "Authorization: Bearer 3b41v66aZEkhf8P5DgaVdec" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/checklists/8"
);

const headers = {
    "Authorization": "Bearer 3b41v66aZEkhf8P5DgaVdec",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

PUT api/checklists/{id}

PATCH api/checklists/{id}

URL Parameters

id  integer  

The ID of the checklist.

DELETE api/checklists/{id}

requires authentication

Example request:
curl --request DELETE \
    "https://api.beep.nl/api/checklists/8" \
    --header "Authorization: Bearer e385gE1kvPZfadh6cVba6D4" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/checklists/8"
);

const headers = {
    "Authorization": "Bearer e385gE1kvPZfadh6cVba6D4",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

DELETE api/checklists/{id}

URL Parameters

id  integer  

The ID of the checklist.

Api\ChecklistSvgController

Manage stored SVG checklists (for off-line input)

api/checklist-svg GET Show your list of stored SVG inspections

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/checklist-svg" \
    --header "Authorization: Bearer D1ba6dv4V3a6Eh58ZPfekcg" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/checklist-svg"
);

const headers = {
    "Authorization": "Bearer D1ba6dv4V3a6Eh58ZPfekcg",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/checklist-svg

api/checklist-svg POST Store an SVG inspection

requires authentication

Example request:
curl --request POST \
    "https://api.beep.nl/api/checklist-svg" \
    --header "Authorization: Bearer vkhef153EPg8ZVcda4D6ba6" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"checklist_id\": 14,
    \"svg\": \"assumenda\",
    \"pages\": 19,
    \"name\": \"ut\",
    \"last_print\": \"illo\"
}"
const url = new URL(
    "https://api.beep.nl/api/checklist-svg"
);

const headers = {
    "Authorization": "Bearer vkhef153EPg8ZVcda4D6ba6",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "checklist_id": 14,
    "svg": "assumenda",
    "pages": 19,
    "name": "ut",
    "last_print": "illo"
};

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

Request      

POST api/checklist-svg

Body Parameters

checklist_id  integer  

The checklist ID that this SVG refers to (at the moment of storage)

svg  string  

The SVG body to store (max 16,777,215 characters)

pages  integer optional  

The amount of pages of the SVG

name  string optional  

The name of the inspection SVG

last_print  datetime optional  

The last print datetime

api/checklist-svg/{id} GET Show an SVG inspection

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/checklist-svg/2" \
    --header "Authorization: Bearer c8k5fPEhDd461vaae6b3gVZ" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/checklist-svg/2"
);

const headers = {
    "Authorization": "Bearer c8k5fPEhDd461vaae6b3gVZ",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/checklist-svg/{id}

URL Parameters

id  integer  

The ID of the checklist svg.

api/checklist-svg/{id} PATCH Edit an SVG inspection

requires authentication

Example request:
curl --request PUT \
    "https://api.beep.nl/api/checklist-svg/18" \
    --header "Authorization: Bearer cbVP6hkEZgfaD8d3a461e5v" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/checklist-svg/18"
);

const headers = {
    "Authorization": "Bearer cbVP6hkEZgfaD8d3a461e5v",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

PUT api/checklist-svg/{id}

PATCH api/checklist-svg/{id}

URL Parameters

id  integer  

The ID of the checklist svg.

api/checklist-svg/{id} DELETE Delete an SVG inspection

requires authentication

Example request:
curl --request DELETE \
    "https://api.beep.nl/api/checklist-svg/12" \
    --header "Authorization: Bearer PDvc8ag5bEV64Z3af16ekdh" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/checklist-svg/12"
);

const headers = {
    "Authorization": "Bearer PDvc8ag5bEV64Z3af16ekdh",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

DELETE api/checklist-svg/{id}

URL Parameters

id  integer  

The ID of the checklist svg.

Api\DashboardGroupController

Store and retreive DashboardGroups to create public dashboard with a fixed set of measurements

api/dashboard/{sode} GET Get public user Dashboard groups

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/dashboard/consequuntur" \
    --header "Authorization: Bearer Dg1dZ8kaeb5Vf4Ea36chP6v" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"code\": \"oxey\",
    \"hive_id\": 18
}"
const url = new URL(
    "https://api.beep.nl/api/dashboard/consequuntur"
);

const headers = {
    "Authorization": "Bearer Dg1dZ8kaeb5Vf4Ea36chP6v",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "code": "oxey",
    "hive_id": 18
};

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

Example response (422):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
access-control-allow-origin: *
 

{
    "errors": {
        "code": [
            "Het geselecteerde code is ongeldig."
        ]
    }
}
 

Request      

GET api/dashboard/{code}

URL Parameters

code  string  

hive_id  integer optional  

Hive ID of which the data should be loaded

Body Parameters

code  string  

value dient minimaal 6 karakters te bevatten.

hive_id  integer optional  

api/dashboardgroups GET List all user Dashboard groups

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/dashboardgroups" \
    --header "Authorization: Bearer EDe6f3kgbcZ5816dhVPa4va" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/dashboardgroups"
);

const headers = {
    "Authorization": "Bearer EDe6f3kgbcZ5816dhVPa4va",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/dashboardgroups

POST api/dashboardgroups

requires authentication

Example request:
curl --request POST \
    "https://api.beep.nl/api/dashboardgroups" \
    --header "Authorization: Bearer h6D356PcEVd8vfkgZae41ba" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"interval\": \"quis\",
    \"speed\": 78834,
    \"name\": \"necessitatibus\",
    \"description\": \"eum\",
    \"logo_url\": \"https:\\/\\/ullrich.com\\/voluptatem-laborum-eveniet-iste-quis-nihil-delectus-aut.html\",
    \"show_inspections\": false,
    \"show_all\": false,
    \"hide_measurements\": false,
    \"hive_ids\": [
        \"eveniet\"
    ]
}"
const url = new URL(
    "https://api.beep.nl/api/dashboardgroups"
);

const headers = {
    "Authorization": "Bearer h6D356PcEVd8vfkgZae41ba",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "interval": "quis",
    "speed": 78834,
    "name": "necessitatibus",
    "description": "eum",
    "logo_url": "https:\/\/ullrich.com\/voluptatem-laborum-eveniet-iste-quis-nihil-delectus-aut.html",
    "show_inspections": false,
    "show_all": false,
    "hide_measurements": false,
    "hive_ids": [
        "eveniet"
    ]
};

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

Request      

POST api/dashboardgroups

Body Parameters

interval  string  

speed  integer  

value dient minimaal 1 te zijn. value mag niet groter zijn dan 84600.

name  string optional  

description  string optional  

logo_url  string optional  

Must be a valid URL.

show_inspections  boolean optional  

show_all  boolean optional  

hide_measurements  boolean optional  

hive_ids  string[]  

GET api/dashboardgroups/{id}

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/dashboardgroups/1" \
    --header "Authorization: Bearer 16PZEeDvkg6fd53h8Vab4ca" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/dashboardgroups/1"
);

const headers = {
    "Authorization": "Bearer 16PZEeDvkg6fd53h8Vab4ca",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/dashboardgroups/{id}

URL Parameters

id  integer  

The ID of the dashboardgroup.

PUT api/dashboardgroups/{id}

requires authentication

Example request:
curl --request PUT \
    "https://api.beep.nl/api/dashboardgroups/1" \
    --header "Authorization: Bearer 6ek3fV1adPD5c8a6Eh4gZbv" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"interval\": \"nesciunt\",
    \"speed\": 18277,
    \"name\": \"repellat\",
    \"description\": \"expedita\",
    \"logo_url\": \"http:\\/\\/lebsack.org\\/iure-sapiente-quam-neque-aut-omnis-voluptatibus-libero-sequi\",
    \"show_inspections\": true,
    \"show_all\": false,
    \"hide_measurements\": true,
    \"hive_ids\": [
        \"odio\"
    ]
}"
const url = new URL(
    "https://api.beep.nl/api/dashboardgroups/1"
);

const headers = {
    "Authorization": "Bearer 6ek3fV1adPD5c8a6Eh4gZbv",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "interval": "nesciunt",
    "speed": 18277,
    "name": "repellat",
    "description": "expedita",
    "logo_url": "http:\/\/lebsack.org\/iure-sapiente-quam-neque-aut-omnis-voluptatibus-libero-sequi",
    "show_inspections": true,
    "show_all": false,
    "hide_measurements": true,
    "hive_ids": [
        "odio"
    ]
};

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

Request      

PUT api/dashboardgroups/{id}

PATCH api/dashboardgroups/{id}

URL Parameters

id  integer  

The ID of the dashboardgroup.

Body Parameters

interval  string  

speed  integer  

value dient minimaal 1 te zijn. value mag niet groter zijn dan 84600.

name  string optional  

description  string optional  

logo_url  string optional  

Must be a valid URL.

show_inspections  boolean optional  

show_all  boolean optional  

hide_measurements  boolean optional  

hive_ids  string[]  

DELETE api/dashboardgroups/{id}

requires authentication

Example request:
curl --request DELETE \
    "https://api.beep.nl/api/dashboardgroups/1" \
    --header "Authorization: Bearer eD3dbPa56k18gh4f6VcEZav" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/dashboardgroups/1"
);

const headers = {
    "Authorization": "Bearer eD3dbPa56k18gh4f6VcEZav",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

DELETE api/dashboardgroups/{id}

URL Parameters

id  integer  

The ID of the dashboardgroup.

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 --request POST \
    "https://api.beep.nl/api/devices/multiple" \
    --header "Authorization: Bearer PcEhkv6De1Zb48a3Vfgda56" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"id\": 5,
    \"key\": \"ducimus\",
    \"hardware_id\": \"enim\",
    \"name\": \"voluptas\",
    \"hive_id\": 18,
    \"type\": \"eius\",
    \"last_message_received\": \"est\",
    \"firmware_version\": \"eum\",
    \"hardware_version\": \"consectetur\",
    \"boot_count\": 20,
    \"measurement_interval_min\": 22739441.663326,
    \"measurement_transmission_ratio\": 19991.51,
    \"ble_pin\": \"et\",
    \"battery_voltage\": 9085067.8631,
    \"next_downlink_message\": \"alias\",
    \"last_downlink_result\": \"et\"
}"
const url = new URL(
    "https://api.beep.nl/api/devices/multiple"
);

const headers = {
    "Authorization": "Bearer PcEhkv6De1Zb48a3Vfgda56",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "id": 5,
    "key": "ducimus",
    "hardware_id": "enim",
    "name": "voluptas",
    "hive_id": 18,
    "type": "eius",
    "last_message_received": "est",
    "firmware_version": "eum",
    "hardware_version": "consectetur",
    "boot_count": 20,
    "measurement_interval_min": 22739441.663326,
    "measurement_transmission_ratio": 19991.51,
    "ble_pin": "et",
    "battery_voltage": 9085067.8631,
    "next_downlink_message": "alias",
    "last_downlink_result": "et"
};

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

Request      

POST api/devices/multiple

Body Parameters

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  number optional  

Measurement interval in minutes

measurement_transmission_ratio  number 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  number 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 BEEP TTS Cloud Device by Device ID (BEEP hardware_id)

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/devices/ttn/sit" \
    --header "Authorization: Bearer a6D4c5b3g1dZavkeV6h8EPf" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/devices/ttn/sit"
);

const headers = {
    "Authorization": "Bearer a6D4c5b3g1dZavkeV6h8EPf",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/devices/ttn/{dev_id}

URL Parameters

dev_id  string  

The ID of the dev.

api/devices/ttn/{dev_id} POST Create a BEEP TTS Cloud Device by Device ID, lorawan_device.dev_eui, and lorawan_device.app_key

requires authentication

Example request:
curl --request POST \
    "https://api.beep.nl/api/devices/ttn/quis" \
    --header "Authorization: Bearer g8D6v5eacdfk1hb6a34ZVEP" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"lorawan_device\": {
        \"dev_eui\": \"jjqjnuhxzbqkhuqb\",
        \"app_key\": \"acflslcfwnocjpkvygqydhofueergsjn\"
    }
}"
const url = new URL(
    "https://api.beep.nl/api/devices/ttn/quis"
);

const headers = {
    "Authorization": "Bearer g8D6v5eacdfk1hb6a34ZVEP",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "lorawan_device": {
        "dev_eui": "jjqjnuhxzbqkhuqb",
        "app_key": "acflslcfwnocjpkvygqydhofueergsjn"
    }
};

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

Request      

POST api/devices/ttn/{dev_id}

URL Parameters

dev_id  string  

The ID of the dev.

Body Parameters

lorawan_device  object optional  

lorawan_device.dev_eui  string  

value moet 16 karakters lang zijn.

lorawan_device.app_key  string  

value moet 32 karakters lang zijn.

api/devices GET List all user Devices

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/devices" \
    --header "Authorization: Bearer 8EDacv1Vdk3ZbP65gefh4a6" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"hardware_id\": \"incidunt\"
}"
const url = new URL(
    "https://api.beep.nl/api/devices"
);

const headers = {
    "Authorization": "Bearer 8EDacv1Vdk3ZbP65gefh4a6",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "hardware_id": "incidunt"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.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"
            }
        ]
    }
]
 

Request      

GET api/devices

Body Parameters

hardware_id  string optional  

Provide to filter on hardware_id

api/devices POST Create or Update a Device

requires authentication

Example request:
curl --request POST \
    "https://api.beep.nl/api/devices" \
    --header "Authorization: Bearer h5641eEcbgP6Daa3ZdkVv8f" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"id\": 11,
    \"key\": \"est\",
    \"hardware_id\": \"iusto\",
    \"name\": \"tempore\",
    \"hive_id\": 3,
    \"type\": \"animi\",
    \"last_message_received\": \"rerum\",
    \"firmware_version\": \"in\",
    \"hardware_version\": \"quidem\",
    \"boot_count\": 11,
    \"measurement_interval_min\": 2,
    \"measurement_transmission_ratio\": 668.864,
    \"ble_pin\": \"voluptatum\",
    \"battery_voltage\": 8234560.8164983,
    \"next_downlink_message\": \"et\",
    \"last_downlink_result\": \"quas\",
    \"create_ttn_device\": true,
    \"app_key\": \"aut\"
}"
const url = new URL(
    "https://api.beep.nl/api/devices"
);

const headers = {
    "Authorization": "Bearer h5641eEcbgP6Daa3ZdkVv8f",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "id": 11,
    "key": "est",
    "hardware_id": "iusto",
    "name": "tempore",
    "hive_id": 3,
    "type": "animi",
    "last_message_received": "rerum",
    "firmware_version": "in",
    "hardware_version": "quidem",
    "boot_count": 11,
    "measurement_interval_min": 2,
    "measurement_transmission_ratio": 668.864,
    "ble_pin": "voluptatum",
    "battery_voltage": 8234560.8164983,
    "next_downlink_message": "et",
    "last_downlink_result": "quas",
    "create_ttn_device": true,
    "app_key": "aut"
};

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

Request      

POST api/devices

Body Parameters

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  number optional  

Measurement interval in minutes

measurement_transmission_ratio  number 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  number 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 --request GET \
    --get "https://api.beep.nl/api/devices/1" \
    --header "Authorization: Bearer D6E843gVaPZ1fvab6heckd5" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/devices/1"
);

const headers = {
    "Authorization": "Bearer D6E843gVaPZ1fvab6heckd5",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/devices/{id}

URL Parameters

id  integer  

The ID of the device.

api/devices PUT/PATCH Update an existing Device

requires authentication

Example request:
curl --request PUT \
    "https://api.beep.nl/api/devices/1" \
    --header "Authorization: Bearer aZ58Vehd3EaPbkcg466Dfv1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"id\": 16,
    \"key\": \"sed\",
    \"hardware_id\": \"architecto\",
    \"name\": \"inventore\",
    \"hive_id\": 6,
    \"type\": \"id\",
    \"delete\": false,
    \"last_message_received\": \"ipsa\",
    \"firmware_version\": \"id\",
    \"hardware_version\": \"omnis\",
    \"boot_count\": 4,
    \"measurement_interval_min\": 40496.281392,
    \"measurement_transmission_ratio\": 50349,
    \"ble_pin\": \"natus\",
    \"battery_voltage\": 552.141202533,
    \"next_downlink_message\": \"natus\",
    \"last_downlink_result\": \"commodi\"
}"
const url = new URL(
    "https://api.beep.nl/api/devices/1"
);

const headers = {
    "Authorization": "Bearer aZ58Vehd3EaPbkcg466Dfv1",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "id": 16,
    "key": "sed",
    "hardware_id": "architecto",
    "name": "inventore",
    "hive_id": 6,
    "type": "id",
    "delete": false,
    "last_message_received": "ipsa",
    "firmware_version": "id",
    "hardware_version": "omnis",
    "boot_count": 4,
    "measurement_interval_min": 40496.281392,
    "measurement_transmission_ratio": 50349,
    "ble_pin": "natus",
    "battery_voltage": 552.141202533,
    "next_downlink_message": "natus",
    "last_downlink_result": "commodi"
};

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

Request      

PUT api/devices/{id}

PATCH api/devices/{id}

URL Parameters

id  integer  

The ID of the device.

Body Parameters

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  number optional  

Measurement interval in minutes

measurement_transmission_ratio  number 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  number 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/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 --request POST \
    "https://api.beep.nl/api/export/csv" \
    --header "Authorization: Bearer kf5vZb6eP4cd8DaVE13ag6h" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"device_id\": \"cupiditate\",
    \"start\": \"2020-05-27 16:16\",
    \"end\": \"2020-05-30 00:00\",
    \"separator\": \";\",
    \"measurements\": \"\'am2315_t,am2315_h,mhz_co2\'\",
    \"link\": false
}"
const url = new URL(
    "https://api.beep.nl/api/export/csv"
);

const headers = {
    "Authorization": "Bearer kf5vZb6eP4cd8DaVE13ag6h",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

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

Request      

POST api/export/csv

Body Parameters

device_id  required optional  

Device id to download data from

start  date  

Date for start of data export.

end  date  

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/export GET Generate an Excel file with all user data and send by e-mail or as download link

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/export" \
    --header "Authorization: Bearer df6ehkEcaZ3PDvVg614a8b5" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"groupdata\": false,
    \"sensordata\": false,
    \"link\": true
}"
const url = new URL(
    "https://api.beep.nl/api/export"
);

const headers = {
    "Authorization": "Bearer df6ehkEcaZ3PDvVg614a8b5",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "groupdata": false,
    "sensordata": false,
    "link": true
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/export

Body Parameters

groupdata  boolean optional  

1: also include group data in export. 0, of not filled: only export my own data. Default: 0.

sensordata  boolean optional  

1: also include measurement data in export. 0, of not filled: do not add measurement data. Default: set in environment settings.

link  boolean optional  

1: Save the export to a file and provide the link, 0, or not filled means: send the Excel as an attachment to an email to the user's email address. Default: 0.

Api\FlashLogController

api/flashlogs GET Provide a list of the available flashlogs

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/flashlogs" \
    --header "Authorization: Bearer dZDPv4a653E6aVch1e8kbfg" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/flashlogs"
);

const headers = {
    "Authorization": "Bearer dZDPv4a653E6aVch1e8kbfg",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/flashlogs

api/flashlogs/{id} GET Provide the contents of the log_file_parsed property of the flashlog

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/flashlogs/1?id=12" \
    --header "Authorization: Bearer 48Ved6fZkv6c315aahbPgED" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"matches_min\": 2,
    \"match_props\": 7,
    \"db_records\": 15,
    \"block_id\": 1,
    \"block_data_index\": 0,
    \"data_minutes\": 17,
    \"from_cache\": false,
    \"save_result\": false,
    \"csv\": 0,
    \"json\": 0
}"
const url = new URL(
    "https://api.beep.nl/api/flashlogs/1"
);

const params = {
    "id": "12",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer 48Ved6fZkv6c315aahbPgED",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "matches_min": 2,
    "match_props": 7,
    "db_records": 15,
    "block_id": 1,
    "block_data_index": 0,
    "data_minutes": 17,
    "from_cache": false,
    "save_result": false,
    "csv": 0,
    "json": 0
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/flashlogs/{id}

URL Parameters

id  integer  

The ID of the flashlog.

Query Parameters

id  integer  

Flashlog ID to parse

Body Parameters

matches_min  integer optional  

Flashlog minimum amount of inline measurements that should be matched. Default: 5.

match_props  integer optional  

Flashlog minimum amount of measurement properties that should match. Default: 9.

db_records  integer optional  

Flashlog minimum amount of inline measurements that should be matched. Default: 80.

block_id  integer optional  

Flashlog block index to get both Flashlog as database data from.

block_data_index  integer optional  

Flashlog data index to get both Flashlog as database data from.

data_minutes  integer optional  

Flashlog data amount of minutes to show data from. Default: 10080 (1 week).

from_cache  boolean optional  

get Flashlog parse result from cache (24 hours). Default: true.

save_result  boolean optional  

Flashlog save the parsed result as new log_file_parsed. Default: false.

csv  integer optional  

Save the Flashlog block_id data as a CSV file (1) and return a link. Default: 0.

json  integer optional  

Save the Flashlog block_id data as a JSON file (1) and return a link. Default: 0.

api/flashlogs/{id} POST Fill the missing database values with Flashlog values that match

requires authentication

Example request:
curl --request POST \
    "https://api.beep.nl/api/flashlogs/1?id=16" \
    --header "Authorization: Bearer hv4f566EkPVd8cZD3abe1ag" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"matches_min\": 2,
    \"match_props\": 7,
    \"db_records\": 15,
    \"block_id\": 1,
    \"from_cache\": false,
    \"save_result\": false
}"
const url = new URL(
    "https://api.beep.nl/api/flashlogs/1"
);

const params = {
    "id": "16",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer hv4f566EkPVd8cZD3abe1ag",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "matches_min": 2,
    "match_props": 7,
    "db_records": 15,
    "block_id": 1,
    "from_cache": false,
    "save_result": false
};

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

Request      

POST api/flashlogs/{id}

URL Parameters

id  integer  

The ID of the flashlog.

Query Parameters

id  integer  

Flashlog ID to parse

Body Parameters

matches_min  integer optional  

Flashlog minimum amount of inline measurements that should be matched. Default: 5.

match_props  integer optional  

Flashlog minimum amount of measurement properties that should match. Default: 9.

db_records  integer optional  

Flashlog minimum amount of inline measurements that should be matched. Default: 80.

block_id  integer optional  

Flashlog block index to get both Flashlog as database data from.

from_cache  boolean optional  

get Flashlog parse result from cache (24 hours). Default: true.

save_result  boolean optional  

Flashlog save the parsed result as new log_file_parsed. Default: false.

api/flashlogs/{id} DELETE Delete a block of data (block_id filled), or the whole Flashlog file

requires authentication

Example request:
curl --request DELETE \
    "https://api.beep.nl/api/flashlogs/1?id=14" \
    --header "Authorization: Bearer c6Z8Pd5aEVgbDk6v13a4hfe" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"block_id\": 12
}"
const url = new URL(
    "https://api.beep.nl/api/flashlogs/1"
);

const params = {
    "id": "14",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer c6Z8Pd5aEVgbDk6v13a4hfe",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "block_id": 12
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

DELETE api/flashlogs/{id}

URL Parameters

id  integer  

The ID of the flashlog.

Query Parameters

id  integer  

Flashlog ID to delete the complete Flashlog file

Body Parameters

block_id  integer optional  

Flashlog block index to delete (only the) previously persisted data from the database

Api\GroupController

Manage collaboration groups

api/groups/checktoken POST Check a token for a group id, and accept or decline the invite

requires authentication

Example request:
curl --request POST \
    "https://api.beep.nl/api/groups/checktoken" \
    --header "Authorization: Bearer cD4P5ve1ahEd836aZ6fkgbV" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"token\": \"aspernatur\",
    \"group_id\": \"architecto\",
    \"decline\": true
}"
const url = new URL(
    "https://api.beep.nl/api/groups/checktoken"
);

const headers = {
    "Authorization": "Bearer cD4P5ve1ahEd836aZ6fkgbV",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "token": "aspernatur",
    "group_id": "architecto",
    "decline": true
};

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

Request      

POST api/groups/checktoken

Body Parameters

token  string  

group_id  string  

decline  boolean optional  

GET api/groups

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/groups" \
    --header "Authorization: Bearer c1gh6Eek6bV3v8ZaP5dDaf4" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/groups"
);

const headers = {
    "Authorization": "Bearer c1gh6Eek6bV3v8ZaP5dDaf4",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/groups

POST api/groups

requires authentication

Example request:
curl --request POST \
    "https://api.beep.nl/api/groups" \
    --header "Authorization: Bearer 4hckbED851gZP6dfv3ae6aV" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/groups"
);

const headers = {
    "Authorization": "Bearer 4hckbED851gZP6dfv3ae6aV",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

POST api/groups

GET api/groups/{id}

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/groups/1" \
    --header "Authorization: Bearer edhZEva3aDV6b64Pf8c5g1k" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/groups/1"
);

const headers = {
    "Authorization": "Bearer edhZEva3aDV6b64Pf8c5g1k",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/groups/{id}

URL Parameters

id  integer  

The ID of the group.

PUT api/groups/{id}

requires authentication

Example request:
curl --request PUT \
    "https://api.beep.nl/api/groups/1" \
    --header "Authorization: Bearer D6Zdceaa83PvkgVfhE45b61" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/groups/1"
);

const headers = {
    "Authorization": "Bearer D6Zdceaa83PvkgVfhE45b61",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

PUT api/groups/{id}

PATCH api/groups/{id}

URL Parameters

id  integer  

The ID of the group.

DELETE api/groups/{id}

requires authentication

Example request:
curl --request DELETE \
    "https://api.beep.nl/api/groups/1" \
    --header "Authorization: Bearer cf6k4g31eadZVa6b85PvEhD" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/groups/1"
);

const headers = {
    "Authorization": "Bearer cf6k4g31eadZVa6b85PvEhD",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

DELETE api/groups/{id}

URL Parameters

id  integer  

The ID of the group.

DELETE api/groups/detach/{id}

requires authentication

Example request:
curl --request DELETE \
    "https://api.beep.nl/api/groups/detach/aut" \
    --header "Authorization: Bearer kPa56db683fVcehg4DE1Zva" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/groups/detach/aut"
);

const headers = {
    "Authorization": "Bearer kPa56db683fVcehg4DE1Zva",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

DELETE api/groups/detach/{id}

URL Parameters

id  string  

The ID of the detach.

Api\HiveController

Manage your hives

api/hives GET Display a listing of user hives.

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/hives" \
    --header "Authorization: Bearer h3D5kea1PgcvV646EZ8dafb" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/hives"
);

const headers = {
    "Authorization": "Bearer h3D5kea1PgcvV646EZ8dafb",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.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
        }
    ]
}
 

Request      

GET api/hives

api/hives POST Store a newly created Hive in storage for the authenticated user.

requires authentication

Example request:
curl --request POST \
    "https://api.beep.nl/api/hives" \
    --header "Authorization: Bearer b1a65cVfhZ8gEd6aeDv4k3P" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"name\": \"id\",
    \"location_id\": 12,
    \"brood_layers\": 0,
    \"honey_layers\": 0,
    \"frames\": 0,
    \"order\": 2,
    \"layers\": [
        \"consectetur\"
    ],
    \"color\": \"thzcn\",
    \"hive_type_id\": 17,
    \"bb_width_cm\": 0,
    \"bb_depth_cm\": 0,
    \"bb_height_cm\": 0,
    \"fr_width_cm\": 0,
    \"fr_height_cm\": 0,
    \"queen\": {
        \"race_id\": 12,
        \"birth_date\": \"2023-08-16T15:37:54\",
        \"name\": \"eaque\",
        \"description\": \"nihil\",
        \"line\": \"quia\",
        \"tree\": \"molestiae\",
        \"color\": \"i\",
        \"clipped\": 20,
        \"fertilized\": 16
    },
    \"timezone\": \"America\\/Manaus\"
}"
const url = new URL(
    "https://api.beep.nl/api/hives"
);

const headers = {
    "Authorization": "Bearer b1a65cVfhZ8gEd6aeDv4k3P",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "name": "id",
    "location_id": 12,
    "brood_layers": 0,
    "honey_layers": 0,
    "frames": 0,
    "order": 2,
    "layers": [
        "consectetur"
    ],
    "color": "thzcn",
    "hive_type_id": 17,
    "bb_width_cm": 0,
    "bb_depth_cm": 0,
    "bb_height_cm": 0,
    "fr_width_cm": 0,
    "fr_height_cm": 0,
    "queen": {
        "race_id": 12,
        "birth_date": "2023-08-16T15:37:54",
        "name": "eaque",
        "description": "nihil",
        "line": "quia",
        "tree": "molestiae",
        "color": "i",
        "clipped": 20,
        "fertilized": 16
    },
    "timezone": "America\/Manaus"
};

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

Request      

POST api/hives

Body Parameters

name  string  

location_id  integer  

brood_layers  integer optional  

Het value veld is verplicht wanneer layers niet aanwezig is. value dient minimaal 0 te zijn.

honey_layers  integer optional  

Het value veld is verplicht wanneer layers niet aanwezig is. value dient minimaal 0 te zijn.

frames  integer optional  

value dient minimaal 0 te zijn.

order  integer optional  

layers  string[] optional  

Het value veld is verplicht wanneer geen van brood_layers and honey_layers aanwezig is.

color  string optional  

value mag niet groter zijn dan 9 karakters.

hive_type_id  integer optional  

bb_width_cm  number optional  

value dient minimaal 0 te zijn.

bb_depth_cm  number optional  

value dient minimaal 0 te zijn.

bb_height_cm  number optional  

value dient minimaal 0 te zijn.

fr_width_cm  number optional  

value dient minimaal 0 te zijn.

fr_height_cm  number optional  

value dient minimaal 0 te zijn.

queen  object optional  

queen.race_id  integer optional  

queen.birth_date  string optional  

value is geen geldige datum.

queen.name  string optional  

queen.description  string optional  

queen.line  string optional  

queen.tree  string optional  

queen.color  string optional  

value mag niet groter zijn dan 9 karakters.

queen.clipped  integer optional  

queen.fertilized  integer optional  

timezone  string optional  

Must be a valid time zone, such as Africa/Accra.

api/hives/{id} GET Display the specified resource.

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/hives/1" \
    --header "Authorization: Bearer ckab3dhP4e1a6Vg8vD5EZf6" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/hives/1"
);

const headers = {
    "Authorization": "Bearer ckab3dhP4e1a6Vg8vD5EZf6",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/hives/{id}

URL Parameters

id  integer  

The ID of the hive.

api/hives/{id} PATCH Update the specified user Hive in storage.

requires authentication

Example request:
curl --request PUT \
    "https://api.beep.nl/api/hives/1" \
    --header "Authorization: Bearer 3Zh4kae8acf5Vv1gEbD66Pd" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"name\": \"quisquam\",
    \"location_id\": 7,
    \"brood_layers\": 0,
    \"honey_layers\": 0,
    \"frames\": 0,
    \"order\": 10,
    \"layers\": [
        \"voluptatibus\"
    ],
    \"color\": \"lpodwfrgb\",
    \"hive_type_id\": 9,
    \"bb_width_cm\": 0,
    \"bb_depth_cm\": 0,
    \"bb_height_cm\": 0,
    \"fr_width_cm\": 0,
    \"fr_height_cm\": 0,
    \"queen\": {
        \"race_id\": 16,
        \"birth_date\": \"2023-08-16T15:37:54\",
        \"name\": \"ut\",
        \"description\": \"nisi\",
        \"line\": \"a\",
        \"tree\": \"voluptas\",
        \"color\": \"l\",
        \"clipped\": 14,
        \"fertilized\": 20
    },
    \"timezone\": \"Europe\\/Guernsey\"
}"
const url = new URL(
    "https://api.beep.nl/api/hives/1"
);

const headers = {
    "Authorization": "Bearer 3Zh4kae8acf5Vv1gEbD66Pd",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "name": "quisquam",
    "location_id": 7,
    "brood_layers": 0,
    "honey_layers": 0,
    "frames": 0,
    "order": 10,
    "layers": [
        "voluptatibus"
    ],
    "color": "lpodwfrgb",
    "hive_type_id": 9,
    "bb_width_cm": 0,
    "bb_depth_cm": 0,
    "bb_height_cm": 0,
    "fr_width_cm": 0,
    "fr_height_cm": 0,
    "queen": {
        "race_id": 16,
        "birth_date": "2023-08-16T15:37:54",
        "name": "ut",
        "description": "nisi",
        "line": "a",
        "tree": "voluptas",
        "color": "l",
        "clipped": 14,
        "fertilized": 20
    },
    "timezone": "Europe\/Guernsey"
};

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

Request      

PUT api/hives/{id}

PATCH api/hives/{id}

URL Parameters

id  integer  

The ID of the hive.

Body Parameters

name  string  

location_id  integer  

brood_layers  integer optional  

Het value veld is verplicht wanneer layers niet aanwezig is. value dient minimaal 0 te zijn.

honey_layers  integer optional  

Het value veld is verplicht wanneer layers niet aanwezig is. value dient minimaal 0 te zijn.

frames  integer optional  

value dient minimaal 0 te zijn.

order  integer optional  

layers  string[] optional  

Het value veld is verplicht wanneer geen van brood_layers and honey_layers aanwezig is.

color  string optional  

value mag niet groter zijn dan 9 karakters.

hive_type_id  integer optional  

bb_width_cm  number optional  

value dient minimaal 0 te zijn.

bb_depth_cm  number optional  

value dient minimaal 0 te zijn.

bb_height_cm  number optional  

value dient minimaal 0 te zijn.

fr_width_cm  number optional  

value dient minimaal 0 te zijn.

fr_height_cm  number optional  

value dient minimaal 0 te zijn.

queen  object optional  

queen.race_id  integer optional  

queen.birth_date  string optional  

value is geen geldige datum.

queen.name  string optional  

queen.description  string optional  

queen.line  string optional  

queen.tree  string optional  

queen.color  string optional  

value mag niet groter zijn dan 9 karakters.

queen.clipped  integer optional  

queen.fertilized  integer optional  

timezone  string optional  

Must be a valid time zone, such as Africa/Accra.

api/hives/{id} DELETE Remove the specified user Hive from storage.

requires authentication

Example request:
curl --request DELETE \
    "https://api.beep.nl/api/hives/1" \
    --header "Authorization: Bearer f3Z6c5k6adbg8DvhP14aVEe" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/hives/1"
);

const headers = {
    "Authorization": "Bearer f3Z6c5k6adbg8DvhP14aVEe",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

DELETE api/hives/{id}

URL Parameters

id  integer  

The ID of the hive.

Api\ImageController

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

Display a listing of the resource.

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/images" \
    --header "Authorization: Bearer ae1Z3fvc8P665hda4DkEgVb" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/images"
);

const headers = {
    "Authorization": "Bearer ae1Z3fvc8P665hda4DkEgVb",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/images

Store a newly created resource in storage.

requires authentication

Example request:
curl --request POST \
    "https://api.beep.nl/api/images" \
    --header "Authorization: Bearer Z6c6aVPhbEvde34f1Dgak58" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/images"
);

const headers = {
    "Authorization": "Bearer Z6c6aVPhbEvde34f1Dgak58",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

POST api/images

Display the specified resource.

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/images/1" \
    --header "Authorization: Bearer 5Ve84cPb3ZhEvf1aa66dkgD" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/images/1"
);

const headers = {
    "Authorization": "Bearer 5Ve84cPb3ZhEvf1aa66dkgD",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/images/{id}

URL Parameters

id  integer  

The ID of the image.

Update the specified resource in storage.

requires authentication

Example request:
curl --request PUT \
    "https://api.beep.nl/api/images/1" \
    --header "Authorization: Bearer 5E6g68Vda3kv4Paheb1cDZf" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/images/1"
);

const headers = {
    "Authorization": "Bearer 5E6g68Vda3kv4Paheb1cDZf",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

PUT api/images/{id}

PATCH api/images/{id}

URL Parameters

id  integer  

The ID of the image.

Remove the specified resource from storage.

requires authentication

Example request:
curl --request DELETE \
    "https://api.beep.nl/api/images" \
    --header "Authorization: Bearer ga53V6E1cPvDd8ka4fbhZe6" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/images"
);

const headers = {
    "Authorization": "Bearer ga53V6E1cPvDd8ka4fbhZe6",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

DELETE api/images

Api\InspectionsController

Manage manual hive inspections

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

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/inspections" \
    --header "Authorization: Bearer 6vb8fdakecah3gE415PDZV6" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/inspections"
);

const headers = {
    "Authorization": "Bearer 6vb8fdakecah3gE415PDZV6",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

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 --request GET \
    --get "https://api.beep.nl/api/inspections/lists" \
    --header "Authorization: Bearer b1akvZh664daf8VDeEgP3c5" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"id\": 6
}"
const url = new URL(
    "https://api.beep.nl/api/inspections/lists"
);

const headers = {
    "Authorization": "Bearer b1akvZh664daf8VDeEgP3c5",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "id": 6
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.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": []
        }
    ]
}
 

Request      

GET api/inspections/lists

Body Parameters

id  integer  

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 --request GET \
    --get "https://api.beep.nl/api/inspections/officiis" \
    --header "Authorization: Bearer a8DZcVb6fdPga3eh1v4kE56" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/inspections/officiis"
);

const headers = {
    "Authorization": "Bearer a8DZcVb6fdPga3eh1v4kE56",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/inspections/{id}

URL Parameters

id  string  

The id of the inspection.

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 --request GET \
    --get "https://api.beep.nl/api/inspections/hive/velit" \
    --header "Authorization: Bearer kDPeaabVh8316ZE4d5vf6cg" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/inspections/hive/velit"
);

const headers = {
    "Authorization": "Bearer kDPeaabVh8316ZE4d5vf6cg",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.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"
                }
            ]
        }
    ]
}
 

Request      

GET api/inspections/hive/{hive_id}

URL Parameters

hive_id  string  

The hive to request inspections from.

api/inspections POST Register a new hive inspection the 'inspection' object. The object reflects only the general inspection data.

requires authentication

Example request:
curl --request POST \
    "https://api.beep.nl/api/inspections/store" \
    --header "Authorization: Bearer Z636a5caEdPD8bgkveh14fV" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"date\": \"2020-05-18 16:16\",
    \"items\": {
        \"547\": 0,
        \"595\": 1,
        \"845\": \"814\"
    },
    \"hive_id\": 16,
    \"hive_ids\": 42,
    \"location_id\": \"2\",
    \"id\": 15,
    \"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"
);

const headers = {
    "Authorization": "Bearer Z636a5caEdPD8bgkveh14fV",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "date": "2020-05-18 16:16",
    "items": {
        "547": 0,
        "595": 1,
        "845": "814"
    },
    "hive_id": 16,
    "hive_ids": 42,
    "location_id": "2",
    "id": 15,
    "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,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/inspections/store

Body Parameters

date  date  

The (local time) date time of the inspection.

items  object  

An object of category id's containing their inspected values (id's in case of lists, otherwise numeric/textual values).

hive_id  integer optional  

Het value veld is verplicht wanneer hive_ids niet aanwezig is.

hive_ids  string[]  

Array of Hive ids to which this inspection should be linked.

location_id  Location optional  

id to which this inspection should be linked.

id  integer optional  

If provided, edit and do not create inspection. Required to edit the inspection.

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  

The (local time) date time 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.

requires authentication

Example request:
curl --request DELETE \
    "https://api.beep.nl/api/inspections/1" \
    --header "Authorization: Bearer gv6Df5dPekhb1VcZ6aaE843" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/inspections/1"
);

const headers = {
    "Authorization": "Bearer gv6Df5dPekhb1VcZ6aaE843",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

DELETE api/inspections/{id}

URL Parameters

id  integer  

The ID of the inspection.

Api\LocationController

Manage Apiaries

Display a listing of the resource.

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/locations" \
    --header "Authorization: Bearer 65VPZbD1cfd8kEae4gh63va" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/locations"
);

const headers = {
    "Authorization": "Bearer 65VPZbD1cfd8kEae4gh63va",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/locations

Store a newly created resource in storage.

requires authentication

Example request:
curl --request POST \
    "https://api.beep.nl/api/locations" \
    --header "Authorization: Bearer ck3e5a6h4d8D16favbEZVgP" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"name\": \"vero\",
    \"hive_type_id\": 15
}"
const url = new URL(
    "https://api.beep.nl/api/locations"
);

const headers = {
    "Authorization": "Bearer ck3e5a6h4d8D16favbEZVgP",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "name": "vero",
    "hive_type_id": 15
};

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

Request      

POST api/locations

Body Parameters

name  string  

hive_type_id  integer optional  

Display the specified resource.

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/locations/2" \
    --header "Authorization: Bearer 6hg8Pc6bZeaDE4Vd35akvf1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/locations/2"
);

const headers = {
    "Authorization": "Bearer 6hg8Pc6bZeaDE4Vd35akvf1",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/locations/{id}

URL Parameters

id  integer  

The ID of the location.

Update the specified resource in storage.

requires authentication

Example request:
curl --request PUT \
    "https://api.beep.nl/api/locations/2" \
    --header "Authorization: Bearer gc5vEh4k6bVPd8aa1eZ6D3f" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"name\": \"quos\",
    \"hive_type_id\": 13
}"
const url = new URL(
    "https://api.beep.nl/api/locations/2"
);

const headers = {
    "Authorization": "Bearer gc5vEh4k6bVPd8aa1eZ6D3f",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "name": "quos",
    "hive_type_id": 13
};

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

Request      

PUT api/locations/{id}

PATCH api/locations/{id}

URL Parameters

id  integer  

The ID of the location.

Body Parameters

name  string  

hive_type_id  integer optional  

Remove the specified resource from storage.

requires authentication

Example request:
curl --request DELETE \
    "https://api.beep.nl/api/locations/2" \
    --header "Authorization: Bearer eZD6Ea8kfP64h1vgcb5dV3a" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/locations/2"
);

const headers = {
    "Authorization": "Bearer eZD6Ea8kfP64h1vgcb5dV3a",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

DELETE api/locations/{id}

URL Parameters

id  integer  

The ID of the 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. See /sensors/measurement_types?locale=en which measurement types can be used to POST data to.

Example request:
curl --request POST \
    "https://api.beep.nl/api/sensors?key/data=ut" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"key\\/data\": \"dicta\"
}"
const url = new URL(
    "https://api.beep.nl/api/sensors"
);

const params = {
    "key/data": "ut",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "key\/data": "dicta"
};

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

Request      

POST api/sensors

Query Parameters

key/data  string  

Measurement formatted as URL query: key=your_beep_device_key&t=18.4&t_i=34.5&weight_kg=57.348&h=58&bv=3.54

Body Parameters

key/data  json  

Measurement data as JSON: {"key":"your_beep_device_key", "t":18.4, t_i":34.5, "weight_kg":57.348, "h":58, "bv":3.54}

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 --request POST \
    "https://api.beep.nl/api/lora_sensors" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"key\": \"suscipit\",
    \"payload_raw\": \"harum\",
    \"payload_fields\": \"ipsam\",
    \"DevEUI_uplink\": \"dolores\"
}"
const url = new URL(
    "https://api.beep.nl/api/lora_sensors"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "key": "suscipit",
    "payload_raw": "harum",
    "payload_fields": "ipsam",
    "DevEUI_uplink": "dolores"
};

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

Request      

POST api/lora_sensors

Body Parameters

key  string  

DEV EUI of the Device to enable storing sensor data

payload_raw  string optional  

TTN BEEP Measurement data in Base 64 encoded string

payload_fields  json optional  

TTN Measurement data array

DevEUI_uplink  json optional  

KPN Measurement data array

api/sensors/measurement_types GET Request all currently available sensor measurement types that can be POSTed to

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/sensors/measurement_types?locale=en" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/sensors/measurement_types"
);

const params = {
    "locale": "en",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 3
x-ratelimit-remaining: 2
access-control-allow-origin: *
 

{
    "t": "Temperatuur",
    "h": "Luchtvochtigheid",
    "p": "Luchtdruk",
    "w": "Weight",
    "l": "Licht",
    "bv": "Batterijvoltage",
    "w_v": "W v",
    "w_fl": "W fl",
    "w_fr": "W fr",
    "w_bl": "W bl",
    "w_br": "W br",
    "s_fan_4": "S fan 4",
    "s_fan_6": "S fan 6",
    "s_fan_9": "S fan 9",
    "s_fly_a": "S fly a",
    "s_tot": "S tot",
    "t_i": "Temperatuur intern",
    "bc_i": "Bijen in",
    "bc_o": "Bijen uit",
    "weight_kg": "Gewicht",
    "weight_kg_corrected": "Gewicht gecorrigeerd",
    "rssi": "Signaalsterkte",
    "snr": "Signaal-ruisverhouding",
    "lat": "Breedtegraad",
    "lon": "Lengtegraad",
    "s_bin098_146Hz": "S bin098 146Hz",
    "s_bin146_195Hz": "S bin146 195Hz",
    "s_bin195_244Hz": "S bin195 244Hz",
    "s_bin244_293Hz": "S bin244 293Hz",
    "s_bin293_342Hz": "S bin293 342Hz",
    "s_bin342_391Hz": "S bin342 391Hz",
    "s_bin391_439Hz": "S bin391 439Hz",
    "s_bin439_488Hz": "S bin439 488Hz",
    "s_bin488_537Hz": "S bin488 537Hz",
    "s_bin537_586Hz": "S bin537 586Hz",
    "calibrating_weight": "Calibrating weight",
    "w_fl_kg_per_val": "W fl kg per val",
    "w_fr_kg_per_val": "W fr kg per val",
    "w_bl_kg_per_val": "W bl kg per val",
    "w_br_kg_per_val": "W br kg per val",
    "w_fl_offset": "W fl offset",
    "w_fr_offset": "W fr offset",
    "w_bl_offset": "W bl offset",
    "w_br_offset": "W br offset",
    "bc_tot": "Bijen totaal",
    "s_spl": "S spl",
    "h_i": "H i",
    "w_v_offset": "W v offset",
    "w_v_kg_per_val": "W v kg per val",
    "s_bin_0_201": "S bin 0 201",
    "s_bin_201_402": "S bin 201 402",
    "s_bin_402_602": "S bin 402 602",
    "s_bin_602_803": "S bin 602 803",
    "s_bin_803_1004": "S bin 803 1004",
    "s_bin_1004_1205": "S bin 1004 1205",
    "s_bin_1205_1406": "S bin 1205 1406",
    "s_bin_1406_1607": "S bin 1406 1607",
    "s_bin_1607_1807": "S bin 1607 1807",
    "s_bin_1807_2008": "S bin 1807 2008",
    "t_0": "T 0",
    "t_1": "T 1",
    "t_2": "T 2",
    "t_3": "T 3",
    "t_4": "T 4",
    "t_5": "T 5",
    "t_6": "T 6",
    "t_7": "T 7",
    "t_8": "T 8",
    "t_9": "T 9",
    "s_bin_122_173": "S bin 122 173",
    "s_bin_71_122": "S bin 71 122",
    "s_bin_173_224": "S bin 173 224",
    "s_bin_224_276": "S bin 224 276",
    "s_bin_276_327": "S bin 276 327",
    "s_bin_327_378": "S bin 327 378",
    "s_bin_378_429": "S bin 378 429",
    "s_bin_429_480": "S bin 429 480",
    "s_bin_480_532": "S bin 480 532",
    "s_bin_532_583": "S bin 532 583"
}
 

Request      

GET api/sensors/measurement_types

Query Parameters

locale  string optional  

Two digit locale to get translated sensor measurement types.

api/sensors POST Store sensor measurement data (see BEEP sensor data API definition) from API, or TTN. See /sensors/measurement_types?locale=en which measurement types can be used to POST data to.

Example request:
curl --request POST \
    "https://api.beep.nl/api/sensors_auth?key/data=qui" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"key\\/data\": \"delectus\"
}"
const url = new URL(
    "https://api.beep.nl/api/sensors_auth"
);

const params = {
    "key/data": "qui",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "key\/data": "delectus"
};

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

Request      

POST api/sensors_auth

Query Parameters

key/data  string  

Measurement formatted as URL query: key=your_beep_device_key&t=18.4&t_i=34.5&weight_kg=57.348&h=58&bv=3.54

Body Parameters

key/data  json  

Measurement data as JSON: {"key":"your_beep_device_key", "t":18.4, t_i":34.5, "weight_kg":57.348, "h":58, "bv":3.54}

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 --request POST \
    "https://api.beep.nl/api/lora_sensors_auth" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"key\": \"dolorem\",
    \"payload_raw\": \"voluptatem\",
    \"payload_fields\": \"est\",
    \"DevEUI_uplink\": \"sunt\"
}"
const url = new URL(
    "https://api.beep.nl/api/lora_sensors_auth"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "key": "dolorem",
    "payload_raw": "voluptatem",
    "payload_fields": "est",
    "DevEUI_uplink": "sunt"
};

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

Request      

POST api/lora_sensors_auth

Body Parameters

key  string  

DEV EUI of the Device to enable storing sensor data

payload_raw  string optional  

TTN BEEP Measurement data in Base 64 encoded string

payload_fields  json optional  

TTN Measurement data array

DevEUI_uplink  json optional  

KPN Measurement data array

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 --request GET \
    --get "https://api.beep.nl/api/sensors/measurements" \
    --header "Authorization: Bearer 643ZV8Eecdk6a1ghPbf5avD" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"id\": 12,
    \"key\": \"harum\",
    \"hive_id\": 14,
    \"start\": \"2020-05-27 16:16\",
    \"end\": \"2020-05-30 00:00\",
    \"index\": 3,
    \"interval\": \"sed\",
    \"timeGroup\": \"voluptatem\",
    \"names\": \"dolorem\",
    \"weather\": 1,
    \"clean_weight\": 16,
    \"timezone\": \"Europe\\/Amsterdam\",
    \"relative_interval\": 14
}"
const url = new URL(
    "https://api.beep.nl/api/sensors/measurements"
);

const headers = {
    "Authorization": "Bearer 643ZV8Eecdk6a1ghPbf5avD",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "id": 12,
    "key": "harum",
    "hive_id": 14,
    "start": "2020-05-27 16:16",
    "end": "2020-05-30 00:00",
    "index": 3,
    "interval": "sed",
    "timeGroup": "voluptatem",
    "names": "dolorem",
    "weather": 1,
    "clean_weight": 16,
    "timezone": "Europe\/Amsterdam",
    "relative_interval": 14
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/sensors/measurements

Body Parameters

id  integer optional  

ID to look up the sensor (Device)

key  string optional  

DEV EUI to look up the sensor (Device).

hive_id  integer optional  

Hive ID to look up the sensor (Device)

start  date optional  

Date for start of measurements. Required without interval & index.

end  date optional  

Date for end of measurements. Required without interval & index.

index  integer optional  

Interval index (>=0; 0=until now, 1=previous interval, etc.). Default: 0.

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.

timeGroup  string optional  

names  string optional  

comma separated list of Measurement abbreviations to filter request data (weight_kg, t, h, etc.)

weather  integer optional  

Load corresponding weather data from the weather database (1) or not (0).

clean_weight  integer optional  

timezone  string optional  

Provide the front-end timezone to correct the time from UTC to front-end time.

relative_interval  integer optional  

Load data from the selected interval relative to current time (1), or load data in absolute intervals (from start-end of hour/day/week/etc) (0). Default: 0.

api/sensors/lastvalues GET Request last measurement values of all sensor measurements from a Device

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/sensors/lastvalues" \
    --header "Authorization: Bearer 46Vv1d6EZbaag38cDPfek5h" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"key\": \"sunt\",
    \"id\": 9,
    \"hive_id\": 18
}"
const url = new URL(
    "https://api.beep.nl/api/sensors/lastvalues"
);

const headers = {
    "Authorization": "Bearer 46Vv1d6EZbaag38cDPfek5h",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "key": "sunt",
    "id": 9,
    "hive_id": 18
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/sensors/lastvalues

Body Parameters

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 --request GET \
    --get "https://api.beep.nl/api/sensors/lastweight" \
    --header "Authorization: Bearer P61Z3g4ef5dhvVk8bc6aDEa" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"key\": \"non\",
    \"id\": 3,
    \"hive_id\": 12
}"
const url = new URL(
    "https://api.beep.nl/api/sensors/lastweight"
);

const headers = {
    "Authorization": "Bearer P61Z3g4ef5dhvVk8bc6aDEa",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "key": "non",
    "id": 3,
    "hive_id": 12
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/sensors/lastweight

Body Parameters

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 --request POST \
    "https://api.beep.nl/api/sensors/calibrateweight" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"next_measurement\": true,
    \"weight_kg\": 516327.7943
}"
const url = new URL(
    "https://api.beep.nl/api/sensors/calibrateweight"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "next_measurement": true,
    "weight_kg": 516327.7943
};

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

Request      

POST api/sensors/calibrateweight

Body Parameters

next_measurement  boolean optional  

weight_kg  number optional  

Het value veld is verplicht wanneer next_measurement is true.

POST api/sensors/offsetweight

Example request:
curl --request POST \
    "https://api.beep.nl/api/sensors/offsetweight" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/sensors/offsetweight"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

POST api/sensors/offsetweight

GET api/sensors/measurement_types_available

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/sensors/measurement_types_available" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/sensors/measurement_types_available"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/sensors/measurement_types_available

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 --request POST \
    "https://api.beep.nl/api/sensors/flashlog?show=20&save=12&fill=15&log_size_bytes=1" \
    --header "Authorization: Bearer Vd6kEZ41vf6ge5cDbaahP83" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"id\": 2,
    \"hardware_id\": \"recusandae\",
    \"key\": \"eos\",
    \"data\": \"voluptatem\",
    \"file\": \"corporis\",
    \"show\": true,
    \"save\": false,
    \"fill\": true,
    \"log_size_bytes\": 8
}"
const url = new URL(
    "https://api.beep.nl/api/sensors/flashlog"
);

const params = {
    "show": "20",
    "save": "12",
    "fill": "15",
    "log_size_bytes": "1",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer Vd6kEZ41vf6ge5cDbaahP83",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "id": 2,
    "hardware_id": "recusandae",
    "key": "eos",
    "data": "voluptatem",
    "file": "corporis",
    "show": true,
    "save": false,
    "fill": true,
    "log_size_bytes": 8
};

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

Example response (200):


{
"lines_received": 20039,
"bytes_received": 9872346,
"log_saved": true,
"log_parsed": false,
"log_messages":29387823
"erase_mx_flash": -1,
"erase":false,
"erase_type":"fatfs"
}
 

Request      

POST api/sensors/flashlog

Query Parameters

show  integer optional  

1 for displaying info in result JSON, 0 for not displaying (default).

save  integer optional  

1 for saving the data to a file (default), 0 for not save log file.

fill  integer optional  

1 for filling data gaps in the database, 0 for not filling gaps (default).

log_size_bytes  integer optional  

0x22 decimal result of log size requested from BEEP base.

Body Parameters

id  integer optional  

Device id to update. (Required without key and hardware_id)

hardware_id  string optional  

Hardware id of the device as device name in TTN. (Required without id and key)

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)

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.

show  boolean optional  

save  boolean optional  

fill  boolean optional  

log_size_bytes  integer optional  

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

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/sensors/decode/p/sequi/pl/ut" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/sensors/decode/p/sequi/pl/ut"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

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

URL Parameters

port  string  

payload  string  

api/sensors/comparemeasurements GET Request mean measurements for multiple hives from a certain interval (hour, day, week, month, year) and index (0=until now, 1=previous interval, etc.)

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/sensors/comparemeasurements" \
    --header "Authorization: Bearer 3EgV8D1hkvcaef5bd64PaZ6" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"id\": 7,
    \"key\": \"molestiae\",
    \"hive_id\": 16,
    \"start\": \"2020-05-27 16:16\",
    \"end\": \"2020-05-30 00:00\",
    \"index\": 17,
    \"interval\": \"eaque\",
    \"timeGroup\": \"autem\",
    \"names\": \"quam\",
    \"weather\": 1,
    \"timezone\": \"Europe\\/Amsterdam\",
    \"relative_interval\": 11
}"
const url = new URL(
    "https://api.beep.nl/api/sensors/comparemeasurements"
);

const headers = {
    "Authorization": "Bearer 3EgV8D1hkvcaef5bd64PaZ6",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "id": 7,
    "key": "molestiae",
    "hive_id": 16,
    "start": "2020-05-27 16:16",
    "end": "2020-05-30 00:00",
    "index": 17,
    "interval": "eaque",
    "timeGroup": "autem",
    "names": "quam",
    "weather": 1,
    "timezone": "Europe\/Amsterdam",
    "relative_interval": 11
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/sensors/comparemeasurements

Body Parameters

id  integer optional  

ID to look up the sensor (Device)

key  string optional  

DEV EUI to look up the sensor (Device).

hive_id  integer optional  

Hive ID to look up the sensor (Device)

start  date optional  

Date for start of measurements. Required without interval & index.

end  date optional  

Date for end of measurements. Required without interval & index.

index  integer optional  

Interval index (>=0; 0=until now, 1=previous interval, etc.). Default: 0.

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.

timeGroup  string optional  

names  string optional  

comma separated list of Measurement abbreviations to filter request data (weight_kg, t, h, etc.)

weather  integer optional  

Load corresponding weather data from the weather database (1) or not (0).

timezone  string optional  

Provide the front-end timezone to correct the time from UTC to front-end time.

relative_interval  integer optional  

Load data from the selected interval relative to current time (1), or load data in absolute intervals (from start-end of hour/day/week/etc) (0). Default: 0.

Api\ResearchController

Manage your research consent

Display a listing of the resource.

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/research" \
    --header "Authorization: Bearer vV63a8hafEcPbdkge4D561Z" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/research"
);

const headers = {
    "Authorization": "Bearer vV63a8hafEcPbdkge4D561Z",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/research

requires authentication

Example request:
curl --request POST \
    "https://api.beep.nl/api/research/9/add_consent" \
    --header "Authorization: Bearer e5Dgc4EPad186vVZ36hakbf" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"location_ids\": [
        \"occaecati\"
    ],
    \"hive_ids\": [
        \"qui\"
    ],
    \"device_ids\": [
        \"nostrum\"
    ]
}"
const url = new URL(
    "https://api.beep.nl/api/research/9/add_consent"
);

const headers = {
    "Authorization": "Bearer e5Dgc4EPad186vVZ36hakbf",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "location_ids": [
        "occaecati"
    ],
    "hive_ids": [
        "qui"
    ],
    "device_ids": [
        "nostrum"
    ]
};

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

requires authentication

Example request:
curl --request POST \
    "https://api.beep.nl/api/research/1/remove_consent" \
    --header "Authorization: Bearer fca6vdbeZa4DVk35P8hE1g6" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/research/1/remove_consent"
);

const headers = {
    "Authorization": "Bearer fca6vdbeZa4DVk35P8hE1g6",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

requires authentication

Example request:
curl --request PATCH \
    "https://api.beep.nl/api/research/1/edit/similique" \
    --header "Authorization: Bearer 31kcPdaDa84gVeb6ZhEvf56" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/research/1/edit/similique"
);

const headers = {
    "Authorization": "Bearer 31kcPdaDa84gVeb6ZhEvf56",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

requires authentication

Example request:
curl --request DELETE \
    "https://api.beep.nl/api/research/1/delete/eligendi" \
    --header "Authorization: Bearer v46adkg3a58Db16EhcePfVZ" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/research/1/delete/eligendi"
);

const headers = {
    "Authorization": "Bearer v46adkg3a58Db16EhcePfVZ",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Api\ResearchDataController

Retreive owned or viewable Research data

api/researchdata GET List all available Researches

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/researchdata" \
    --header "Authorization: Bearer kvc613a5D6fdZb4E8VPeagh" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/researchdata"
);

const headers = {
    "Authorization": "Bearer kvc613a5D6fdZb4E8VPeagh",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.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
        }
    }
]
 

Request      

GET api/researchdata

api/researchdata/{id} GET List one Research by id with list of consent_users

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/researchdata/vel" \
    --header "Authorization: Bearer Ed6DVcPfkaeg1358h6ba4Zv" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/researchdata/vel"
);

const headers = {
    "Authorization": "Bearer Ed6DVcPfkaeg1358h6ba4Zv",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.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
        }
    ]
}
 

Request      

GET api/researchdata/{id}

URL Parameters

id  string  

The research ID to request data from.

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/locations/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 --request GET \
    --get "https://api.beep.nl/api/researchdata/1/user/1/inspections" \
    --header "Authorization: Bearer Vb6D8E4vc3g6e51kaZhPadf" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"date_start\": \"2020-01-01 00:00:00\",
    \"date_until\": \"2020-09-29 23:59:59\",
    \"device_id\": 1,
    \"location_id\": 2,
    \"measurements\": \"dolorum\",
    \"decimals\": 1,
    \"interval\": \"5m\",
    \"calculation\": \"MEAN\",
    \"calculation_prop\": \"DERIVATIVE\",
    \"limit\": 10,
    \"precision\": \"rfc3339\",
    \"index\": 0,
    \"timezone\": \"Asia\\/Yangon\"
}"
const url = new URL(
    "https://api.beep.nl/api/researchdata/1/user/1/inspections"
);

const headers = {
    "Authorization": "Bearer Vb6D8E4vc3g6e51kaZhPadf",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "date_start": "2020-01-01 00:00:00",
    "date_until": "2020-09-29 23:59:59",
    "device_id": 1,
    "location_id": 2,
    "measurements": "dolorum",
    "decimals": 1,
    "interval": "5m",
    "calculation": "MEAN",
    "calculation_prop": "DERIVATIVE",
    "limit": 10,
    "precision": "rfc3339",
    "index": 0,
    "timezone": "Asia\/Yangon"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.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": 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"
            }
        ]
    }
]
 

Request      

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

URL Parameters

id  string  

The research ID to request data from.

user_id  string  

The user id to request data from.

item  string  

The type of user data (locations/devices/inspections/measurements) to request within the research (which the user gave consent for to use).

Body Parameters

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).

location_id  integer optional  

The location_id to filter the hives, and measurements on (next to date_start and date_until).

measurements  string optional  

Comma separated string of measurements (e.g. weight_kg,t_i,t_0,t_1) to query. Default: all measurments available.

decimals  integer optional  

Specifies the optional maximum amount of decimals that the (InfluxDB) calculation returns. Default: 2.

interval  string optional  

Specifies the optional (InfluxDB GROUPBY) time interval to interpolate measurements (*(all values)/1m/5m/30m/1h/1d/1w/30d/365d) m (minutes), h (hours), d (days), w (weeks). Default: 1d.

calculation  string optional  

Specifies the optional (InfluxDB) calculation (NONE/FIRST/LAST/MEAN/MEDIAN/MIN/MAX/SUM/COUNT/SPREAD/STDDEV/DERIVATIVE/PERCENTILE/BOXPLOT/PEAKS/WEEKMAP/NETWEIGHT) for use with time interval. Default: NONE.

calculation_prop  string optional  

Specifies the optional (InfluxDB) calculation property for i.e. PERCENTILE/DERIVATIVE/etc). Default: null.

limit  integer optional  

Specifies the maximum number of measurements per location_research (InfluxDB LIMIT), Max: 5000. Default: 5000.

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.

index  integer optional  

value dient minimaal 0 te zijn.

timezone  string optional  

only in case of 1 device requested, to provide 'normal' data view. Must be a valid time zone, such as Africa/Accra.

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

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/researchdata/1/data/inspections" \
    --header "Authorization: Bearer aeV8gZafDhckv1b46d63EP5" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"date_start\": \"2020-01-01 00:00:00\",
    \"date_until\": \"2020-09-29 23:59:59\",
    \"year_months\": \"2020-01,2021-02\",
    \"device_ids\": \"1,3,6\",
    \"device_id\": 1,
    \"location_ids\": \"1,3,6\",
    \"location_id\": 2,
    \"measurements\": \"at\",
    \"decimals\": 1,
    \"interval\": \"5m\",
    \"calculation\": \"MAX\",
    \"calculation_prop\": \"5\",
    \"limit\": 500,
    \"precision\": \"rfc3339\",
    \"index\": 0,
    \"timezone\": \"Europe\\/Amsterdam\"
}"
const url = new URL(
    "https://api.beep.nl/api/researchdata/1/data/inspections"
);

const headers = {
    "Authorization": "Bearer aeV8gZafDhckv1b46d63EP5",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "date_start": "2020-01-01 00:00:00",
    "date_until": "2020-09-29 23:59:59",
    "year_months": "2020-01,2021-02",
    "device_ids": "1,3,6",
    "device_id": 1,
    "location_ids": "1,3,6",
    "location_id": 2,
    "measurements": "at",
    "decimals": 1,
    "interval": "5m",
    "calculation": "MAX",
    "calculation_prop": "5",
    "limit": 500,
    "precision": "rfc3339",
    "index": 0,
    "timezone": "Europe\/Amsterdam"
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/researchdata/{id}/data/{item}

URL Parameters

id  string  

The research ID to request data from.

item  string  

The type of user data (locations/devices/inspections/measurements) to request within the research (which the user gave consent for to use).

Body Parameters

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).

year_months  string optional  

Comma separated string of YYYY-MM strings to filter ONLY measurment data.

device_ids  string optional  

Comma separated string of device_ids to filter the measurements on (next to date_start and date_until).

device_id  integer optional  

The device_id to filter measurements on (next to date_start and date_until).

location_ids  string optional  

Comma separated string of location_ids to filter measurements (next to date_start and date_until).

location_id  integer optional  

The location_id to filter and measurements (next to date_start and date_until).

measurements  string optional  

Comma separated string of measurements (e.g. weight_kg,t_i,t_0,t_1) to query. Default: * (all measurments available).

decimals  integer optional  

Specifies the optional maximum amount of decimals that the (InfluxDB) calculation returns. Default: 2.

interval  string optional  

Specifies the optional (InfluxDB GROUPBY) time interval to interpolate measurements (*(all values)/1m/5m/30m/1h/1d/1w/30d/365d) m (minutes), h (hours), d (days), w (weeks). Default: 1d.

calculation  string optional  

Specifies the optional (InfluxDB) calculation (NONE/FIRST/LAST/MEAN/MEDIAN/MIN/MAX/SUM/COUNT/SPREAD/STDDEV/DERIVATIVE/PERCENTILE/BOXPLOT/PEAKS/WEEKMAP/NETWEIGHT) for use with time interval. Default: MEAN.

calculation_prop  string optional  

Specifies the optional (InfluxDB) calculation property for i.e. PERCENTILE/DERIVATIVE/etc). Default: null.

limit  integer optional  

Specifies the maximum number of measurements per location_research (InfluxDB LIMIT), Max: 5000. Default: 5000.

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.

index  integer optional  

Historic index of the interval from now. 0=period with current time included. 1=previous interval. Required without end.

timezone  string optional  

Provide the front-end timezone to correct the time from UTC to front-end time.

Api\SampleCodeController

Research lab result sample code controller

Display a listing of the resource.

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/samplecode" \
    --header "Authorization: Bearer g58fvVcPDaba3Eke646hZ1d" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/samplecode"
);

const headers = {
    "Authorization": "Bearer g58fvVcPDaba3Eke646hZ1d",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/samplecode

api/samplecode POST Create a sample code for lab results

requires authentication

Example request:
curl --request POST \
    "https://api.beep.nl/api/samplecode" \
    --header "Authorization: Bearer 5kZ6abVa1c3v4f8dD6PeghE" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/samplecode"
);

const headers = {
    "Authorization": "Bearer 5kZ6abVa1c3v4f8dD6PeghE",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

POST api/samplecode

Show not used

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/samplecode/1" \
    --header "Authorization: Bearer 3a6E8Dk6hacegdfPb15Z4vV" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/samplecode/1"
);

const headers = {
    "Authorization": "Bearer 3a6E8Dk6hacegdfPb15Z4vV",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/samplecode/{id}

URL Parameters

id  integer  

The ID of the samplecode.

Update not used

requires authentication

Example request:
curl --request PUT \
    "https://api.beep.nl/api/samplecode/1" \
    --header "Authorization: Bearer E5eP4V6kfhc6abdgD31vZ8a" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/samplecode/1"
);

const headers = {
    "Authorization": "Bearer E5eP4V6kfhc6abdgD31vZ8a",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

PUT api/samplecode/{id}

PATCH api/samplecode/{id}

URL Parameters

id  integer  

The ID of the samplecode.

Remove the specified resource from storage.

requires authentication

Example request:
curl --request DELETE \
    "https://api.beep.nl/api/samplecode" \
    --header "Authorization: Bearer 65Dk1gvb4hZP836EaecVdaf" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/samplecode"
);

const headers = {
    "Authorization": "Bearer 65Dk1gvb4hZP836EaecVdaf",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

DELETE api/samplecode

Api\SensorDefinitionController

Manage your sensor definitions

api/sensordefinition GET Display a listing of all sensordefinitions that belong to a device

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/sensordefinition" \
    --header "Authorization: Bearer 6ZPEDg5813e6dVvac4fabhk" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"device_id\": 15,
    \"hardware_id\": \"dolorem\",
    \"device_hardware_id\": \"labore\",
    \"input_measurement_abbreviation\": \"animi\",
    \"limit\": 18
}"
const url = new URL(
    "https://api.beep.nl/api/sensordefinition"
);

const headers = {
    "Authorization": "Bearer 6ZPEDg5813e6dVvac4fabhk",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "device_id": 15,
    "hardware_id": "dolorem",
    "device_hardware_id": "labore",
    "input_measurement_abbreviation": "animi",
    "limit": 18
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/sensordefinition

Body Parameters

device_id  integer optional  

Device ID that the Sensordefinition belongs to. Required if hardware_id, and device_hardware_id are not set.

hardware_id  string optional  

Device hardware ID that the Sensordefinition belongs to. Required if device_id, and device_hardware_id are not set.

device_hardware_id  string optional  

Device hardware ID that the Sensordefinition belongs to. Required if hardware_id, and device_id are not set.

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 sensordefinition

requires authentication

Example request:
curl --request POST \
    "https://api.beep.nl/api/sensordefinition" \
    --header "Authorization: Bearer 13eaPgb8ZvDhac645VdEkf6" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"name\": \"tenetur\",
    \"inside\": false,
    \"offset\": 15.66,
    \"multiplier\": 109.4,
    \"input_measurement_id\": 5,
    \"input_measurement_abbreviation\": \"w_v\",
    \"output_measurement_id\": 6,
    \"output_measurement_abbreviation\": \"t_i\",
    \"device_id\": 2,
    \"hardware_id\": \"neque\",
    \"device_hardware_id\": \"dolore\"
}"
const url = new URL(
    "https://api.beep.nl/api/sensordefinition"
);

const headers = {
    "Authorization": "Bearer 13eaPgb8ZvDhac645VdEkf6",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "name": "tenetur",
    "inside": false,
    "offset": 15.66,
    "multiplier": 109.4,
    "input_measurement_id": 5,
    "input_measurement_abbreviation": "w_v",
    "output_measurement_id": 6,
    "output_measurement_abbreviation": "t_i",
    "device_id": 2,
    "hardware_id": "neque",
    "device_hardware_id": "dolore"
};

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

Request      

POST api/sensordefinition

Body Parameters

name  string optional  

Name of the sensorinstance (e.g. temperature frame 1)

inside  boolean optional  

True is measured inside, false if measured outside

offset  number optional  

Measurement value that defines 0

multiplier  number 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 ID that the Sensordefinition belongs to. Required if hardware_id, and device_hardware_id are not set.

hardware_id  string optional  

Device hardware ID that the Sensordefinition belongs to. Required if device_id, and device_hardware_id are not set.

device_hardware_id  string optional  

Device hardware ID that the Sensordefinition belongs to. Required if hardware_id, and device_id are not set.

api/sensordefinition/{id} GET Display the specified sensordefinition

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/sensordefinition/suscipit" \
    --header "Authorization: Bearer Vh5g3Z48EaPcka1Ddb6f6ev" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"device_id\": 20,
    \"hardware_id\": \"sit\",
    \"device_hardware_id\": \"dolore\"
}"
const url = new URL(
    "https://api.beep.nl/api/sensordefinition/suscipit"
);

const headers = {
    "Authorization": "Bearer Vh5g3Z48EaPcka1Ddb6f6ev",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "device_id": 20,
    "hardware_id": "sit",
    "device_hardware_id": "dolore"
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/sensordefinition/{id}

URL Parameters

id  string  

Sensordefinition ID

Body Parameters

device_id  integer optional  

Device ID that the Sensordefinition belongs to. Required if hardware_id, and device_hardware_id are not set.

hardware_id  string optional  

Device hardware ID that the Sensordefinition belongs to. Required if device_id, and device_hardware_id are not set.

device_hardware_id  string optional  

Device hardware ID that the Sensordefinition belongs to. Required if hardware_id, and device_id are not set.

api/sensordefinition/{id} PATCH Update the specified sensordefinition

requires authentication

Example request:
curl --request PUT \
    "https://api.beep.nl/api/sensordefinition/totam" \
    --header "Authorization: Bearer 3PvegaEd5166Dh4f8kaZcVb" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"device_id\": 5,
    \"hardware_id\": \"quidem\",
    \"device_hardware_id\": \"iste\"
}"
const url = new URL(
    "https://api.beep.nl/api/sensordefinition/totam"
);

const headers = {
    "Authorization": "Bearer 3PvegaEd5166Dh4f8kaZcVb",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "device_id": 5,
    "hardware_id": "quidem",
    "device_hardware_id": "iste"
};

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

Request      

PUT api/sensordefinition/{id}

PATCH api/sensordefinition/{id}

URL Parameters

id  string  

Sensordefinition ID

Body Parameters

device_id  integer optional  

Device ID that the Sensordefinition belongs to. Required if hardware_id, and device_hardware_id are not set.

hardware_id  string optional  

Device hardware ID that the Sensordefinition belongs to. Required if device_id, and device_hardware_id are not set.

device_hardware_id  string optional  

Device hardware ID that the Sensordefinition belongs to. Required if hardware_id, and device_id are not set.

api/sensordefinition/{id} DELETE Remove the specified sensordefinition

requires authentication

Example request:
curl --request DELETE \
    "https://api.beep.nl/api/sensordefinition/ipsa" \
    --header "Authorization: Bearer cD1V8E46hdaavekP56fZ3gb" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"device_id\": 2,
    \"hardware_id\": \"ut\",
    \"device_hardware_id\": \"velit\"
}"
const url = new URL(
    "https://api.beep.nl/api/sensordefinition/ipsa"
);

const headers = {
    "Authorization": "Bearer cD1V8E46hdaavekP56fZ3gb",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "device_id": 2,
    "hardware_id": "ut",
    "device_hardware_id": "velit"
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

DELETE api/sensordefinition/{id}

URL Parameters

id  string  

Sensordefinition ID

Body Parameters

device_id  integer optional  

Device ID that the Sensordefinition belongs to. Required if hardware_id, and device_hardware_id are not set.

hardware_id  string optional  

Device hardware ID that the Sensordefinition belongs to. Required if device_id, and device_hardware_id are not set.

device_hardware_id  string optional  

Device hardware ID that the Sensordefinition belongs to. Required if hardware_id, and device_id are not set.

Api\TaxonomyController

api/taxonomy/lists List of current state of the standard categories.

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/taxonomy/lists" \
    --header "Authorization: Bearer VDP63hveg6aa8c5bf1dkZ4E" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/taxonomy/lists"
);

const headers = {
    "Authorization": "Bearer VDP63hveg6aa8c5bf1dkZ4E",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/taxonomy/lists

api/taxonomy/taxonomy List of current state of the standard categories, translated, unordered/ordered in hierachy/flat.

requires authentication

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/taxonomy/taxonomy?locale=quas&flat=&order=" \
    --header "Authorization: Bearer 8V64aEvea1gDdZfP5kb3hc6" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/taxonomy/taxonomy"
);

const params = {
    "locale": "quas",
    "flat": "0",
    "order": "0",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer 8V64aEvea1gDdZfP5kb3hc6",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/taxonomy/taxonomy

Query Parameters

locale  string optional  

Two character language code to translate taxonomy

flat  boolean optional  

In hierachy (default: true)

order  boolean optional  

Ordered (default: false)

Api\UserController

APIs for managing users

api/login Login via login form

Example request:
curl --request POST \
    "https://api.beep.nl/api/login" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"email\": \"test@test.com\",
    \"password\": \"testtest\"
}"
const url = new URL(
    "https://api.beep.nl/api/login"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.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"
}
 

Request      

POST api/login

Body Parameters

email  string  

Email address of the user.

password  string  

Password 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 --request POST \
    "https://api.beep.nl/api/authenticate" \
    --header "Authorization: Bearer cEP834aV1f56vZhegda6bDk" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/authenticate"
);

const headers = {
    "Authorization": "Bearer cEP834aV1f56vZhegda6bDk",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.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"
}
 

Request      

POST api/authenticate

api/userlocale PATCH Edit the user locale only, do not update api_key

requires authentication

Example request:
curl --request PATCH \
    "https://api.beep.nl/api/userlocale" \
    --header "Authorization: Bearer dP1Z3be8gv5faEaDhV466ck" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"locale\": \"consequuntur\"
}"
const url = new URL(
    "https://api.beep.nl/api/userlocale"
);

const headers = {
    "Authorization": "Bearer dP1Z3be8gv5faEaDhV466ck",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "locale": "consequuntur"
};

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

Request      

PATCH api/userlocale

Body Parameters

locale  string optional  

Two digit country string to define locale

Endpoints

Display a listing of the resource.

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/hive-tags" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/hive-tags"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/hive-tags

Store a newly created resource in storage.

Example request:
curl --request POST \
    "https://api.beep.nl/api/hive-tags" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"tag\": \"autem\",
    \"router_link\": \"voluptates\",
    \"hive_id\": 3,
    \"action_id\": 8
}"
const url = new URL(
    "https://api.beep.nl/api/hive-tags"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "tag": "autem",
    "router_link": "voluptates",
    "hive_id": 3,
    "action_id": 8
};

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

Request      

POST api/hive-tags

Body Parameters

tag  string  

router_link  string  

hive_id  integer optional  

action_id  integer optional  

Display the specified resource.

Example request:
curl --request GET \
    --get "https://api.beep.nl/api/hive-tags/9" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/hive-tags/9"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthenticated."
}
 

Request      

GET api/hive-tags/{id}

URL Parameters

id  integer  

The ID of the hive tag.

Update the specified resource in storage.

Example request:
curl --request PUT \
    "https://api.beep.nl/api/hive-tags/8" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"tag\": \"repellendus\",
    \"router_link\": \"reiciendis\",
    \"hive_id\": 16,
    \"action_id\": 14
}"
const url = new URL(
    "https://api.beep.nl/api/hive-tags/8"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

let body = {
    "tag": "repellendus",
    "router_link": "reiciendis",
    "hive_id": 16,
    "action_id": 14
};

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

Request      

PUT api/hive-tags/{id}

PATCH api/hive-tags/{id}

URL Parameters

id  integer  

The ID of the hive tag.

Body Parameters

tag  string  

router_link  string  

hive_id  integer optional  

action_id  integer optional  

Remove the specified resource from storage.

Example request:
curl --request DELETE \
    "https://api.beep.nl/api/hive-tags/2" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/hive-tags/2"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Request      

DELETE api/hive-tags/{id}

URL Parameters

id  integer  

The ID of the hive tag.