Token identification endpoint

Updated: 28-6-2023
Note

The AI nature identification service is a paid annual subscription service for organisations. Tokens are provided to subscribers. If you want to subscribe please contact us via https://ainature.eu/contact/.

Description

The token identification endpoint can be accessed in one of the following ways.

Example request

Get test image

Requires curl and jq.

curl \
    -X "POST" \
    -F "image=@buteo2.jpg" \
    -u "<username>:<password>" \
    "https://multi-source.identify.biodiversityanalysis.eu/v2/observation/identify/token/<token>" |\
jq

Requires the Python requests library. Available with pip install requests.

import json

import requests
from requests.auth import HTTPBasicAuth


def example_request():
    url = (
        "https://multi-source.identify."
        "biodiversityanalysis.eu/v2/"
        "observation/identify/token/<token>"
    )
    image = "buteo2.jpg"
    auth = HTTPBasicAuth(
        username="<username>",
        password="<password>",
    )

    with open(image, "rb") as image:
        response = requests.post(
            url=url,
            files={"image": image},
            auth=auth,
        )
    return response.json()


if __name__ == "__main__":
    json_response = example_request()
    print(json.dumps(json_response, indent=2))
Note

Be sure to replace <username>, <password> and <token> with their respective values.

Example response

{
  "api_implementation": {
    "tag": "api-v2:2.0.0-20230424",
    "version": "49476035"
  },
  "generated_by": {
    "datetime": "2023-06-20T13:48:01.965512",
    "parameters": {},
    "tag": "algorithm=msm-eur:1.1-20230619,api=api-v2:2.0.0-20230424",
    "version": "algorithm=df722733dc3eb9647870d237c918cecd0d8aabeb,api=49476035"
  },
  "identification": {
    "image": {
      "confidence": "confident"
    }
  },
  "links": {
    "taxa": {
      "url": "v2/taxa/main_order"
    },
    "taxa_with_filter": {
      "url": "v2/taxa/main_order?id={taxon_id}"
    }
  },
  "media": [
    {
      "filename": "buteo2",
      "id": "image0"
    }
  ],
  "model_implementation": {
    "algorithm_tag": "msm-eur:1.1-20230619",
    "tag": "main_order",
    "version": "df722733dc3eb9647870d237c918cecd0d8aabeb"
  },
  "predictions": [
    {
      "region_group_id": "image0?region=full",
      "taxa": {
        "items": [
          {
            "probability": 0.999987,
            "scientific_name": "Buteo buteo",
            "scientific_name_id": "GBIF:2480537"
          },
          {
            "probability": 1e-5,
            "scientific_name": "Falco rusticolus",
            "scientific_name_id": "GBIF:8069880"
          },
          {
            "probability": 1e-6,
            "scientific_name": "Buteo buteo insularum",
            "scientific_name_id": "GBIF:5844379"
          },
          {
            "probability": 1e-6,
            "scientific_name": "Buteo buteo buteo",
            "scientific_name_id": "GBIF:7191157"
          },
          {
            "probability": 0.0,
            "scientific_name": "Accipiter gentilis",
            "scientific_name_id": "GBIF:2480589"
          },
          {
            "probability": 0.0,
            "scientific_name": "Haliaeetus albicilla",
            "scientific_name_id": "GBIF:2480449"
          },
          {
            "probability": 0.0,
            "scientific_name": "Buteo buteo vulpinus",
            "scientific_name_id": "GBIF:5844375"
          },
          {
            "probability": 0.0,
            "scientific_name": "Anser albifrons albifrons",
            "scientific_name_id": "GBIF:7191107"
          },
          {
            "probability": 0.0,
            "scientific_name": "Sorex araneus/coronatus",
            "scientific_name_id": "NIA:fb23df20659b7b164bb3995b853b26931f80ae87f0b2edab4f0e51d7"
          },
          {
            "probability": 0.0,
            "scientific_name": "Podiceps nigricollis",
            "scientific_name_id": "GBIF:2482065"
          }
        ],
        "type": "multiclass"
      }
    }
  ],
  "region_groups": [
    {
      "id": "image0?region=full",
      "individual_id": "individual0",
      "regions": [
        {
          "box": {
            "x1": 0.166875,
            "x2": 0.833125,
            "y1": 0.0,
            "y2": 1.0
          },
          "id": "image0?region=full",
          "media_id": "image0"
        }
      ]
    }
  ]
}