How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

FinBIF Laji API (Finnish Biodiversity Information Facility)

The largest contract the University of Helsinki operates: 177 paths and 239 component schemas over Finnish species, taxonomy, occurrence records, collections, image bank and data requests. Operated by Luomus, the Finnish Museum of Natural History, which is an institute of the University — the FinBIF privacy policy names "University of Helsinki, Finnish Museum of Natural History" (Business ID 0313471-7) as the registrar. It is also the only surface in the estate with a genuinely self-service credential: POST an email address to /api-user and an access token is mailed back, no institutional affiliation required.

FinBIF Laji API (Finnish Biodiversity Information Facility) is one of 26 APIs that University of Helsinki publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 JSON Schema definition.

Tagged areas include Biodiversity, Research Infrastructure, Species, Open Data, and Occurrence Records. The published artifact set on APIs.io includes an OpenAPI specification, an API reference, API documentation, and 1 JSON Schema.

This API exposes 225 operations across 177 paths, organized into 37 resource areas, and defines 239 schemas. It is described by OpenAPI 3.0.0, at version 1.

Requests are made against a single base URL, https://api.laji.fi.

225 operations 177 paths 239 schemas 17 DELETE137 GET56 POST15 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.0
API Version
1
Base URL
https://api.laji.fi
Authentication
HTTP Bearer, API Key, API Key
Resource Areas
37

Authentication & Security 3

FinBIF Laji API (Finnish Biodiversity Information Facility) declares 3 security schemes for authenticating requests. It accepts HTTP bearer tokens (JWT) (Access token). An API key is passed in the header as Accept-Language (Lang). An API key is passed in the header as Person-Token (Person token).

  • Access token — Access token
  • Lang — Sets the 'Accept-Language' header. One of 'fi', 'sv,' 'en'. Defaults to 'en'.

Paths & Operations 225

Across 177 paths, the API surfaces 225 operations — 17 DELETE, 137 GET, 56 POST, 15 PUT. They span 37 resource areas, including Forms, Person, Authentication event, Notifications, Metadata, Collections, JSON-LD context, Form Permissions, and 29 more. Each is listed below with its method, path, parameters, and response codes.

Forms 7
GET
/forms/{id}/participants
Get participants of a form. Only for form admins.
FormsController_getParticipants 2 params → 200400401403404406422500
GET
/forms
Get a page of forms
FormsController_getListing → 200400401403404406422500
POST
/forms
Create a new form
FormsController_create body → 201400401403404406422500
GET
/forms/{id}
Get a form by id
FormsController_getOne 3 params → 200400401403404406422500
PUT
/forms/{id}
Update an existing form
FormsController_update 1 param body → 200400401403404406422500
DELETE
/forms/{id}
Delete a form
FormsController_remove 1 param → 200400401403404406422500
POST
/forms/transform
Get preview of form transformed from json format to schema format
FormsController_transform body → 201400401403404406422500
Person 10
GET
/person/profile
Get profile
PersonsController_findProfileByPersonToken 1 param → 200400401403404406422500
POST
/person/profile
Create profile
PersonsController_createProfile 1 param body → 201400401403404406422500
PUT
/person/profile
Update profile
PersonsController_updateProfile 1 param body → 200400401403404406422500
GET
/person/{id}
Find person by user id (this will not include email)
PersonsController_findPersonByPersonId 1 param → 200400401403404406422500
GET
/person
Find person by person token
PersonsController_findPersonByToken 1 param → 200400401403404406422500
GET
/person/{id}/profile
Find profile by person id (this will only return small subset of the full profile)
PersonsController_getProfileByPersonId 1 param → 200400401403404406422500
PUT
/person/friends/{id}
Accept friend request
PersonsController_acceptFriendRequest 2 params → 200400401403404406422500
DELETE
/person/friends/{id}
Remove a friend request or a friend
PersonsController_removeFriend 3 params → 200400401403404406422500
POST
/person/friends/{id}
Request person to be your friend
PersonsController_addFriendRequest 2 params → 201400401403404406422500
GET
/person/exists-by-email/{email}
Check if given email has an existing account
PersonsController_checkExistsByEmail 1 param → 204400401403404406422500
Authentication event 2
GET
/authentication-event
Information about the authentication event of a person token
PersonTokenController_getInfo 1 param → 200400401403404406422500
DELETE
/authentication-event
Delete authentication session of a person token
PersonTokenController_delete 1 param → 204400401403404406422500
Notifications 3
GET
/notifications
NotificationsController_getPage 5 params → 200400401403404406422500
PUT
/notifications/{id}
NotificationsController_update 2 params body → 200400401403404406422500
DELETE
/notifications/{id}
NotificationsController_delete 2 params → 200400401403404406422500
Metadata 9
GET
/metadata/classes
Get all classes
MetadataController_getClasses → 200400401403404406422500
GET
/metadata/classes/{class}
Get a class by name
MetadataController_getClass 1 param → 200400401403404406422500
GET
/metadata/classes/{class}/properties
Get class' properties by name
MetadataController_getClassProperty 1 param → 200400401403404406422500
GET
/metadata/properties
Get all properties
MetadataController_getProperties → 200400401403404406422500
GET
/metadata/properties/{property}
Get a property by name
MetadataController_getProperty 1 param → 200400401403404406422500
GET
/metadata/properties/{property}/alt
Get property's alt by property name
MetadataController_getPropertyAlt 1 param → 200400401403404406422500
GET
/metadata/alts
Get all alts as a lookup object where keys are property names and values are alts
MetadataController_getAltsLookup → 200400401403404406422500
GET
/metadata/alts-list
Get all alts as a list
MetadataController_getAltsList → 200400401403404406422500
GET
/metadata/alts/{alt}
Get alt values by alt name
MetadataController_getAlt 1 param → 200400401403404406422500
Collections 5
GET
/collections
Get a page of all collections
CollectionsController_getPage 4 params → 200400401403404406422500
GET
/collections/roots
Get a page of all root collections
CollectionsController_findRoots 2 params → 200400401403404406422500
GET
/collections/tree
Get collection tree
CollectionsController_getTree → 200400401403404406422500
GET
/collections/{id}
Get collection by id
CollectionsController_get 1 param → 200400401403404406422500
GET
/collections/{id}/children
Get child collections
CollectionsController_findChildren 3 params → 200400401403404406422500
JSON-LD context 1
GET
/context/{context}
JSON-LD context
JsonLdController_getContext 1 param → 200400401403404406422500
Form Permissions 5
GET
/form-permissions
Get form permissions for a person
FormPermissionsController_getPermissions 1 param → 200400401403404406422500
GET
/form-permissions/{collectionID}
Get form permissions for a person, and the form information about whether it has MHL.restrictAccess or MHL.hasAdmins
FormPermissionsController_getPermissionsByCollectionID 2 params → 200400401403404406422500
POST
/form-permissions/{collectionID}
Request access to form
FormPermissionsController_requestAccess 2 params → 201400401403404406422500
PUT
/form-permissions/{collectionID}/{personID}
Accept access to form
FormPermissionsController_acceptAccess 4 params → 200400401403404406422500
DELETE
/form-permissions/{collectionID}/{personID}
Remove access to form
FormPermissionsController_revokeAccess 3 params → 200400401403404406422500
Documents 11
POST
/documents/batch
Starts a batch job that validates the documents. Use the returned job id to get the status of the job with GET /documents/:jobID, or create the documents with POST /documents/batch/:jobID
DocumentsController_startBatchJob 1 param body → 200400401403404406422500
GET
/documents/batch/{jobID}
Get a batch job's status. Once ready, the response will include properties 'documents' and 'errors', where the errors match the documents array indices, null meaning valid and an object.
DocumentsController_getBatchJobStatus 2 params → 200400401403404406422500
POST
/documents/batch/{jobID}
Completes a given batch job by sending them to the store/warehouse. The batch job must be already validated.
DocumentsController_completeBatchJob 4 params → 200400401403404406422500
POST
/documents/validate
Validate a document
DocumentsController_validate 5 params body → 204400401403404406422500
GET
/documents/count/byYear
Get count of documents by type (currently just "byYear")
DocumentsController_getCountByYear 4 params → 200400401403404406422500
GET
/documents/stats
Get the median date of documents for a named place
DocumentsController_getStatistics 1 param → 200400401403404406422500
GET
/documents
Get a page of documents
DocumentsController_getPage 11 params → 200400401403404406422500
POST
/documents
Create a new document
DocumentsController_create 1 param body → 201400401403404406422500
GET
/documents/{id}
Get a document
DocumentsController_get 2 params → 200400401403404406422500
PUT
/documents/{id}
Update an existing document
DocumentsController_update 3 params body → 200400401403404406422500
DELETE
/documents/{id}
Delete a document
DocumentsController_delete 2 params → 200400401403404406422500
Named places 7
POST
/named-places/{id}/reservation
Reserve an existing named place
NamedPlacesController_reserve 4 params → 201400401403404406422500
DELETE
/named-places/{id}/reservation
Cancel a reservation for a named place
NamedPlacesController_cancelReservation 2 params → 200400401403404406422500
GET
/named-places
Get a page of named places
NamedPlacesController_getPage 12 params → 200400401403404406422500
POST
/named-places
Create a new named place
NamedPlacesController_create 1 param body → 201400401403404406422500
GET
/named-places/{id}
Get a named place by id
NamedPlacesController_get 2 params → 200400401403404406422500
PUT
/named-places/{id}
Update an existing named place
NamedPlacesController_update 2 params body → 200400401403404406422500
DELETE
/named-places/{id}
Delete a named place
NamedPlacesController_delete 2 params → 200400401403404406422500
Taxa 20
GET
/taxa/search
Search taxons by name
TaxaController_search 13 params → 200400401403404406422500
GET
/taxa
Get a page of taxa
TaxaController_getPage 15 params → 200400401403404406422500
POST
/taxa
Get a page of taxa with filters
TaxaController_getPageWithFilters 11 params body → 200400401403404406422500
GET
/taxa/aggregate
Get an aggregate of taxa
TaxaController_getAggregate 10 params → 200400401403404406422500
POST
/taxa/aggregate
Get an aggregate of taxa with filters
TaxaController_getAggregateWithFilters 6 params body → 200400401403404406422500
GET
/taxa/species
Get a page of species
TaxaController_getSpeciesPage 15 params → 200400401403404406422500
POST
/taxa/species
Get a page of species with filters
TaxaController_getSpeciesPageWithFilters 11 params body → 200400401403404406422500
GET
/taxa/species/aggregate
Get a species aggregate
TaxaController_getSpeciesAggregate 10 params → 200400401403404406422500
POST
/taxa/species/aggregate
Get a species aggregate with filters
TaxaController_getSpeciesAggregateWithFilters 10 params body → 200400401403404406422500
GET
/taxa/{id}
Get a taxon by id
TaxaController_get 6 params → 200400401403404406422500
GET
/taxa/{id}/children
Get children of a taxon
TaxaController_getTaxonChildren 14 params → 200400401403404406422500
POST
/taxa/{id}/children
Get children of a taxon
TaxaController_getTaxonChildrenWithFilters 14 params body → 201400401403404406422500
GET
/taxa/{id}/parents
Get parents of a taxon
TaxaController_getTaxonParents 14 params → 200400401403404406422500
POST
/taxa/{id}/parents
Get parents of a taxon
TaxaController_getTaxonParentsWithFilters 14 params body → 200400401403404406422500
GET
/taxa/{id}/species
Get species and subspecies of a taxon
TaxaController_getTaxonSpeciesPage 16 params → 200400401403404406422500
POST
/taxa/{id}/species
Get species and subspecies of a taxon with filters
TaxaController_getTaxonSpeciesPageWithFilters 16 params body → 200400401403404406422500
GET
/taxa/{id}/species/aggregate
Get an aggregate of species and subspecies of a taxon
TaxaController_getTaxonSpeciesAggregate 11 params → 200400401403404406422500
POST
/taxa/{id}/species/aggregate
Get an aggregate of species and subspecies of a taxon with filters
TaxaController_getTaxonSpeciesAggregateWithFilters 11 params body → 200400401403404406422500
GET
/taxa/{id}/descriptions
Get description texts of a taxon
TaxaController_getTaxonDescriptions 3 params → 200400401403404406422500
GET
/taxa/{id}/media
Get media objects of a taxon
TaxaController_getTaxonMedia 3 params → 200400401403404406422500
Areas 2
GET
/areas/{id}
Get an area by id
AreaController_get 1 param → 200400401403404406422500
GET
/areas
Get a page of areas
AreaController_getPage 4 params → 200400401403404406422500
API user 4
GET
/api-user
Returns info about an API user
ApiUsersController_getInfo 1 param → 200400401403404406422500
POST
/api-user
Register as an api user. The access token will be sent to your email. You can use this endpoint to create a new access token in case you forget it. Note that it won't delete existing tokens.
ApiUsersController_register body → 201400401403404406422500
PUT
/api-user/{email}
Assing a systemID for an access token. Available only for ICT admins.
ApiUsersController_update 2 params body → 200400401403404406422500
DELETE
/api-user/{accessToken}
Delete API user by access token
ApiUsersController_delete 1 param → 204400401403404406422500
Images 9
POST
/images
Upload image and get temporary id
ImagesController_upload 1 param body → 200400401403404406422500
GET
/images
Get a page of images. Private/protected images aren't included.
ImagesController_getPage 4 params → 200400401403404406422500
GET
/images/{id}
Get image by id
ImagesController_get 2 params → 200400401403404406422500
PUT
/images/{id}
Update image metadata
ImagesController_updateMetadata 2 params body → 200400401403404406422500
DELETE
/images/{id}
Delete image
ImagesController_delete 2 params → 204400401403404406422500
GET
/images/{id}/large.jpg
Fetch large image by id
ImagesController_findLarge 2 params → 200400401403404406422500
GET
/images/{id}/square.jpg
Fetch square thumbnail by id
ImagesController_findSquare 2 params → 200400401403404406422500
GET
/images/{id}/thumbnail.jpg
Fetch thumbnail by id
ImagesController_findThumbnail 2 params → 200400401403404406422500
POST
/images/{tempId}
Upload image metadata
ImagesController_uploadMetadata 2 params body → 201400401403404406422500
Audio 10
POST
/audio
Upload audio and get temporary id
AudioController_upload 1 param body → 200400401403404406422500
GET
/audio
Get a page of audio. Private/protected audio aren't included.
AudioController_getPage 4 params → 200400401403404406422500
GET
/audio/{id}
Get audio by id
AudioController_get 2 params → 200400401403404406422500
PUT
/audio/{id}
Update audio metadata
AudioController_updateMetadata 2 params body → 200400401403404406422500
DELETE
/audio/{id}
Delete audio
AudioController_delete 2 params → 204400401403404406422500
GET
/audio/{id}/mp3
Fetch mp3 by id
AudioController_getMp3 2 params → 200400401403404406422500
GET
/audio/{id}/thumbnail.jpg
Fetch thumbnail by id
AudioController_getThumbnail 2 params → 200400401403404406422500
GET
/audio/{id}/wav
Fetch wav by id
AudioController_getWav 2 params → 200400401403404406422500
GET
/audio/{id}/flac
Fetch flac by id
AudioController_findFlac 2 params → 200400401403404406422500
POST
/audio/{tempId}
Upload audio metadata
AudioController_uploadMetadata 2 params body → 201400401403404406422500
Annotations 4
GET
/annotations/tags
Fetch all annotation tags
AnnotationsController_getTags → 200400401403404406422500
GET
/annotations
Get a page of annotations
AnnotationsController_getPage 4 params → 200400401403404406422500
POST
/annotations
Create a new annotation
AnnotationsController_create 1 param body → 201400401403404406422500
DELETE
/annotations/{id}
Delete an annotation. It's a soft delete, a succesful delete returns the updated annotation
AnnotationsController_delete 2 params → 200400401403404406422500
Information 1
GET
/information/{id}
Get information page by id
InformationController_get 1 param → 200400401403404406422500
Checklist 2
GET
/checklists/{id}
Get a checklist by id
ChecklistController_get 1 param → 200400401403404406422500
GET
/checklists
Get a page of checklists
ChecklistController_getPage 4 params → 200400401403404406422500
Checklist Versions 2
GET
/checklist-versions/{id}
Get a checklist by id
ChecklistVersionsController_get 1 param → 200400401403404406422500
GET
/checklist-versions
Get a page of checklists
ChecklistVersionsController_getPage 3 params → 200400401403404406422500
Organizations 2
GET
/organizations
Get all organizations
OrganizationsController_getPage 3 params → 200400401403404406422500
GET
/organizations/{id}
Find an organization by id
OrganizationsController_get 1 param → 200400401403404406422500
Informal Taxon Groups 7
GET
/informal-taxon-groups
Get a page of informal taxon groups
InformalTaxonGroupsController_getPage 4 params → 200400401403404406422500
GET
/informal-taxon-groups/tree
Get the informal taxon group tree
InformalTaxonGroupsController_getTree → 200400401403404406422500
GET
/informal-taxon-groups/roots
Get first level of the informal taxon group tree
InformalTaxonGroupsController_getRoots → 200400401403404406422500
GET
/informal-taxon-groups/{id}
Get an informal taxon group by id
InformalTaxonGroupsController_get 1 param → 200400401403404406422500
GET
/informal-taxon-groups/{id}/children
Get an informal taxon group's immediate children
InformalTaxonGroupsController_getChildren 1 param → 200400401403404406422500
GET
/informal-taxon-groups/{id}/parent
Get informal taxon group's parents
InformalTaxonGroupsController_getParent 1 param → 200400401403404406422500
GET
/informal-taxon-groups/{id}/siblings
Get informal taxon group's siblings
InformalTaxonGroupsController_getSiblings 1 param → 200400401403404406422500
Sound identification 1
POST
/sound-identification
SoundIdentificationController_proxy → 201400401403404406422500
Autocomplete 3
GET
/autocomplete/persons
AutocompleteController_getPersons 2 params → 200400401403404406422500
GET
/autocomplete/friends
AutocompleteController_getFriends 3 params → 200400401403404406422500
GET
/autocomplete/taxa
AutocompleteController_getTaxa 13 params → 200400401403404406422500
Shorthands 4
GET
/shorthand/unit/trip-report
ShorthandController_getTripReportUnitShorthandAutocomplete 2 params → 200400401403404406422500
GET
/shorthand/unit/list
ShorthandController_getTripReportUnitListAutocomplete 1 param → 200400401403404406422500
GET
/shorthand/unit/line-transect
ShorthandController_getLineTransectUnitShorthandAutocomplete 1 param → 200400401403404406422500
GET
/shorthand/unit/water-bird-pair-count
ShorthandController_getWaterbirdPairCountUnitShorthandAutocomplete 2 params → 200400401403404406422500
Coordinates 1
POST
/coordinates/location
CoordinatesController_getLocationInformation body → 200400401403404406422500
Feedback 1
POST
/feedback
FeedbackController_send 1 param body → 204400401403404406422500
HTML To PDF 1
POST
/html-to-pdf
Convert HTML to PDF
HtmlToPdfController_htmlToPdf body → 200400401403404406422500
Logger 2
POST
/logger/{level}
Send a log event
LoggerController_log 1 param body → 204400401403404406422500
GET
/logger/status
Get info if there's log events
LoggerController_getStatus 1 param → 200400401403404406422500
Sources 2
GET
/sources/{id}
Get all sources
SourcesController_get 1 param → 200400401403404406422500
GET
/sources
Get a source by id
SourcesController_getPage 4 params → 200400401403404406422500
Red List Evaluation Groups 7
GET
/red-list-evaluation-groups
Get a page of red list evaluation groups
RedListEvaluationGroupsController_getPage 4 params → 200400401403404406422500
GET
/red-list-evaluation-groups/tree
Get the red list evaluation group tree
RedListEvaluationGroupsController_getTree → 200400401403404406422500
GET
/red-list-evaluation-groups/roots
Get first level of the red list evaluation group tree
RedListEvaluationGroupsController_getRoots → 200400401403404406422500
GET
/red-list-evaluation-groups/{id}
Get an red list evaluation group by id
RedListEvaluationGroupsController_get 1 param → 200400401403404406422500
GET
/red-list-evaluation-groups/{id}/children
Get an red list evaluation group's immediate children
RedListEvaluationGroupsController_getChildren 1 param → 200400401403404406422500
GET
/red-list-evaluation-groups/{id}/parent
Get red list evaluation group's parents
RedListEvaluationGroupsController_getParent 1 param → 200400401403404406422500
GET
/red-list-evaluation-groups/{id}/siblings
Get red list evaluation group's siblings
RedListEvaluationGroupsController_getSiblings 1 param → 200400401403404406422500
Login 2
GET
/login
Get temp token and login url to be used for the user authentication
LoginController_getTmpToken 1 param → 200400401403404406422500
POST
/login/check
Check if the user has authenticated
LoginController_checkTmpToken 1 param → 201400401403404406422500
Publications 1
GET
/publications/{id}
PublicationsController_get 1 param → 200400401403404406422500
News 2
GET
/news
Get a page of news
NewsController_getPage 3 params → 200400401403404406422500
GET
/news/{id}
Get news item
NewsController_get 1 param → 200400401403404406422500
Warehouse 24
POST
/warehouse/push
Load data to the Data Warehouse
1 param body → 200400403429500
DELETE
/warehouse/push
Report document deleted
2 params → 200400403429500
GET
/warehouse/query/document
Get single full document.
8 params → 200400403429500
GET
/warehouse/query/document/aggregate
Perform aggregate queries (group by) on documents.
41 params → 200400403429500
GET
/warehouse/query/gathering/aggregate
Perform aggregate queries (group by) on gatherings.
78 params → 200400403429500
GET
/warehouse/query/gathering/statistics
Perform aggregate queries on gatherings to PRIVATE side of the data warehouse.
24 params → 200400403429500
GET
/warehouse/query/unit/count
Get count of units using given filters
130 params → 200400403429500
GET
/warehouse/query/unit/list
Get list of units using given filters
136 params → 200400403429500
GET
/warehouse/query/unit/aggregate
Perform aggregate queries (group by) on units.
143 params → 200400403429500
GET
/warehouse/query/unit/statistics
Perform aggregate queries on units to PRIVATE side of the data warehouse.
40 params → 200400403429500
GET
/warehouse/query/annotation/list
Get list of annotations using given filters
140 params → 200400403429500
GET
/warehouse/query/annotation/aggregate
Perform aggregate queries (group by) on annotations.
143 params → 200400403429500
GET
/warehouse/query/unitMedia/list
Get list of unitmedias using given filters
136 params → 200400403429500
GET
/warehouse/query/sample/count
Get count of units using given filters
138 params → 200400403429500
GET
/warehouse/query/sample/list
Get list of samples using given filters
144 params → 200400403429500
GET
/warehouse/query/sample/aggregate
Perform aggregate queries (group by) on samples.
147 params → 200400403429500
GET
/warehouse/enumeration-labels
Enumeration labels
→ 200400403429500
GET
/warehouse/enumeration-labels/{enumeration}
Enumeration label
1 param → 200400403429500
GET
/warehouse/filters
Filter descriptions
→ 200400403429500
GET
/warehouse/filters/{filter}
Filter description
1 param → 200400403429500
GET
/warehouse/teamMember
Team members
1 param → 200400403429500
GET
/warehouse/teamMember/{id}
Team member
1 param → 200400403429500
POST
/warehouse/polygon
Polygon ids for polygon search
5 params → 200400403429500
GET
/warehouse/polygon/{id}
Polygon by polygonId
3 params → 200400403429500
Trait 44
GET
/trait/search
Search traits
3 params → 200400500
GET
/trait/search/download
Download traits
1 param → 200400500
GET
/trait/rows/{id}
Get trait input row by id
2 params → 200403404500
PUT
/trait/rows/{id}
Update an input row
2 params body → 200400403404422500
DELETE
/trait/rows/{id}
Delete an input row
2 params → 200403404422500
POST
/trait/rows/validate
Validate adding a new input row
1 param body → 200400403500
POST
/trait/rows/validate-update/{id}
Validate update of an input row
2 params body → 200400403404500
POST
/trait/rows/validate-delete/{id}
Validate deleting input row
2 params → 200403404500
POST
/trait/rows
Insert new input row
1 param body → 200400403422500
POST
/trait/rows/tsv2rows/validate
Validate TSV to InputRows conversion
2 params body → 200400500
POST
/trait/rows/tsv2rows
Convert TSV lines to InputRows
2 params body → 200400422500
POST
/trait/rows/multi/validate
Validate adding a batch of input rows
1 param body → 200400403500
POST
/trait/rows/multi
Store a batch of input rows
1 param body → 200400403422500
GET
/trait/rows/search
Search input rows
4 params → 200400403500
GET
/trait/datasets
Get all datasets
→ 200500
POST
/trait/datasets
Insert new dataset
1 param body → 200400403422500
GET
/trait/datasets/{id}
Get dataset by id
1 param → 200404500
PUT
/trait/datasets/{id}
Update a dataset
2 params body → 200400403404422500
DELETE
/trait/datasets/{id}
Delete a dataset
2 params → 200403404422500
POST
/trait/datasets/validate
Validate adding a new dataset
1 param body → 200400403500
POST
/trait/datasets/validate-update/{id}
Validate dataset update
2 params body → 200400403404500
POST
/trait/datasets/validate-delete/{id}
Validate deleting a dataset
2 params → 200403404500
GET
/trait/dataset-permissions
Get users all permissions (defined by personToken or - in absence - of the accesstoken)
1 param → 200403500
GET
/trait/dataset-permissions/{datasetId}
Get permissions of a dataset
1 param → 200404500
PUT
/trait/dataset-permissions/{datasetId}
Update permissions of a dataset
2 params body → 200400403404422500
POST
/trait/dataset-permissions/validate-update/{datasetId}
Validate permission submission
2 params body → 200400403404500
GET
/trait/trait-groups
Get all trait groups
→ 200500
POST
/trait/trait-groups
Insert new trait group
body → 200400403422500
GET
/trait/trait-groups/{id}
Get trait group by id
1 param → 200404500
PUT
/trait/trait-groups/{id}
Update a trait group
1 param body → 200400403404422500
DELETE
/trait/trait-groups/{id}
Delete a trait group
1 param → 200403404422500
POST
/trait/trait-groups/validate
Validate adding a new trait group
body → 200400403500
POST
/trait/trait-groups/validate-update/{id}
Validate trait group update
1 param body → 200400403404500
POST
/trait/trait-groups/validate-delete/{id}
Validate deleting a trait group
1 param → 200403404500
GET
/trait/traits
Get all traits
→ 200500
POST
/trait/traits
Insert new trait
body → 200400403422500
GET
/trait/traits/{id}
Get trait by id
1 param → 200404500
PUT
/trait/traits/{id}
Update a trait
1 param body → 200400403404422500
DELETE
/trait/traits/{id}
Delete a trait
1 param → 200403404422500
POST
/trait/traits/validate
Validate adding a new trait
body → 200400403500
POST
/trait/traits/validate-update/{id}
Validate trait update
1 param body → 200400403404500
POST
/trait/traits/validate-delete/{id}
Validate deleting a trait
1 param → 200403404500
GET
/trait/units
Get all units of measurement
→ 200500
GET
/trait/units/{id}
Get unit of measurement by id
1 param → 200404500
GeoConvert 6
POST
/geo-convert/convert-to-table
Convert GIS file to CSV table
convert_gis_to_table_convert_to_table_post body → 200400422500
POST
/geo-convert/
Convert uploaded ZIP file to a zipped GeoPackage
convert_with_file__post 3 params body → 200400422500
GET
/geo-convert/status/{conversion_id}
Check conversion status
get_status_status__conversion_id__get 1 param → 200404422500
GET
/geo-convert/health
Health check
health_check_health_get → 200
GET
/geo-convert/output/{conversion_id}
Download conversion output
get_output_output__conversion_id__get 2 params → 200400403404422
GET
/geo-convert/{dataset_id}
Convert ZIP or TSV file from the data warehouse to a zipped GeoPackage
convert_with_id__dataset_id__get 5 params → 200403404422500
Google Maps 1
GET
/google-maps/geocode/json
The Geocoding API is a service that provides geocoding and reverse geocoding of addresses.
geocode 3 params → 200

Schemas 239

The contract defines 239 schemas that model the data the API accepts and returns. The most detailed are store-unit (119 properties), LajiBackendTaxon (109 properties), store-gatheringFact (103 properties), store-gathering (98 properties). Each schema is shown below with its type and property counts.

Participant
object
7 properties 7 required
Person
object
15 properties 5 required
Profile
object
11 properties 10 required
PersonTokenInfo
object
3 properties 3 required
StoreDeleteResponse
object
1 property 1 required
MultiLangDto
string
MetadataClass
object
3 properties 2 required
Property
object
12 properties 11 required
Alt
object
2 properties 1 required
Collection
object
31 properties 5 required
FormPermissionPersonDto
object
3 properties 3 required
FormPermissionDto
object
6 properties 4 required
ErrorsObj
object
BatchJobValidationStatus
object
3 properties 3 required
BatchJobValidationStatusResponse
object
4 properties 4 required
DocumentCountItemResponse
object
2 properties 2 required
StatisticsResponse
object
1 property 1 required
NamedPlace
object
6 properties 5 required
RedListEvaluation
object
2 properties 2 required
TaxonElastic
object
9 properties 9 required
ApiUserEntity
object
5 properties 4 required
ApiUserUpdateDto
object
1 property 1 required
FileUploadResponse
object
4 properties 4 required
Image
object
13 properties 6 required
ImagesPagedDto
object
8 properties 6 required
Audio
object
13 properties 5 required
AudioPagedDto
object
8 properties 6 required
FeaturedImage
object
3 properties 2 required
InformationChild
object
3 properties 2 required
Information
object
10 properties 6 required
GetPersonsResponseDto
object
4 properties 1 required
TaxonAutocompleteResponseDto
object
2 properties 2 required
TripReportUnitShorthandResponseDto
object
6 properties 4 required
TripReportUnitListResultDto
object
3 properties 3 required
LineTransectUnitShorthandResponseDto
object
5 properties 4 required
AddressComponent
object
3 properties 2 required
Location
object
4 properties 3 required
FeedbackDto
object
3 properties 3 required
Source
object
3 properties 1 required
GetTmpTokenDto
object
2 properties 1 required
CheckTmpTokenDto
object
1 property 1 required
LajiBackendNewsNode
object
10 properties 2 required
NewsPagedDto
object
8 properties 6 required
LajiBackendCMSNode
object
8 properties 1 required
WarehouseDwQuery_CountResponse
object
2 properties 2 required
WarehouseDwQuery_ListResponse
object
8 properties 8 required
WarehouseDwQuery_AggregateResponse
object
8 properties 8 required
WarehouseDwQuery_JoinedRow
object
6 properties 6 required
WarehouseDwQuery_AggregateRow
object
19 properties 19 required
WarehouseDwQuery_Document
object
33 properties 33 required
WarehouseDwQuery_Gathering
object
30 properties 30 required
WarehouseDwQuery_Unit
object
49 properties 49 required
WarehouseDwQuery_Sample
object
11 properties 11 required
WarehouseDwQuery_MediaObject
object
15 properties 15 required
WarehouseDwQuery_Coordinates
object
4 properties 4 required
WarehouseDwQuery_DateRange
object
2 properties 2 required
WarehouseDwQuery_Fact
object
4 properties 4 required
WarehouseDwQuery_TaxonCensus
object
2 properties 2 required
WarehouseDwQuery_DocumentQuality
object
1 property 1 required
WarehouseDwQuery_GatheringQuality
object
3 properties 3 required
WarehouseDwQuery_UnitQuality
object
2 properties 2 required
WarehouseDwQuery_Quality
object
3 properties 3 required
WarehouseDwQuery_IdentificationEvent
object
12 properties 12 required
WarehouseDwQuery_TypeSpecimen
object
15 properties 15 required
WarehouseDwQuery_DocumentDWLinkings
object
2 properties 2 required
WarehouseDwQuery_GatheringInterpretations
object
13 properties 13 required
WarehouseDwQuery_GatheringConversions
object
35 properties 35 required
WarehouseDwQuery_GatheringDWLinkings
object
1 property 1 required
WarehouseDwQuery_UnitDWLinkings
object
2 properties 2 required
WarehouseDwQuery_UnitInterpretations
object
13 properties 13 required
WarehouseDwQuery_SingleCoordinates
object
2 properties 2 required
WarehouseDwQuery_Person
object
3 properties 3 required
WarehouseDwQuery_Annotation
object
18 properties 18 required
WarehouseDwQuery_Identification
object
9 properties 9 required
WarehouseDwQuery_OccurrenceAtTimeOfAnnotation
object
10 properties 10 required
WarehouseDwQuery_IdentificationDwLinkings
object
1 property 1 required
WarehouseDwQuery_RedListStatus
object
2 properties 2 required
WarehouseDwQuery_HabitatObject
object
4 properties 4 required
WarehouseDwQuery_NamedPlaceEntity
object
12 properties 12 required
WarehouseDwETL_DwRoot
object
6 properties 6 required
WarehouseDwETL_Document
object
27 properties 27 required
WarehouseDwETL_Gathering
object
26 properties 26 required
WarehouseDwETL_Unit
object
37 properties 37 required
WarehouseDwETL_Sample
object
10 properties 10 required
WarehouseDwETL_MediaObject
object
16 properties 16 required
WarehouseDwETL_Coordinates
object
6 properties 6 required
WarehouseDwETL_DateRange
object
2 properties 2 required
WarehouseDwETL_Fact
object
2 properties 2 required
WarehouseDwETL_TaxonCensus
object
2 properties 2 required
WarehouseDwETL_DocumentQuality
object
1 property 1 required
WarehouseDwETL_GatheringQuality
object
3 properties 3 required
WarehouseDwETL_UnitQuality
object
1 property 1 required
WarehouseDwETL_Quality
object
3 properties 3 required
WarehouseDwETL_IdentificationEvent
object
11 properties 11 required
WarehouseDwETL_TypeSpecimen
object
14 properties 14 required
WarehouseDwSingle_Document
object
34 properties 34 required
WarehouseDwSingle_Gathering
object
31 properties 31 required
WarehouseDwSingle_Unit
object
49 properties 49 required
WarehouseDwSingle_Sample
object
11 properties 11 required
WarehouseDwSingle_MediaObject
object
15 properties 15 required
WarehouseDwSingle_Coordinates
object
4 properties 4 required
WarehouseDwSingle_DateRange
object
2 properties 2 required
WarehouseDwSingle_Fact
object
4 properties 4 required
WarehouseDwSingle_TaxonCensus
object
2 properties 2 required
WarehouseDwSingle_DocumentQuality
object
1 property 1 required
WarehouseDwSingle_GatheringQuality
object
3 properties 3 required
WarehouseDwSingle_UnitQuality
object
2 properties 2 required
WarehouseDwSingle_Quality
object
3 properties 3 required
WarehouseDwSingle_IdentificationEvent
object
12 properties 12 required
WarehouseDwSingle_TypeSpecimen
object
15 properties 15 required
WarehouseDwSingle_DocumentDWLinkings
object
2 properties 2 required
WarehouseDwSingle_GatheringInterpretations
object
13 properties 13 required
WarehouseDwSingle_GatheringConversions
object
35 properties 35 required
WarehouseDwSingle_GatheringDWLinkings
object
1 property 1 required
WarehouseDwSingle_UnitDWLinkings
object
2 properties 2 required
WarehouseDwSingle_UnitInterpretations
object
13 properties 13 required
WarehouseDwSingle_SingleCoordinates
object
2 properties 2 required
WarehouseDwSingle_Person
object
3 properties 3 required
WarehouseDwSingle_Annotation
object
18 properties 18 required
WarehouseDwSingle_Identification
object
9 properties 9 required
WarehouseDwSingle_OccurrenceAtTimeOfAnnotation
object
10 properties 10 required
WarehouseDwSingle_IdentificationDwLinkings
object
1 property 1 required
WarehouseDwSingle_RedListStatus
object
2 properties 2 required
WarehouseDwSingle_HabitatObject
object
4 properties 4 required
WarehouseDwSingle_NamedPlaceEntity
object
12 properties 12 required
WarehouseDwQuery_Taxon
object
23 properties 23 required
WarehouseDwSingle_Taxon
object
23 properties 23 required
WarehouseDwError
object
2 properties 2 required
WarehouseDwPolygonId
object
1 property 1 required
WarehouseDwTeamMember
object
2 properties 2 required
WarehouseDwTeamMembers
object
1 property 1 required
WarehouseDwFilter
object
Map of filter name to filter definition
4 properties 3 required
WarehouseDwFilterEnum
object
2 properties 1 required
WarehouseDwFilters
object
WarehouseDwLocalized
string
WarehouseDwEnumerationLabel
object
3 properties 2 required
WarehouseDwEnumerationLabels
object
1 property 1 required
LajiBackendTaxonSearchResponse
array
LajiBackendTaxonSearchError
object
1 property 1 required
LajiBackendTaxon
object
109 properties 108 required
LajiBackendSimpleTaxon
object
9 properties 8 required
LajiBackendLocalizedText
string
LajiBackendLocalizedURL
object
2 properties 2 required
LajiBackendRedListStatus
object
2 properties 2 required
LajiBackendHabitatObject
object
4 properties 4 required
LajiBackendOccurrence
object
8 properties 8 required
LajiBackendHabitatOccurrenceCount
object
3 properties 2 required
LajiBackendImage
object
24 properties 23 required
LajiBackendBoldRecords
object
5 properties 5 required
LajiBackendEvaluation
object
20 properties 20 required
LajiBackendContent
array
LajiBackendContext
object
4 properties 3 required
LajiBackendTraitAPIError
object
3 properties 3 required
LajiBackendTraitAPIOKResponse
object
1 property 1 required
LajiBackendTraitAPISearchResponse
object
7 properties 7 required
LajiBackendValidationResponse
object
2 properties 2 required
LajiBackendTraitTSVValidationResponse
object
3 properties 3 required
LajiBackendTraitMultiValidationResponse
object
2 properties 2 required
LajiBackendTraitGroup
object
3 properties 3 required
LajiBackendTrait
object
11 properties 6 required
LajiBackendTraitEnumerationValue
object
4 properties 4 required
LajiBackendUnitOfMeasurement
object
5 properties 5 required
LajiBackendDataset
object
19 properties 15 required
LajiBackendDatasetPermissions
object
2 properties 1 required
LajiBackendInputRow
object
2 properties 1 required
LajiBackendSubject
object
45 properties 4 required
LajiBackendTraitValue
object
10 properties 3 required
LajiBackendTraitSearchRow
object
29 properties 29 required
LajiBackendTraitTaxon
object
11 properties 11 required
LajiBackendTraitSearchSubject
object
40 properties 40 required
LajiBackendTraitSearchTrait
object
8 properties 8 required
LajiBackendTraitSearchTraitGroup
object
1 property 1 required
LajiBackendTraitSearchDataset
object
12 properties 12 required
LajiBackendHigherTaxa
object
15 properties 15 required
GeoConvertBody_convert_gis_to_table_convert_to_table_post
object
1 property 1 required
GeoConvertBody_convert_with_file__post
object
1 property 1 required
GeoConvertErrorResponse
object
1 property 1 required
GeoConvertHTTPValidationError
object
1 property 1 required
GeoConvertHealthResponse
object
2 properties 2 required
GeoConvertStatusResponse
object
3 properties 3 required
GeoConvertValidationError
object
3 properties 3 required
GoogleMapsGeocodingResponse
object
2 properties 2 required
GoogleMapsGeocodingResult
object
5 properties 5 required
GoogleMapsAddressComponent
object
3 properties 3 required
FormListing
object
10 properties 10 required
store-field
object
15 properties 15 required
store-formOptions
object
62 properties 61 required
store-multiLang
string
store-formFooter
object
5 properties 5 required
store-formNamedPlaceOptions
object
49 properties 49 required
store-document
object
79 properties 1 required
store-contact
object
11 properties 11 required
store-documentIdentification
object
5 properties 5 required
store-gatheringEvent
object
39 properties 39 required
store-completeList
object
5 properties 5 required
store-gatheringFact
object
103 properties 103 required
store-lineTransectNest
object
10 properties 10 required
store-geometry
store-taxonCensus
object
6 properties 1 required
store-gathering
object
98 properties 98 required
store-unit
object
119 properties 119 required
store-measurement
object
27 properties 27 required
store-unitFact
object
47 properties 47 required
store-unitGathering
object
8 properties 8 required
store-identification
object
29 properties 29 required
store-typeSpecimen
object
17 properties 17 required
store-sample
object
33 properties 1 required
store-preparation
object
9 properties 9 required
store-formSeason
object
5 properties 5 required
Form
object
25 properties 25 required
JSONSchema
JSONSchemaObject
object
3 properties 3 required
JSONSchemaArray
object
6 properties 2 required
JSONSchemaPrimitive
object
2 properties 2 required
store-form
object
21 properties 21 required
store-notification
object
10 properties 2 required
store-annotation
object
27 properties 1 required
store-annotationOccurrence
object
12 properties 12 required
store-profile
object
20 properties 1 required
store-birdSongRecognitionSkillLevel
object
5 properties 2 required
SensitivePerson
object
4 properties 5 required
SensitiveProfile
object
3 properties 10 required
SensitiveCollection
object
65 properties 6 required
store-collection
object
65 properties 6 required
ExpandedSensitiveCollection
object
66 properties 6 required
store-namedPlace
object
27 properties 2 required
store-dateRange
object
5 properties 5 required
store-reserve
object
5 properties 2 required
store-area
object
16 properties 2 required
store-tag
object
8 properties 7 required
store-checklist
object
8 properties 4 required
store-checklistVersion
object
7 properties 1 required
SensitiveOrganization
object
6 properties 1 required
store-informalTaxonGroup
object
6 properties 1 required
TaxonAutocompleteResponse
object
16 properties 15 required
SensitiveSource
object
3 properties 1 required
store-iucnRedListTaxonGroup
object
7 properties
IucnRedListTaxonGroupExpanded
object
7 properties 2 required
store-publication
object
5 properties 1 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

university-of-helsinki-finbif-laji-openapi.yml Raw ↑

Other APIs University of Helsinki publishes across the network.

University of Helsinki API Portal (Gravitee)
HY Organisation API
Contact Search API
Course pages CMS
Helsinki.fi content
HY Building API
ServiceAPI
EmployeeInformationAPI
PersonGroup
General Efecte API
Network registry API
Sovellussalkku API
Where this information came from

This is an independent, third-party profile of FinBIF Laji API (Finnish Biodiversity Information Facility), published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.