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 afdED8ka46v6ehPbV3c5g1Z" \
    --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 afdED8ka46v6ehPbV3c5g1Z",
    "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 d5aE14cgVDhe6vbZ683kafP" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"alert_rule_id\": 20,
    \"measurement_id\": 3,
    \"alert_value\": \"mollitia\",
    \"show\": false
}"
const url = new URL(
    "https://api.beep.nl/api/alerts"
);

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

let body = {
    "alert_rule_id": 20,
    "measurement_id": 3,
    "alert_value": "mollitia",
    "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 Dd6hZ5aE6vb3a4Pegc1fVk8" \
    --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 Dd6hZ5aE6vb3a4Pegc1fVk8",
    "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 avdVZk8436be6EPg1hcafD5" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"show\": false
}"
const url = new URL(
    "https://api.beep.nl/api/alerts/1"
);

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

let body = {
    "show": false
};

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 k1aZd4bf8ePv3E6cV56gDah" \
    --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 k1aZd4bf8ePv3E6cV56gDah",
    "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 a64aPdv1cVhk5E3gfe6DbZ8" \
    --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 a64aPdv1cVhk5E3gfe6DbZ8",
    "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 k6h6b3cgafv8PaD145VEdeZ" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"name\": \"repellendus\",
    \"description\": \"nihil\",
    \"measurement_id\": 12,
    \"threshold_value\": 3527054.7321377,
    \"formulas\": [
        {
            \"alert_rule_id\": 2,
            \"measurement_id\": 1,
            \"calculation\": \"mollitia\",
            \"comparator\": \"commodi\",
            \"comparison\": \"fuga\",
            \"period_minutes\": 0,
            \"threshold_value\": 323.6134619,
            \"future\": false
        }
    ],
    \"calculation_minutes\": \"totam\",
    \"alert_on_occurrences\": 19,
    \"alert_via_email\": false,
    \"webhook_url\": \"voluptas\",
    \"active\": true,
    \"exclude_months\": [
        1,
        2,
        3,
        11,
        12
    ],
    \"exclude_hours\": [
        0,
        1,
        2,
        3,
        22,
        23
    ],
    \"exclude_hive_ids\": [
        \"corporis\"
    ]
}"
const url = new URL(
    "https://api.beep.nl/api/alert-rules"
);

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

let body = {
    "name": "repellendus",
    "description": "nihil",
    "measurement_id": 12,
    "threshold_value": 3527054.7321377,
    "formulas": [
        {
            "alert_rule_id": 2,
            "measurement_id": 1,
            "calculation": "mollitia",
            "comparator": "commodi",
            "comparison": "fuga",
            "period_minutes": 0,
            "threshold_value": 323.6134619,
            "future": false
        }
    ],
    "calculation_minutes": "totam",
    "alert_on_occurrences": 19,
    "alert_via_email": false,
    "webhook_url": "voluptas",
    "active": true,
    "exclude_months": [
        1,
        2,
        3,
        11,
        12
    ],
    "exclude_hours": [
        0,
        1,
        2,
        3,
        22,
        23
    ],
    "exclude_hive_ids": [
        "corporis"
    ]
};

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 optional  

Het value veld is verplicht wanneer formulas niet aanwezig is.

calculation  string optional  

Het value veld is verplicht wanneer formulas niet aanwezig is.

comparator  string optional  

Het value veld is verplicht wanneer formulas niet aanwezig is.

comparison  string optional  

Het value veld is verplicht wanneer formulas niet aanwezig is.

threshold_value  number optional  

Het value veld is verplicht wanneer formulas niet aanwezig is.

formulas  object[] optional  

formulas[].alert_rule_id  integer optional  

formulas[].measurement_id  integer  

formulas[].calculation  string  

formulas[].comparator  string  

formulas[].comparison  string  

formulas[].period_minutes  integer  

value dient minimaal 0 te zijn.

formulas[].threshold_value  number  

formulas[].future  boolean  

formulas[].logical  string optional  

formulas.*  object  

formulas.*.measurement_id  integer  

The physical quantity / unit to alert for.

formulas.*.calculation  string  

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

formulas.*.comparator  string  

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

formulas.*.comparison  string  

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

formulas.*.threshold_value  number  

The threshold value beyond which the alert will be sent.

formulas.*.period_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.

calculation_minutes  string  

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 6ae1ZfkEPVd3bc48g65vhDa" \
    --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 6ae1ZfkEPVd3bc48g65vhDa",
    "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 f61aPeV68abkvgZ543dcEhD" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"name\": \"dignissimos\",
    \"description\": \"id\",
    \"measurement_id\": 18,
    \"calculation\": \"dolorem\",
    \"comparator\": \"voluptas\",
    \"comparison\": \"qui\",
    \"threshold_value\": 0.39,
    \"formulas\": [
        {
            \"measurement_id\": 12,
            \"calculation\": \"molestiae\",
            \"comparator\": \"dicta\",
            \"comparison\": \"recusandae\",
            \"period_minutes\": 0,
            \"threshold_value\": 708013.2,
            \"future\": true
        }
    ],
    \"calculation_minutes\": 7,
    \"alert_on_occurrences\": 16,
    \"alert_via_email\": true,
    \"webhook_url\": \"et\",
    \"active\": false,
    \"exclude_months\": [
        1,
        2,
        3,
        11,
        12
    ],
    \"exclude_hours\": [
        0,
        1,
        2,
        3,
        22,
        23
    ],
    \"exclude_hive_ids\": [
        \"et\"
    ]
}"
const url = new URL(
    "https://api.beep.nl/api/alert-rules/1"
);

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

let body = {
    "name": "dignissimos",
    "description": "id",
    "measurement_id": 18,
    "calculation": "dolorem",
    "comparator": "voluptas",
    "comparison": "qui",
    "threshold_value": 0.39,
    "formulas": [
        {
            "measurement_id": 12,
            "calculation": "molestiae",
            "comparator": "dicta",
            "comparison": "recusandae",
            "period_minutes": 0,
            "threshold_value": 708013.2,
            "future": true
        }
    ],
    "calculation_minutes": 7,
    "alert_on_occurrences": 16,
    "alert_via_email": true,
    "webhook_url": "et",
    "active": false,
    "exclude_months": [
        1,
        2,
        3,
        11,
        12
    ],
    "exclude_hours": [
        0,
        1,
        2,
        3,
        22,
        23
    ],
    "exclude_hive_ids": [
        "et"
    ]
};

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.

formulas  object[] optional  

formulas[].alert_rule_id  string optional  

formulas[].measurement_id  integer  

formulas[].calculation  string  

formulas[].comparator  string  

formulas[].comparison  string  

formulas[].period_minutes  integer  

value dient minimaal 0 te zijn.

formulas[].threshold_value  number  

formulas[].future  boolean  

formulas[].logical  string optional  

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 b5E6D6ce3kZVdaPf4a1ghv8" \
    --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 b5E6D6ce3kZVdaPf4a1ghv8",
    "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 ge5f1Dd6P364bEcakV8haZv" \
    --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 ge5f1Dd6P364bEcakV8haZv",
    "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 gZ5DhEfVd3a16684vePabkc" \
    --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 gZ5DhEfVd3a16684vePabkc",
    "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 Deh3PZ1V56fc46dbvkag8aE" \
    --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 Deh3PZ1V56fc46dbvkag8aE",
    "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 PDecVf6845bakEghva6d3Z1" \
    --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 PDecVf6845bakEghva6d3Z1",
    "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 3aPb4VcfZa65DdegEv81hk6" \
    --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 3aPb4VcfZa65DdegEv81hk6",
    "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 4gP3dcvV8EbDka615feh6aZ" \
    --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 4gP3dcvV8EbDka615feh6aZ",
    "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 16DvdZg3e56ac4hab8EkVPf" \
    --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 16DvdZg3e56ac4hab8EkVPf",
    "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 cZ8f6ad35aePVvg4h16EbkD" \
    --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 cZ8f6ad35aePVvg4h16EbkD",
    "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 egfhaE68VP1Dv5cZb64da3k" \
    --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 egfhaE68VP1Dv5cZb64da3k",
    "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 Ebc4P6hgf83VZ6Da1k5vaed" \
    --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 Ebc4P6hgf83VZ6Da1k5vaed",
    "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 vZb3eghVdaEa6c15PD4k6f8" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"checklist_id\": 9,
    \"svg\": \"excepturi\",
    \"pages\": 11,
    \"name\": \"dignissimos\",
    \"last_print\": \"nihil\"
}"
const url = new URL(
    "https://api.beep.nl/api/checklist-svg"
);

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

let body = {
    "checklist_id": 9,
    "svg": "excepturi",
    "pages": 11,
    "name": "dignissimos",
    "last_print": "nihil"
};

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/10" \
    --header "Authorization: Bearer v6Ze8D4aa6bfhc1kPEdg5V3" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/checklist-svg/10"
);

const headers = {
    "Authorization": "Bearer v6Ze8D4aa6bfhc1kPEdg5V3",
    "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/5" \
    --header "Authorization: Bearer 85bE6ZaDhgvPcefV4a1d63k" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/checklist-svg/5"
);

const headers = {
    "Authorization": "Bearer 85bE6ZaDhgvPcefV4a1d63k",
    "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/2" \
    --header "Authorization: Bearer 615cbhaveaEPD8Vdf6g4Zk3" \
    --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 615cbhaveaEPD8Vdf6g4Zk3",
    "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/sequi" \
    --header "Authorization: Bearer 3acfaDg1bEvPZVh6ek56d84" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"code\": \"gcvl\",
    \"hive_id\": 14
}"
const url = new URL(
    "https://api.beep.nl/api/dashboard/sequi"
);

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

let body = {
    "code": "gcvl",
    "hive_id": 14
};

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

Example response (500):

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

{
    "message": "Server Error"
}
 

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 hadfaE1k5vcbDZ4V683e6gP" \
    --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 hadfaE1k5vcbDZ4V683e6gP",
    "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 kEa6h3861Ze4cVg5bdvPfDa" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"interval\": \"nulla\",
    \"speed\": 60488,
    \"name\": \"rerum\",
    \"description\": \"doloremque\",
    \"logo_url\": \"http:\\/\\/www.mertz.com\\/incidunt-perspiciatis-tempore-voluptas-et-ducimus\",
    \"show_inspections\": true,
    \"show_all\": true,
    \"hide_measurements\": false,
    \"hive_ids\": [
        \"expedita\"
    ]
}"
const url = new URL(
    "https://api.beep.nl/api/dashboardgroups"
);

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

let body = {
    "interval": "nulla",
    "speed": 60488,
    "name": "rerum",
    "description": "doloremque",
    "logo_url": "http:\/\/www.mertz.com\/incidunt-perspiciatis-tempore-voluptas-et-ducimus",
    "show_inspections": true,
    "show_all": true,
    "hide_measurements": false,
    "hive_ids": [
        "expedita"
    ]
};

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 bvf83aeEDd5cVa64Zk1g6hP" \
    --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 bvf83aeEDd5cVa64Zk1g6hP",
    "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 D1ce34aV5bf6hEPZ8kavdg6" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"interval\": \"doloribus\",
    \"speed\": 39048,
    \"name\": \"et\",
    \"description\": \"illo\",
    \"logo_url\": \"http:\\/\\/sipes.info\\/consequatur-cupiditate-laboriosam-voluptatem-aut-sit-repudiandae-illum\",
    \"show_inspections\": true,
    \"show_all\": false,
    \"hide_measurements\": false,
    \"hive_ids\": [
        \"dignissimos\"
    ]
}"
const url = new URL(
    "https://api.beep.nl/api/dashboardgroups/1"
);

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

let body = {
    "interval": "doloribus",
    "speed": 39048,
    "name": "et",
    "description": "illo",
    "logo_url": "http:\/\/sipes.info\/consequatur-cupiditate-laboriosam-voluptatem-aut-sit-repudiandae-illum",
    "show_inspections": true,
    "show_all": false,
    "hide_measurements": false,
    "hive_ids": [
        "dignissimos"
    ]
};

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 c81vZfPE6ka4bh6VdeDag53" \
    --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 c81vZfPE6ka4bh6VdeDag53",
    "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 84EZb6afkP5aecDdvh1gV36" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"id\": 19,
    \"key\": \"aut\",
    \"hardware_id\": \"iusto\",
    \"name\": \"repellendus\",
    \"hive_id\": 14,
    \"type\": \"atque\",
    \"last_message_received\": \"aspernatur\",
    \"firmware_version\": \"nesciunt\",
    \"hardware_version\": \"autem\",
    \"boot_count\": 14,
    \"measurement_interval_min\": 125.74838,
    \"measurement_transmission_ratio\": 109,
    \"ble_pin\": \"aliquid\",
    \"battery_voltage\": 322602517.931274,
    \"next_downlink_message\": \"dolore\",
    \"last_downlink_result\": \"ut\"
}"
const url = new URL(
    "https://api.beep.nl/api/devices/multiple"
);

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

let body = {
    "id": 19,
    "key": "aut",
    "hardware_id": "iusto",
    "name": "repellendus",
    "hive_id": 14,
    "type": "atque",
    "last_message_received": "aspernatur",
    "firmware_version": "nesciunt",
    "hardware_version": "autem",
    "boot_count": 14,
    "measurement_interval_min": 125.74838,
    "measurement_transmission_ratio": 109,
    "ble_pin": "aliquid",
    "battery_voltage": 322602517.931274,
    "next_downlink_message": "dolore",
    "last_downlink_result": "ut"
};

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/laboriosam" \
    --header "Authorization: Bearer 8cgb6e1V3Z6Evd4Dha5fPak" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/devices/ttn/laboriosam"
);

const headers = {
    "Authorization": "Bearer 8cgb6e1V3Z6Evd4Dha5fPak",
    "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/saepe" \
    --header "Authorization: Bearer ekhDa4abP1Z6dvcE68gV35f" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"lorawan_device\": {
        \"dev_eui\": \"lxiiadxuokzhlfsi\",
        \"app_key\": \"ueijmdpnaqyrulhwzoqnivzrgmnjuoyh\"
    }
}"
const url = new URL(
    "https://api.beep.nl/api/devices/ttn/saepe"
);

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

let body = {
    "lorawan_device": {
        "dev_eui": "lxiiadxuokzhlfsi",
        "app_key": "ueijmdpnaqyrulhwzoqnivzrgmnjuoyh"
    }
};

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 avfb6V1eED48P5gakc3dh6Z" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"hardware_id\": \"et\"
}"
const url = new URL(
    "https://api.beep.nl/api/devices"
);

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

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

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 ad1c4vaDkgVbZe685PEh36f" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"id\": 13,
    \"key\": \"voluptates\",
    \"hardware_id\": \"quia\",
    \"name\": \"occaecati\",
    \"hive_id\": 6,
    \"type\": \"dolorum\",
    \"last_message_received\": \"quod\",
    \"firmware_version\": \"aliquam\",
    \"hardware_version\": \"eos\",
    \"boot_count\": 3,
    \"measurement_interval_min\": 5696055.393,
    \"measurement_transmission_ratio\": 3800,
    \"ble_pin\": \"rerum\",
    \"battery_voltage\": 1502985.31,
    \"next_downlink_message\": \"illo\",
    \"last_downlink_result\": \"dignissimos\",
    \"create_ttn_device\": true,
    \"app_key\": \"fuga\"
}"
const url = new URL(
    "https://api.beep.nl/api/devices"
);

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

let body = {
    "id": 13,
    "key": "voluptates",
    "hardware_id": "quia",
    "name": "occaecati",
    "hive_id": 6,
    "type": "dolorum",
    "last_message_received": "quod",
    "firmware_version": "aliquam",
    "hardware_version": "eos",
    "boot_count": 3,
    "measurement_interval_min": 5696055.393,
    "measurement_transmission_ratio": 3800,
    "ble_pin": "rerum",
    "battery_voltage": 1502985.31,
    "next_downlink_message": "illo",
    "last_downlink_result": "dignissimos",
    "create_ttn_device": true,
    "app_key": "fuga"
};

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 1a4568PdDgbfZeaVv3hcEk6" \
    --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 1a4568PdDgbfZeaVv3hcEk6",
    "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 1eDVcg3Edk854habaf66PvZ" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"id\": 12,
    \"key\": \"quis\",
    \"hardware_id\": \"ea\",
    \"name\": \"tenetur\",
    \"hive_id\": 2,
    \"type\": \"veritatis\",
    \"delete\": false,
    \"last_message_received\": \"nihil\",
    \"firmware_version\": \"porro\",
    \"hardware_version\": \"fugit\",
    \"boot_count\": 7,
    \"measurement_interval_min\": 66723158.67244781,
    \"measurement_transmission_ratio\": 222015999.57199,
    \"ble_pin\": \"distinctio\",
    \"battery_voltage\": 64171328.7,
    \"next_downlink_message\": \"voluptas\",
    \"last_downlink_result\": \"incidunt\"
}"
const url = new URL(
    "https://api.beep.nl/api/devices/1"
);

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

let body = {
    "id": 12,
    "key": "quis",
    "hardware_id": "ea",
    "name": "tenetur",
    "hive_id": 2,
    "type": "veritatis",
    "delete": false,
    "last_message_received": "nihil",
    "firmware_version": "porro",
    "hardware_version": "fugit",
    "boot_count": 7,
    "measurement_interval_min": 66723158.67244781,
    "measurement_transmission_ratio": 222015999.57199,
    "ble_pin": "distinctio",
    "battery_voltage": 64171328.7,
    "next_downlink_message": "voluptas",
    "last_downlink_result": "incidunt"
};

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

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

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

fetch(url, {
    method: "POST",
    headers,
    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 58431vPDgec6Eda6VafkZbh" \
    --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 58431vPDgec6Eda6VafkZbh",
    "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 (500):

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

{
    "message": "Server Error"
}
 

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 dE658kchaVb46vfPDge31Za" \
    --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 dE658kchaVb46vfPDge31Za",
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Accept-language": "en",
};

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

Example response (500):

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

{
    "message": "Server Error"
}
 

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=16" \
    --header "Authorization: Bearer 6Va83h4fv1Pc65kadbZgEDe" \
    --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": "16",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer 6Va83h4fv1Pc65kadbZgEDe",
    "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 (500):

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

{
    "message": "Server Error"
}
 

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=5" \
    --header "Authorization: Bearer 5kDbv3d6e8aPcfZE14gaV6h" \
    --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": "5",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer 5kDbv3d6e8aPcfZE14gaV6h",
    "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=7" \
    --header "Authorization: Bearer 8DPc6v3b5Eh1V4faZegkda6" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"block_id\": 20
}"
const url = new URL(
    "https://api.beep.nl/api/flashlogs/1"
);

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

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

let body = {
    "block_id": 20
};

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 6hbcZ36kPfvDg85ed41EaVa" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"token\": \"non\",
    \"group_id\": \"esse\",
    \"decline\": true
}"
const url = new URL(
    "https://api.beep.nl/api/groups/checktoken"
);

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

let body = {
    "token": "non",
    "group_id": "esse",
    "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 3Z8hvP6E51f4abcagdeDk6V" \
    --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 3Z8hvP6E51f4abcagdeDk6V",
    "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 4gPDZvf5habc3E68ekdVa61" \
    --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 4gPDZvf5habc3E68ekdVa61",
    "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 a81EdcDP6gZbe64a3v5hkVf" \
    --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 a81EdcDP6gZbe64a3v5hkVf",
    "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 51k3dgPaevcbZVaEh8D66f4" \
    --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 51k3dgPaevcbZVaEh8D66f4",
    "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 dv568VP4Ea16ehZ3bfDgcka" \
    --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 dv568VP4Ea16ehZ3bfDgcka",
    "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/et" \
    --header "Authorization: Bearer PveE43dgf5b8ac16ZaD6hkV" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/groups/detach/et"
);

const headers = {
    "Authorization": "Bearer PveE43dgf5b8ac16ZaD6hkV",
    "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 Eka8VPD315fb46hcvaedg6Z" \
    --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 Eka8VPD315fb46hcvaedg6Z",
    "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 ecVbvd546Eg3PhaZa1Dk6f8" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"name\": \"optio\",
    \"location_id\": 7,
    \"brood_layers\": 0,
    \"honey_layers\": 0,
    \"frames\": 0,
    \"order\": 2,
    \"layers\": [
        \"aut\"
    ],
    \"color\": \"kbljro\",
    \"hive_type_id\": 20,
    \"bb_width_cm\": 0,
    \"bb_depth_cm\": 0,
    \"bb_height_cm\": 0,
    \"fr_width_cm\": 0,
    \"fr_height_cm\": 0,
    \"queen\": {
        \"race_id\": 17,
        \"birth_date\": \"2025-02-17T13:45:54\",
        \"name\": \"laborum\",
        \"description\": \"iste\",
        \"line\": \"neque\",
        \"tree\": \"sed\",
        \"color\": \"s\",
        \"clipped\": 12,
        \"fertilized\": 4
    },
    \"timezone\": \"America\\/Chihuahua\"
}"
const url = new URL(
    "https://api.beep.nl/api/hives"
);

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

let body = {
    "name": "optio",
    "location_id": 7,
    "brood_layers": 0,
    "honey_layers": 0,
    "frames": 0,
    "order": 2,
    "layers": [
        "aut"
    ],
    "color": "kbljro",
    "hive_type_id": 20,
    "bb_width_cm": 0,
    "bb_depth_cm": 0,
    "bb_height_cm": 0,
    "fr_width_cm": 0,
    "fr_height_cm": 0,
    "queen": {
        "race_id": 17,
        "birth_date": "2025-02-17T13:45:54",
        "name": "laborum",
        "description": "iste",
        "line": "neque",
        "tree": "sed",
        "color": "s",
        "clipped": 12,
        "fertilized": 4
    },
    "timezone": "America\/Chihuahua"
};

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 dD4g5bcEVh1k6vaa863ZPfe" \
    --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 dD4g5bcEVh1k6vaa863ZPfe",
    "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 vc6d6eDb5a4fkP8ZagE3Vh1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"name\": \"alias\",
    \"location_id\": 13,
    \"brood_layers\": 0,
    \"honey_layers\": 0,
    \"frames\": 0,
    \"order\": 6,
    \"layers\": [
        \"unde\"
    ],
    \"color\": \"fiwrj\",
    \"hive_type_id\": 20,
    \"bb_width_cm\": 0,
    \"bb_depth_cm\": 0,
    \"bb_height_cm\": 0,
    \"fr_width_cm\": 0,
    \"fr_height_cm\": 0,
    \"queen\": {
        \"race_id\": 7,
        \"birth_date\": \"2025-02-17T13:45:54\",
        \"name\": \"ratione\",
        \"description\": \"nam\",
        \"line\": \"consectetur\",
        \"tree\": \"illo\",
        \"color\": \"yjz\",
        \"clipped\": 16,
        \"fertilized\": 3
    },
    \"timezone\": \"America\\/Edmonton\"
}"
const url = new URL(
    "https://api.beep.nl/api/hives/1"
);

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

let body = {
    "name": "alias",
    "location_id": 13,
    "brood_layers": 0,
    "honey_layers": 0,
    "frames": 0,
    "order": 6,
    "layers": [
        "unde"
    ],
    "color": "fiwrj",
    "hive_type_id": 20,
    "bb_width_cm": 0,
    "bb_depth_cm": 0,
    "bb_height_cm": 0,
    "fr_width_cm": 0,
    "fr_height_cm": 0,
    "queen": {
        "race_id": 7,
        "birth_date": "2025-02-17T13:45:54",
        "name": "ratione",
        "description": "nam",
        "line": "consectetur",
        "tree": "illo",
        "color": "yjz",
        "clipped": 16,
        "fertilized": 3
    },
    "timezone": "America\/Edmonton"
};

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 8vc6kaa5dZ4e6gVhbEP1Df3" \
    --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 8vc6kaa5dZ4e6gVhbEP1Df3",
    "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 5aDfEevP8h346Zgabc1Vk6d" \
    --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 5aDfEevP8h346Zgabc1Vk6d",
    "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 D48ga3ke5bVZEda6h6c1vfP" \
    --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 D48ga3ke5bVZEda6h6c1vfP",
    "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 Zb1hefV6v53dE6agk4acP8D" \
    --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 Zb1hefV6v53dE6agk4acP8D",
    "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 D65E8fegPacva1Vb43Z6khd" \
    --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 D65E8fegPacva1Vb43Z6khd",
    "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 Dd1v36hZVagEa6e584bPfck" \
    --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 Dd1v36hZVagEa6e584bPfck",
    "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 Z84hdf31bE6gVaeD5cavkP6" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"hive_ids\": [
        \"neque\"
    ],
    \"search\": \"test\",
    \"id\": 23,
    \"start\": \"2024-02-14 00:00:00\",
    \"end\": \"2024-02-18 00:00:00\"
}"
const url = new URL(
    "https://api.beep.nl/api/inspections"
);

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

let body = {
    "hive_ids": [
        "neque"
    ],
    "search": "test",
    "id": 23,
    "start": "2024-02-14 00:00:00",
    "end": "2024-02-18 00:00:00"
};

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/inspections

Body Parameters

hive_ids  string[] optional  

Only show inspections connected to hive_ids.

search  string optional  

Filter on text inside notes, reminder, created_at, reminder_date, inspection item names/values.

id  integer optional  

Filter on one specific inspection id if filled.

start  string optional  

Date >= (YYYY-MM-DD HH:mm:ss) to filter inspections from.

end  string optional  

Date <= (YYYY-MM-DD HH:mm:ss) to filter inspections to.

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

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

let body = {
    "id": 20
};

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

const headers = {
    "Authorization": "Bearer gk6ec3VbfZ8vh64DadEP1a5",
    "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/alias" \
    --header "Authorization: Bearer E6hvg8b5akP43Df1cZeda6V" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"search\": \"15\",
    \"impression\": \"2,3\",
    \"attention\": true,
    \"reminder\": true,
    \"start\": \"2024-02-14 00:00:00\",
    \"end\": \"2024-02-18 00:00:00\"
}"
const url = new URL(
    "https://api.beep.nl/api/inspections/hive/alias"
);

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

let body = {
    "search": "15",
    "impression": "2,3",
    "attention": true,
    "reminder": true,
    "start": "2024-02-14 00:00:00",
    "end": "2024-02-18 00:00:00"
};

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

Body Parameters

search  string optional  

Filter inspections on text inside notes, reminder, created_at, reminder_date, inspection item names/values. Example: test bodyParam id integer If provided, select single inspection.

impression  string optional  

Filter by one or more impression values 1-3 (smileys). Default: null.

attention  boolean optional  

Filter by having attention set (0-1). Default: null.

reminder  boolean optional  

Filter by having a reminder set (0-1). Default: null.

start  string optional  

Date >= (YYYY-MM-DD HH:mm:ss) to filter inspections from. Default: null.

end  string optional  

Date <= (YYYY-MM-DD HH:mm:ss) to filter inspections to. Default: null.

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 h4d6c6DE83ae15vZfabkVgP" \
    --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\": 11,
    \"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 h4d6c6DE83ae15vZfabkVgP",
    "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": 11,
    "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 ZPk6edg61cvh5faab3EV8D4" \
    --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 ZPk6edg61cvh5faab3EV8D4",
    "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 Dd3e1PVgaf56ha8vkZ4bE6c" \
    --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 Dd3e1PVgaf56ha8vkZ4bE6c",
    "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 kePVcvdD4fh3Ea6a81b65Zg" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"name\": \"nulla\",
    \"hive_type_id\": 1
}"
const url = new URL(
    "https://api.beep.nl/api/locations"
);

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

let body = {
    "name": "nulla",
    "hive_type_id": 1
};

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 PkZehf85aV63adE4cvgb1D6" \
    --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 PkZehf85aV63adE4cvgb1D6",
    "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 6c85g31hbaf4EkVad6ZeDvP" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"name\": \"est\",
    \"hive_type_id\": 1
}"
const url = new URL(
    "https://api.beep.nl/api/locations/2"
);

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

let body = {
    "name": "est",
    "hive_type_id": 1
};

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 f8kbPgh643Z51Vad6EaDcev" \
    --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 f8kbPgh643Z51Vad6EaDcev",
    "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=sed" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"key\\/data\": \"voluptas\"
}"
const url = new URL(
    "https://api.beep.nl/api/sensors"
);

const params = {
    "key/data": "sed",
};
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": "voluptas"
};

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\": \"id\",
    \"payload_raw\": \"officiis\",
    \"payload_fields\": \"in\",
    \"DevEUI_uplink\": \"in\"
}"
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": "id",
    "payload_raw": "officiis",
    "payload_fields": "in",
    "DevEUI_uplink": "in"
};

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 (500):

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

{
    "message": "Server Error"
}
 

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=mollitia" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"key\\/data\": \"eum\"
}"
const url = new URL(
    "https://api.beep.nl/api/sensors_auth"
);

const params = {
    "key/data": "mollitia",
};
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": "eum"
};

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\": \"aperiam\",
    \"payload_raw\": \"sed\",
    \"payload_fields\": \"totam\",
    \"DevEUI_uplink\": \"praesentium\"
}"
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": "aperiam",
    "payload_raw": "sed",
    "payload_fields": "totam",
    "DevEUI_uplink": "praesentium"
};

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 kfegda8b41cV5a3DEv6Ph6Z" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"id\": 2,
    \"key\": \"omnis\",
    \"hive_id\": 6,
    \"start\": \"2020-05-27 16:16\",
    \"end\": \"2020-05-30 00:00\",
    \"index\": 8,
    \"interval\": \"dolores\",
    \"timeGroup\": \"et\",
    \"names\": \"omnis\",
    \"weather\": 1,
    \"clean_weight\": 8,
    \"timezone\": \"Europe\\/Amsterdam\",
    \"relative_interval\": 14
}"
const url = new URL(
    "https://api.beep.nl/api/sensors/measurements"
);

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

let body = {
    "id": 2,
    "key": "omnis",
    "hive_id": 6,
    "start": "2020-05-27 16:16",
    "end": "2020-05-30 00:00",
    "index": 8,
    "interval": "dolores",
    "timeGroup": "et",
    "names": "omnis",
    "weather": 1,
    "clean_weight": 8,
    "timezone": "Europe\/Amsterdam",
    "relative_interval": 14
};

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

Example response (500):

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

{
    "message": "Server Error"
}
 

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 a4bfd1vPDaZhc6V3e8Ek5g6" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"key\": \"omnis\",
    \"id\": 19,
    \"hive_id\": 20
}"
const url = new URL(
    "https://api.beep.nl/api/sensors/lastvalues"
);

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

let body = {
    "key": "omnis",
    "id": 19,
    "hive_id": 20
};

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

Example response (500):

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

{
    "message": "Server Error"
}
 

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 h8b6k4Z5ad1vP3eEg6VafcD" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"key\": \"accusantium\",
    \"id\": 15,
    \"hive_id\": 20
}"
const url = new URL(
    "https://api.beep.nl/api/sensors/lastweight"
);

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

let body = {
    "key": "accusantium",
    "id": 15,
    "hive_id": 20
};

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

Example response (500):

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

{
    "message": "Server Error"
}
 

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\": 142125817.9803
}"
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": 142125817.9803
};

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 (500):

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

{
    "message": "Server Error"
}
 

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=3&save=1&fill=17&log_size_bytes=19" \
    --header "Authorization: Bearer 5ba8EZk4dDvh1fPVecg63a6" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"id\": 6,
    \"hardware_id\": \"exercitationem\",
    \"key\": \"et\",
    \"data\": \"fugit\",
    \"file\": \"qui\",
    \"show\": false,
    \"save\": true,
    \"fill\": false,
    \"log_size_bytes\": 8
}"
const url = new URL(
    "https://api.beep.nl/api/sensors/flashlog"
);

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

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

let body = {
    "id": 6,
    "hardware_id": "exercitationem",
    "key": "et",
    "data": "fugit",
    "file": "qui",
    "show": false,
    "save": true,
    "fill": false,
    "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 target. (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/delectus/pl/odit" \
    --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/delectus/pl/odit"
);

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

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

Example response (500):

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

{
    "message": "Server Error"
}
 

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 6gPc1D4a8Vk5b6EZhfadve3" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"id\": 2,
    \"key\": \"saepe\",
    \"hive_id\": 4,
    \"start\": \"2020-05-27 16:16\",
    \"end\": \"2020-05-30 00:00\",
    \"index\": 15,
    \"interval\": \"beatae\",
    \"timeGroup\": \"placeat\",
    \"names\": \"ut\",
    \"weather\": 1,
    \"timezone\": \"Europe\\/Amsterdam\",
    \"relative_interval\": 2
}"
const url = new URL(
    "https://api.beep.nl/api/sensors/comparemeasurements"
);

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

let body = {
    "id": 2,
    "key": "saepe",
    "hive_id": 4,
    "start": "2020-05-27 16:16",
    "end": "2020-05-30 00:00",
    "index": 15,
    "interval": "beatae",
    "timeGroup": "placeat",
    "names": "ut",
    "weather": 1,
    "timezone": "Europe\/Amsterdam",
    "relative_interval": 2
};

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

Example response (500):

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

{
    "message": "Server Error"
}
 

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 EfvZe3h56a4cDVkP86agd1b" \
    --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 EfvZe3h56a4cDVkP86agd1b",
    "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/14/add_consent" \
    --header "Authorization: Bearer fbv63Dk6Zcd5Veg1a4Ea8hP" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"location_ids\": [
        \"debitis\"
    ],
    \"hive_ids\": [
        \"quae\"
    ],
    \"device_ids\": [
        \"harum\"
    ]
}"
const url = new URL(
    "https://api.beep.nl/api/research/14/add_consent"
);

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

let body = {
    "location_ids": [
        "debitis"
    ],
    "hive_ids": [
        "quae"
    ],
    "device_ids": [
        "harum"
    ]
};

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 6P6ec5vZ13dghf8DVka4bEa" \
    --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 6P6ec5vZ13dghf8DVka4bEa",
    "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/beatae" \
    --header "Authorization: Bearer aa4f8VvD66PZgceh13bd5Ek" \
    --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/beatae"
);

const headers = {
    "Authorization": "Bearer aa4f8VvD66PZgceh13bd5Ek",
    "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/ut" \
    --header "Authorization: Bearer avEaZ5cVg46eP8fDk1h6b3d" \
    --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/ut"
);

const headers = {
    "Authorization": "Bearer avEaZ5cVg46eP8fDk1h6b3d",
    "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 D6gcV351ea8hfP4ZEbdva6k" \
    --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 D6gcV351ea8hfP4ZEbdva6k",
    "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/placeat" \
    --header "Authorization: Bearer V4Dv16f3eg85aZhkaE6dPbc" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/researchdata/placeat"
);

const headers = {
    "Authorization": "Bearer V4Dv16f3eg85aZhkaE6dPbc",
    "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 5d64aDf8PEV3bc1hagZekv6" \
    --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\": \"non\",
    \"decimals\": 1,
    \"interval\": \"5m\",
    \"calculation\": \"MEAN\",
    \"calculation_prop\": \"DERIVATIVE\",
    \"limit\": 10,
    \"precision\": \"rfc3339\",
    \"index\": 0,
    \"timezone\": \"Asia\\/Almaty\"
}"
const url = new URL(
    "https://api.beep.nl/api/researchdata/1/user/1/inspections"
);

const headers = {
    "Authorization": "Bearer 5d64aDf8PEV3bc1hagZekv6",
    "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": "non",
    "decimals": 1,
    "interval": "5m",
    "calculation": "MEAN",
    "calculation_prop": "DERIVATIVE",
    "limit": 10,
    "precision": "rfc3339",
    "index": 0,
    "timezone": "Asia\/Almaty"
};

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 61PD8ZaEf36d5Ve4ckahbgv" \
    --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\": \"dolorem\",
    \"decimals\": 1,
    \"interval\": \"5m\",
    \"calculation\": \"MAX\",
    \"calculation_prop\": \"5\",
    \"limit\": 500,
    \"precision\": \"rfc3339\",
    \"index\": 0,
    \"timezone\": \"Europe\\/Amsterdam\",
    \"output_csv_links\": true
}"
const url = new URL(
    "https://api.beep.nl/api/researchdata/1/data/inspections"
);

const headers = {
    "Authorization": "Bearer 61PD8ZaEf36d5Ve4ckahbgv",
    "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": "dolorem",
    "decimals": 1,
    "interval": "5m",
    "calculation": "MAX",
    "calculation_prop": "5",
    "limit": 500,
    "precision": "rfc3339",
    "index": 0,
    "timezone": "Europe\/Amsterdam",
    "output_csv_links": true
};

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

Example response (500):

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

{
    "message": "Server Error"
}
 

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.

output_csv_links  boolean optional  

Optionally provide true if you want the data to be returned as an array of CSV files in stead of JSON data.

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 a1c65VdgPhfbekD463EvaZ8" \
    --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 a1c65VdgPhfbekD463EvaZ8",
    "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 65EZak6vcaP1gbD38hfV4ed" \
    --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 65EZak6vcaP1gbD38hfV4ed",
    "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 V5Dkbf66gc1d8Pv3Ze4aahE" \
    --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 V5Dkbf66gc1d8Pv3Ze4aahE",
    "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 4f58h6a163cbkPdgaVEZveD" \
    --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 4f58h6a163cbkPdgaVEZveD",
    "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 6PZvhaDbe84E6kg5cfV31da" \
    --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 6PZvhaDbe84E6kg5cfV31da",
    "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 acbPZ6dvha3EVf1ke56Dg48" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"device_id\": 5,
    \"hardware_id\": \"labore\",
    \"device_hardware_id\": \"architecto\",
    \"input_measurement_abbreviation\": \"et\",
    \"limit\": 3
}"
const url = new URL(
    "https://api.beep.nl/api/sensordefinition"
);

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

let body = {
    "device_id": 5,
    "hardware_id": "labore",
    "device_hardware_id": "architecto",
    "input_measurement_abbreviation": "et",
    "limit": 3
};

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 6a5fVP6bEegaDkZh143dv8c" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"name\": \"nihil\",
    \"inside\": false,
    \"offset\": 4.8005514,
    \"multiplier\": 77.910918,
    \"input_measurement_id\": 5,
    \"input_measurement_abbreviation\": \"w_v\",
    \"output_measurement_id\": 6,
    \"output_measurement_abbreviation\": \"t_i\",
    \"device_id\": 9,
    \"hardware_id\": \"deleniti\",
    \"device_hardware_id\": \"eius\"
}"
const url = new URL(
    "https://api.beep.nl/api/sensordefinition"
);

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

let body = {
    "name": "nihil",
    "inside": false,
    "offset": 4.8005514,
    "multiplier": 77.910918,
    "input_measurement_id": 5,
    "input_measurement_abbreviation": "w_v",
    "output_measurement_id": 6,
    "output_measurement_abbreviation": "t_i",
    "device_id": 9,
    "hardware_id": "deleniti",
    "device_hardware_id": "eius"
};

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/est" \
    --header "Authorization: Bearer a4c8bk6gv6h5DaZPVE1df3e" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"device_id\": 6,
    \"hardware_id\": \"consequuntur\",
    \"device_hardware_id\": \"alias\"
}"
const url = new URL(
    "https://api.beep.nl/api/sensordefinition/est"
);

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

let body = {
    "device_id": 6,
    "hardware_id": "consequuntur",
    "device_hardware_id": "alias"
};

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/eveniet" \
    --header "Authorization: Bearer 1vacdPV4ak63g5EZ8f6hebD" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"device_id\": 3,
    \"hardware_id\": \"ea\",
    \"device_hardware_id\": \"libero\"
}"
const url = new URL(
    "https://api.beep.nl/api/sensordefinition/eveniet"
);

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

let body = {
    "device_id": 3,
    "hardware_id": "ea",
    "device_hardware_id": "libero"
};

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/eligendi" \
    --header "Authorization: Bearer e6d6E1vVgabZ5fkc4a38PhD" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"device_id\": 3,
    \"hardware_id\": \"asperiores\",
    \"device_hardware_id\": \"nulla\"
}"
const url = new URL(
    "https://api.beep.nl/api/sensordefinition/eligendi"
);

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

let body = {
    "device_id": 3,
    "hardware_id": "asperiores",
    "device_hardware_id": "nulla"
};

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 66gfc3vD1Pbd4hE8aZk5Vae" \
    --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 66gfc3vD1Pbd4hE8aZk5Vae",
    "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=magni&flat=1&order=" \
    --header "Authorization: Bearer f8V3ZPcb6ka6d5D1avE4heg" \
    --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": "magni",
    "flat": "1",
    "order": "0",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer f8V3ZPcb6ka6d5D1avE4heg",
    "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 3afb8vD5d1aegPZch4VE6k6" \
    --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 3afb8vD5d1aegPZch4VE6k6",
    "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 16hc4akgbEDf36av85eVPZd" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"locale\": \"eaque\"
}"
const url = new URL(
    "https://api.beep.nl/api/userlocale"
);

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

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

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\": \"voluptas\",
    \"router_link\": \"voluptatem\",
    \"hive_id\": 12,
    \"action_id\": 11
}"
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": "voluptas",
    "router_link": "voluptatem",
    "hive_id": 12,
    "action_id": 11
};

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/18" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/hive-tags/18"
);

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/4" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en" \
    --data "{
    \"tag\": \"est\",
    \"router_link\": \"delectus\",
    \"hive_id\": 7,
    \"action_id\": 4
}"
const url = new URL(
    "https://api.beep.nl/api/hive-tags/4"
);

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

let body = {
    "tag": "est",
    "router_link": "delectus",
    "hive_id": 7,
    "action_id": 4
};

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/8" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Accept-language: en"
const url = new URL(
    "https://api.beep.nl/api/hive-tags/8"
);

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.