University of Helsinki Person API

The Person API from University of Helsinki — 6 operation(s) for person.

Operations 10

GET /person/profile Get profile #
POST /person/profile Create profile #
PUT /person/profile Update profile #
GET /person/{id} Find person by user id (this will not include email) #
GET /person Find person by person token #
GET /person/{id}/profile Find profile by person id (this will only return small subset of the full… #
PUT /person/friends/{id} Accept friend request #
DELETE /person/friends/{id} Remove a friend request or a friend #
POST /person/friends/{id} Request person to be your friend #
GET /person/exists-by-email/{email} Check if given email has an existing account #

Documentation

Specifications

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/university-of-helsinki/refs/heads/main/json-schema/university-of-helsinki-hy-organisation-api-schemas.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/university-of-helsinki/refs/heads/main/json-schema/university-of-helsinki-contact-search-api-schemas.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/university-of-helsinki/refs/heads/main/json-schema/university-of-helsinki-course-pages-cms-schemas.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/university-of-helsinki/refs/heads/main/json-schema/university-of-helsinki-helsinki-fi-content-schemas.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/university-of-helsinki/refs/heads/main/json-schema/university-of-helsinki-hy-building-api-schemas.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/university-of-helsinki/refs/heads/main/json-schema/university-of-helsinki-serviceapi-schemas.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/university-of-helsinki/refs/heads/main/json-schema/university-of-helsinki-employeeinformationapi-schemas.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/university-of-helsinki/refs/heads/main/json-schema/university-of-helsinki-persongroup-schemas.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/university-of-helsinki/refs/heads/main/json-schema/university-of-helsinki-general-efecte-api-schemas.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/university-of-helsinki/refs/heads/main/json-schema/university-of-helsinki-network-registry-api-schemas.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/university-of-helsinki/refs/heads/main/json-schema/university-of-helsinki-finbif-laji-schemas.json

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/university-of-helsinki-person-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

university-of-helsinki-person-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Laji Person API
  description: '## Authentication


    This API requires an **Access Token**.'
  version: '1'
  contact: {}
servers:
- url: https://api.laji.fi
tags:
- name: Person
paths:
  /person/profile:
    get:
      operationId: PersonsController_findProfileByPersonToken
      parameters:
      - name: Person-Token
        required: false
        description: Person's authentication token. It is required.
        in: header
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/store-profile'
        '400':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '401':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '403':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '404':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '406':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '422':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '500':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
      security:
      - Access token: []
      - Lang: []
      - Person token: []
      summary: Get profile
      tags:
      - Person
    post:
      operationId: PersonsController_createProfile
      parameters:
      - name: Person-Token
        required: false
        description: Person's authentication token. It is required.
        in: header
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/store-profile'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/store-profile'
        '400':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '401':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '403':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '404':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '406':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '422':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '500':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
      security:
      - Access token: []
      - Lang: []
      - Person token: []
      summary: Create profile
      tags:
      - Person
    put:
      operationId: PersonsController_updateProfile
      parameters:
      - name: Person-Token
        required: false
        description: Person's authentication token. It is required.
        in: header
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/store-profile'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/store-profile'
        '400':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '401':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '403':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '404':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '406':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '422':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '500':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
      security:
      - Access token: []
      - Lang: []
      - Person token: []
      summary: Update profile
      tags:
      - Person
  /person/{id}:
    get:
      operationId: PersonsController_findPersonByPersonId
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SensitivePerson'
        '400':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '401':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '403':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '404':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '406':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '422':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '500':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
      security:
      - Access token: []
      - Lang: []
      - Person token: []
      summary: Find person by user id (this will not include email)
      tags:
      - Person
  /person:
    get:
      operationId: PersonsController_findPersonByToken
      parameters:
      - name: Person-Token
        required: false
        description: Person's authentication token. It is required.
        in: header
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Person'
        '400':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '401':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '403':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '404':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '406':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '422':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '500':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
      security:
      - Access token: []
      - Lang: []
      - Person token: []
      summary: Find person by person token
      tags:
      - Person
  /person/{id}/profile:
    get:
      operationId: PersonsController_getProfileByPersonId
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SensitiveProfile'
        '400':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '401':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '403':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '404':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '406':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '422':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '500':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
      security:
      - Access token: []
      - Lang: []
      - Person token: []
      summary: Find profile by person id (this will only return small subset of the full…
      tags:
      - Person
  /person/friends/{id}:
    put:
      operationId: PersonsController_acceptFriendRequest
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      - name: Person-Token
        required: false
        description: Person's authentication token. It is required.
        in: header
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/store-profile'
        '400':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '401':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '403':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '404':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '406':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '422':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '500':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
      security:
      - Access token: []
      - Lang: []
      - Person token: []
      summary: Accept friend request
      tags:
      - Person
    delete:
      operationId: PersonsController_removeFriend
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      - name: block
        required: true
        in: query
        schema:
          default: false
          type: boolean
      - name: Person-Token
        required: false
        description: Person's authentication token. It is required.
        in: header
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/store-profile'
        '400':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '401':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '403':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '404':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '406':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '422':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '500':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
      security:
      - Access token: []
      - Lang: []
      - Person token: []
      summary: Remove a friend request or a friend
      tags:
      - Person
    post:
      operationId: PersonsController_addFriendRequest
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      - name: Person-Token
        required: false
        description: Person's authentication token. It is required.
        in: header
        schema:
          type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/store-profile'
        '400':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '401':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '403':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '404':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '406':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '422':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '500':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
      security:
      - Access token: []
      - Lang: []
      - Person token: []
      summary: Request person to be your friend
      tags:
      - Person
  /person/exists-by-email/{email}:
    get:
      operationId: PersonsController_checkExistsByEmail
      parameters:
      - name: email
        required: true
        in: path
        schema:
          type: string
      responses:
        '204':
          description: ''
        '400':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '401':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '403':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '404':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '406':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '422':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
        '500':
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                  message:
                    type: string
                  localized:
                    type: boolean
      security:
      - Access token: []
      - Lang: []
      - Person token: []
      summary: Check if given email has an existing account
      tags:
      - Person
components:
  schemas:
    store-profile:
      type: object
      properties:
        '@context':
          type: string
          title: Context for the MA.profile
        id:
          type: string
          title: Id for the MA.profile
        '@type':
          type: string
          title: Type for the MA.profile
        birdSongRecognitionSkillLevels:
          type: array
          items:
            $ref: '#/components/schemas/store-birdSongRecognitionSkillLevel'
        birdwatchingActivityLevel:
          type: string
          enum:
          - ''
          - MA.birdwatchingActivityLevelEnum1
          - MA.birdwatchingActivityLevelEnum2
          - MA.birdwatchingActivityLevelEnum3
          - MA.birdwatchingActivityLevelEnum4
          title: User's activity level in birdwatching
        blocked:
          type: array
          uniqueItems: false
          items:
            type: string
          minItems: 0
          title: Blocked ppl
        finnishBirdSongRecognitionSkillLevel:
          type: string
          enum:
          - ''
          - MA.finnishBirdSongRecognitionSkillLevelEnum1
          - MA.finnishBirdSongRecognitionSkillLevelEnum2
          - MA.finnishBirdSongRecognitionSkillLevelEnum3
          - MA.finnishBirdSongRecognitionSkillLevelEnum4
          title: User's skill level in Finnish bird song recognition
        friendRequests:
          type: array
          uniqueItems: false
          items:
            type: string
          minItems: 0
          title: Friend requests received
        friends:
          type: array
          uniqueItems: false
          items:
            type: string
          minItems: 0
          title: List of friends of the user
        image:
          type: string
          title: Image for the profile
        nameVisibleInKerttu:
          type: boolean
          title: Name is visible to others in Kerttu
        personalCollectionIdentifier:
          type: string
          title: Own collection identifier
        profileDescription:
          type: string
          title: Profile description
        settings:
          type: object
          additionalProperties: true
          title: Settings for the user
        taxonExpertise:
          type: array
          uniqueItems: false
          items:
            type: string
          minItems: 0
          title: Expertise
        taxonExpertiseNotes:
          type: string
          title: Expertise notes
        userID:
          type: string
          title: This users profile
        xenoCantoApiKey:
          type: string
          title: Xeno-Canto API key
        xenoCantoUserName:
          type: string
          title: Xeno-Canto user name
        profileKey:
          type: string
          title: profileKey
      required:
      - userID
      additionalProperties: false
    SensitiveProfile:
      type: object
      properties:
        userID:
          type: string
        profileDescription:
          type: string
        image:
          type: 

# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/university-of-helsinki/refs/heads/main/openapi/university-of-helsinki-person-api-openapi.yml