Suomi.fi General description API

A general description is a ready-made template intended as the basis for describing a [service](#tag/service). Using a general description reduces the amount of work needed to describe and update a service.

GitHub OpenAPI

Operations 3

GET /api/v12/general-description/{contentId} By content id #
GET /api/v12/general-description/search Search general descriptions #
GET /api/v12/general-description/archived Get archived general descriptions #

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/suomi-fi:suomi-fi-general-description-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

suomi-fi-general-description-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Suomi Fi General description API
  version: 0.1.0
  description: 'Operations tagged General description across 2 of this provider''s published API definitions: suomi-fi-ptv-v12-openapi.json, suomi-fi-ptv-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api-gw.palvelutietovaranto.suomi.fi
  description: Development server
tags:
- name: General description
  description: 'A general description is a ready-made template intended as the basis for describing a service.

    Using a general description reduces the amount of work needed to describe and update a service.'
paths:
  /api/v12/general-description/{contentId}:
    get:
      operationId: getGeneralDescription
      summary: By content id
      tags:
      - General description
      parameters:
      - schema:
          type: string
          format: uuid
        in: path
        name: contentId
        required: true
        description: Content id type
      security:
      - apiKeyHeader: []
      responses:
        '200':
          description: General description response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralDescriptionResponse'
        '400':
          description: Problem details response with errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsWithErrorsType'
        '404':
          description: Problem details response for 404 errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsNotFoundType'
        '500':
          description: Problem details response type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsType'
    servers:
    - url: https://api-gw.palvelutietovaranto.suomi.fi
      description: Development server
  /api/v12/general-description/search:
    get:
      operationId: searchGeneralDescriptions
      summary: Search general descriptions
      tags:
      - General description
      parameters:
      - schema:
          type: integer
          minimum: 1
          maximum: 1000000
          default: 1
        in: query
        name: page
        required: true
        description: Pagination page
      - schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 100
        in: query
        name: pageSize
        required: true
        description: Pagination page size
      - schema:
          type: array
          items:
            $ref: '#/components/schemas/ContentIdType'
          maxItems: 20
          uniqueItems: true
        in: query
        name: organizationContentIds
        required: false
        description: Filter by comma separated list of [organization](#tag/organization) content id:s
      - schema:
          $ref: '#/components/schemas/DateTime'
        in: query
        name: publishedAtOrAfter
        required: false
      - schema:
          type: array
          items:
            $ref: '#/components/schemas/ServiceType'
          uniqueItems: true
        in: query
        name: serviceTypes
        required: false
        description: Filter by comma separated list of service types
      - schema:
          type: array
          items:
            type: string
            format: uri
          maxItems: 20
          uniqueItems: true
        in: query
        name: industrialClasses
        required: false
        description: array, e.g. http://uri.suomi.fi/codelist/jhs/toimiala_1_20080101/code/35
      - schema:
          $ref: '#/components/schemas/MatchType'
        in: query
        name: industrialClassesMatch
        required: false
      - schema:
          type: array
          items:
            type: string
            format: uri
          maxItems: 20
          uniqueItems: true
        in: query
        name: ontologyTerms
        required: false
        description: array, e.g. http://www.yso.fi/onto/koko/p37040
      - schema:
          $ref: '#/components/schemas/MatchType'
        in: query
        name: ontologyTermsMatch
        required: false
      - schema:
          type: array
          items:
            type: string
            pattern: ^(?!\.)[a-zA-Z0-9\.]+(?<!\.)$
          maxItems: 20
          uniqueItems: true
        in: query
        name: serviceClasses
        required: false
        description: array, e.g. P3.1
      - schema:
          $ref: '#/components/schemas/MatchType'
        in: query
        name: serviceClassesMatch
        required: false
      - schema:
          type: array
          items:
            type: string
            pattern: ^(?!\.)[a-zA-Z0-9\.]+(?<!\.)$
          maxItems: 20
          uniqueItems: true
        in: query
        name: targetGroups
        required: false
        description: array, e.g. KR1.1
      - schema:
          $ref: '#/components/schemas/MatchType'
        in: query
        name: targetGroupsMatch
        required: false
      - schema:
          type: array
          items:
            $ref: '#/components/schemas/GeneralDescriptionType'
          uniqueItems: true
        in: query
        name: generalDescriptionTypes
        required: false
        description: General description types for filtering
      - schema:
          $ref: '#/components/schemas/MatchType'
        in: query
        name: generalDescriptionTypesMatch
        required: false
      security:
      - apiKeyHeader: []
      responses:
        '200':
          description: Search general descriptions response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchGeneralDescriptionsResponse'
        '400':
          description: Problem details response with errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsWithErrorsType'
        '500':
          description: Problem details response type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsType'
    servers:
    - url: https://api-gw.palvelutietovaranto.suomi.fi
      description: Development server
  /api/v12/general-description/archived:
    get:
      operationId: archivedGeneralDescriptions
      summary: Get archived general descriptions
      tags:
      - General description
      parameters:
      - schema:
          type: integer
          minimum: 1
          maximum: 1000000
          default: 1
        in: query
        name: page
        required: true
        description: Pagination page
      - schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 100
        in: query
        name: pageSize
        required: true
        description: Pagination page size
      - schema:
          type: array
          items:
            $ref: '#/components/schemas/ContentIdType'
          maxItems: 20
          uniqueItems: true
        in: query
        name: organizationContentIds
        required: false
        description: Filter by comma separated list of [organization](#tag/organization) content id:s
      - schema:
          $ref: '#/components/schemas/DateTime'
        in: query
        name: archivedAtOrAfter
        required: true
      security:
      - apiKeyHeader: []
      responses:
        '200':
          description: Archived entities response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArchivedEntitiesResponse'
        '400':
          description: Problem details response with errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsWithErrorsType'
        '500':
          description: Problem details response type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsType'
    servers:
    - url: https://api-gw.palvelutietovaranto.suomi.fi
      description: Development server
components:
  schemas:
    GeneralDescriptionProfessionalQualificationResponse:
      type: object
      required:
      - chargeType
      - contentId
      - generalDescriptionTypes
      - industrialClasses
      - lifeEvents
      - ontologyTerms
      - organizationContentId
      - serviceClasses
      - suggestedServiceChannels
      - targetGroups
      - publishedAt
      - serviceType
      - languageVersions
      properties:
        migratedAt:
          anyOf:
          - $ref: '#/components/schemas/DateTime'
          - type: 'null'
        chargeType:
          anyOf:
          - $ref: '#/components/schemas/ServiceChargeType'
          - type: 'null'
        contentId:
          $ref: '#/components/schemas/ContentIdType'
        generalDescriptionTypes:
          type: array
          items:
            $ref: '#/components/schemas/GeneralDescriptionType'
        industrialClasses:
          type: array
          items:
            type: string
            format: uri
        lifeEvents:
          type: array
          items:
            type: string
            pattern: ^(?!\.)[a-zA-Z0-9\.]+(?<!\.)$
        ontologyTerms:
          type: array
          items:
            type: string
            format: uri
        organizationContentId:
          $ref: '#/components/schemas/ContentIdType'
        serviceClasses:
          type: array
          items:
            type: string
            pattern: ^(?!\.)[a-zA-Z0-9\.]+(?<!\.)$
        suggestedServiceChannels:
          type: array
          items:
            $ref: '#/components/schemas/SuggestedServiceChannelResponse'
        targetGroups:
          type: array
          items:
            type: string
            pattern: ^(?!\.)[a-zA-Z0-9\.]+(?<!\.)$
        publishedAt:
          anyOf:
          - $ref: '#/components/schemas/DateTime'
          - type: 'null'
        serviceType:
          type: string
          enum:
          - ProfessionalQualification
        languageVersions:
          $ref: '#/components/schemas/GeneralDescriptionProfessionalQualificationsLanguageVersionResponse'
      description: General description professional qualification response
      additionalProperties: false
      title: ProfessionalQualification
    LegislationLinkResponse:
      type: object
      required:
      - url
      - name
      properties:
        url:
          type: string
        name:
          type: string
      title: LegislationLinkResponse
    ExtendedGeneralDescriptionLanguageVersionResponse:
      type: object
      required:
      - backgroundDescription
      - chargeTypeAdditionalInformation
      - conditions
      - description
      - freelyAssignedKeywords
      - legislationLinks
      - name
      - userInstructions
      - processingTimeAdditionalInformation
      - deadlineAdditionalInformation
      - validityTimeAdditionalInformation
      properties:
        backgroundDescription:
          anyOf:
          - type: string
            description: Markdown-formatted content. Use a Markdown parser/renderer when presenting it.
          - type: 'null'
        chargeTypeAdditionalInformation:
          anyOf:
          - type: string
            description: Markdown-formatted content. Use a Markdown parser/renderer when presenting it.
          - type: 'null'
        conditions:
          anyOf:
          - type: string
            description: Markdown-formatted content. Use a Markdown parser/renderer when presenting it.
          - type: 'null'
        description:
          anyOf:
          - type: string
            description: Markdown-formatted content. Use a Markdown parser/renderer when presenting it.
          - type: 'null'
        freelyAssignedKeywords:
          type: array
          items:
            type: string
        legislationLinks:
          type: array
          items:
            $ref: '#/components/schemas/LegislationLinkResponse'
        name:
          type: string
        userInstructions:
          anyOf:
          - type: string
            description: Markdown-formatted content. Use a Markdown parser/renderer when presenting it.
          - type: 'null'
        processingTimeAdditionalInformation:
          anyOf:
          - type: string
            description: Markdown-formatted content. Use a Markdown parser/renderer when presenting it.
          - type: 'null'
        deadlineAdditionalInformation:
          anyOf:
          - type: string
            description: Markdown-formatted content. Use a Markdown parser/renderer when presenting it.
          - type: 'null'
        validityTimeAdditionalInformation:
          anyOf:
          - type: string
            description: Markdown-formatted content. Use a Markdown parser/renderer when presenting it.
          - type: 'null'
      description: Extended general description language version response
      additionalProperties: false
      title: ExtendedGeneralDescriptionLanguageVersionResponse
    BaseGeneralDescriptionLanguageVersionResponse:
      type: object
      required:
      - backgroundDescription
      - chargeTypeAdditionalInformation
      - conditions
      - description
      - freelyAssignedKeywords
      - legislationLinks
      - name
      - userInstructions
      properties:
        backgroundDescription:
          anyOf:
          - type: string
            description: Markdown-formatted content. Use a Markdown parser/renderer when presenting it.
          - type: 'null'
        chargeTypeAdditionalInformation:
          anyOf:
          - type: string
            description: Markdown-formatted content. Use a Markdown parser/renderer when presenting it.
          - type: 'null'
        conditions:
          anyOf:
          - type: string
            description: Markdown-formatted content. Use a Markdown parser/renderer when presenting it.
          - type: 'null'
        description:
          anyOf:
          - type: string
            description: Markdown-formatted content. Use a Markdown parser/renderer when presenting it.
          - type: 'null'
        freelyAssignedKeywords:
          type: array
          items:
            type: string
        legislationLinks:
          type: array
          items:
            $ref: '#/components/schemas/LegislationLinkResponse'
        name:
          type: string
        userInstructions:
          anyOf:
          - type: string
            description: Markdown-formatted content. Use a Markdown parser/renderer when presenting it.
          - type: 'null'
      description: Base general description language version response
      title: BaseGeneralDescriptionLanguageVersionResponse
    ProblemDetailsStatusCode:
      type: integer
      description: Status code
      title: ProblemDetailsStatusCode
    ArchivedEntityResponse:
      type: object
      required:
      - contentId
      properties:
        contentId:
          $ref: '#/components/schemas/ContentIdType'
      description: Archived entity response
      title: ArchivedEntityResponse
    ProblemDetailsErrorType:
      type: string
      description: Type of the error
      title: ProblemDetailsErrorType
    GeneralDescriptionPermitOrOtherObligationResponse:
      type: object
      required:
      - chargeType
      - contentId
      - generalDescriptionTypes
      - industrialClasses
      - lifeEvents
      - ontologyTerms
      - organizationContentId
      - serviceClasses
      - suggestedServiceChannels
      - targetGroups
      - publishedAt
      - serviceType
      - languageVersions
      properties:
        migratedAt:
          anyOf:
          - $ref: '#/components/schemas/DateTime'
          - type: 'null'
        chargeType:
          anyOf:
          - $ref: '#/components/schemas/ServiceChargeType'
          - type: 'null'
        contentId:
          $ref: '#/components/schemas/ContentIdType'
        generalDescriptionTypes:
          type: array
          items:
            $ref: '#/components/schemas/GeneralDescriptionType'
        industrialClasses:
          type: array
          items:
            type: string
            format: uri
        lifeEvents:
          type: array
          items:
            type: string
            pattern: ^(?!\.)[a-zA-Z0-9\.]+(?<!\.)$
        ontologyTerms:
          type: array
          items:
            type: string
            format: uri
        organizationContentId:
          $ref: '#/components/schemas/ContentIdType'
        serviceClasses:
          type: array
          items:
            type: string
            pattern: ^(?!\.)[a-zA-Z0-9\.]+(?<!\.)$
        suggestedServiceChannels:
          type: array
          items:
            $ref: '#/components/schemas/SuggestedServiceChannelResponse'
        targetGroups:
          type: array
          items:
            type: string
            pattern: ^(?!\.)[a-zA-Z0-9\.]+(?<!\.)$
        publishedAt:
          anyOf:
          - $ref: '#/components/schemas/DateTime'
          - type: 'null'
        serviceType:
          type: string
          enum:
          - PermitOrOtherObligation
        languageVersions:
          $ref: '#/components/schemas/GeneralDescriptionPermitOrOtherObligationLanguageVersionsResponse'
      description: General description permit or other obligation response
      additionalProperties: false
      title: PermitOrOtherObligation
    ServiceChargeType:
      description: Service charge type
      enum:
      - Free
      - Charged
      type: string
      title: ServiceChargeType
    NotFoundStatusType:
      anyOf:
      - type: string
        enum:
        - NotPublished
      - type: string
        enum:
        - Unknown
      description: Not found status type
      title: NotFoundStatusType
    SuggestedServiceChannelResponse:
      type: object
      required:
      - serviceChannelContentId
      - channelType
      properties:
        serviceChannelContentId:
          $ref: '#/components/schemas/ContentIdType'
        channelType:
          $ref: '#/components/schemas/ChannelType'
      description: Service channel suggested by a general description
      additionalProperties: false
      title: SuggestedServiceChannelResponse
    ArchivedEntitiesResponse:
      type: object
      required:
      - page
      - pageSize
      - totalItems
      - totalPages
      - items
      properties:
        page:
          type: integer
          description: Pagination current page
        pageSize:
          type: integer
          description: Pagination current page size
        totalItems:
          type: integer
          description: Total items found
        totalPages:
          type: integer
          description: Total number of pages
        items:
          type: array
          items:
            $ref: '#/components/schemas/ArchivedEntityResponse'
      description: Archived entities response
      title: ArchivedEntitiesResponse
    GeneralDescriptionResponse:
      description: General description response
      type: object
      required:
      - serviceType
      discriminator:
        propertyName: serviceType
        mapping:
          Service: '#/components/schemas/GeneralDescriptionServiceResponse'
          ProfessionalQualification: '#/components/schemas/GeneralDescriptionProfessionalQualificationResponse'
          PermitOrOtherObligation: '#/components/schemas/GeneralDescriptionPermitOrOtherObligationResponse'
      oneOf:
      - $ref: '#/components/schemas/GeneralDescriptionServiceResponse'
      - $ref: '#/components/schemas/GeneralDescriptionProfessionalQualificationResponse'
      - $ref: '#/components/schemas/GeneralDescriptionPermitOrOtherObligationResponse'
      title: GeneralDescriptionResponse
    ProblemDetailsInstance:
      type: string
      description: Request instance (url)
      title: ProblemDetailsInstance
    ProblemDetailsNotFoundType:
      type: object
      required:
      - title
      - detail
      - status
      - type
      - requestId
      - instance
      - reason
      properties:
        title:
          type: string
          description: Problem details response title
        detail:
          $ref: '#/components/schemas/ProblemDetailsDetail'
        status:
          $ref: '#/components/schemas/ProblemDetailsStatusCode'
        type:
          $ref: '#/components/schemas/ProblemDetailsErrorType'
        requestId:
          $ref: '#/components/schemas/ProblemDetailsRequestId'
        instance:
          $ref: '#/components/schemas/ProblemDetailsInstance'
        reason:
          $ref: '#/components/schemas/NotFoundStatusType'
      description: Problem details response for 404 errors
      title: ProblemDetailsNotFoundType
    ContentIdType:
      type: string
      format: uuid
      description: Content id type
      title: ContentIdType
    GeneralDescriptionType:
      description: General description type
      enum:
      - Church
      - EmploymentArea
      - Municipality
      - Other
      - WellbeingServicesCounty
      type: string
      title: GeneralDescriptionType
    MatchType:
      default: all
      description: How parameters are matched
      enum:
      - all
      - any
      type: string
      title: MatchType
    ProblemDetailsType:
      type: object
      required:
      - title
      - detail
      - status
      - type
      - requestId
      - instance
      properties:
        title:
          type: string
          description: Problem details response title
        detail:
          $ref: '#/components/schemas/ProblemDetailsDetail'
        status:
          $ref: '#/components/schemas/ProblemDetailsStatusCode'
        type:
          $ref: '#/components/schemas/ProblemDetailsErrorType'
        requestId:
          $ref: '#/components/schemas/ProblemDetailsRequestId'
        instance:
          $ref: '#/components/schemas/ProblemDetailsInstance'
      description: Problem details response type
      title: ProblemDetailsType
    ProblemDetailsRequestId:
      type: string
      description: Request identifier
      title: ProblemDetailsRequestId
    ServiceType:
      description: Service type
      enum:
      - Service
      - ProfessionalQualification
      - PermitOrOtherObligation
      type: string
      title: ServiceType
    GeneralDescriptionServiceResponse:
      type: object
      required:
      - chargeType
      - contentId
      - generalDescriptionTypes
      - industrialClasses
      - lifeEvents
      - ontologyTerms
      - organizationContentId
      - serviceClasses
      - suggestedServiceChannels
      - targetGroups
      - publishedAt
      - serviceType
      - languageVersions
      properties:
        migratedAt:
          anyOf:
          - $ref: '#/components/schemas/DateTime'
          - type: 'null'
        chargeType:
          anyOf:
          - $ref: '#/components/schemas/ServiceChargeType'
          - type: 'null'
        contentId:
          $ref: '#/components/schemas/ContentIdType'
        generalDescriptionTypes:
          type: array
          items:
            $ref: '#/components/schemas/GeneralDescriptionType'
        industrialClasses:
          type: array
          items:
            type: string
            format: uri
        lifeEvents:
          type: array
          items:
            type: string
            pattern: ^(?!\.)[a-zA-Z0-9\.]+(?<!\.)$
        ontologyTerms:
          type: array
          items:
            type: string
            format: uri
        organizationContentId:
          $ref: '#/components/schemas/ContentIdType'
        serviceClasses:
          type: array
          items:
            type: string
            pattern: ^(?!\.)[a-zA-Z0-9\.]+(?<!\.)$
        suggestedServiceChannels:
          type: array
          items:
            $ref: '#/components/schemas/SuggestedServiceChannelResponse'
        targetGroups:
          type: array
          items:
            type: string
            pattern: ^(?!\.)[a-zA-Z0-9\.]+(?<!\.)$
        publishedAt:
          anyOf:
          - $ref: '#/components/schemas/DateTime'
          - type: 'null'
        serviceType:
          type: string
          enum:
          - Service
        languageVersions:
          $ref: '#/components/schemas/GeneralDescriptionServiceLanguageVersionsResponse'
      description: General description service response
      additionalProperties: false
      title: Service
    ProblemDetailsDetail:
      type: string
      description: Error details
      title: ProblemDetailsDetail
    ValidationErrorType:
      type: object
      required:
      - message
      properties:
        path:
          type: string
          description: Validation error path
        message:
          type: string
          description: Error message
      description: Validation error type
      title: ValidationErrorType
    SearchGeneralDescriptionsResponse:
      type: object
      required:
      - page
      - pageSize
      - totalItems
      - totalPages
      - items
      properties:
        page:
          type: integer
          description: Pagination current page
        pageSize:
          type: integer
          description: Pagination current page size
        totalItems:
          type: integer
          description: Total items found
        totalPages:
          type: integer
          description: Total number of pages
        items:
          type: array
          items:
            $ref: '#/components/schemas/GeneralDescriptionResponse'
      description: Search general descriptions response
      title: SearchGeneralDescriptionsResponse
    ProblemDetailsWithErrorsType:
      type: object
      required:
      - title
      - detail
      - status
      - type
      - requestId
      - instance
      - errors
      properties:
        title:
          type: string
          description: Problem details response title
        detail:
          $ref: '#/components/schemas/ProblemDetailsDetail'
        status:
          $ref: '#/components/schemas/ProblemDetailsStatusCode'
        type:
          $ref: '#/components/schemas/ProblemDetailsErrorType'
        requestId:
          $ref: '#/components/schemas/ProblemDetailsRequestId'
        instance:
          $ref: '#/components/schemas/ProblemDetailsInstance'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ValidationErrorType'
      description: Problem details response with errors
      title: ProblemDetailsWithErrorsType
    GeneralDescriptionServiceLanguageVersionsResponse:
      type: object
      properties:
        fi:
          $ref: '#/components/schemas/BaseGeneralDescriptionLanguageVersionResponse'
        sv:
          $ref: '#/components/schemas/BaseGeneralDescriptionLanguageVersionResponse'
        en:
          $ref: '#/components/schemas/BaseGeneralDescriptionLanguageVersionResponse'
        se:
          $ref: '#/components/schemas/BaseGeneralDescriptionLanguageVersionResponse'
        smn:
          $ref: '#/components/schemas/BaseGeneralDescriptionLanguageVersionResponse'
        sms:
          $ref: '#/components/schemas/BaseGeneralDescriptionLanguageVersionResponse'
      additionalProperties: false
      description: General description service language versions response
      title: GeneralDescriptionServiceLanguageVersionsResponse
    GeneralDescriptionProfessionalQualificationsLanguageVersionResponse:
      type: object
      properties:
        fi:
          $ref: '#/components/schemas/ExtendedGeneralDescriptionLanguageVersionResponse'
        sv:
          $ref: '#/components/schemas/ExtendedGeneralDescriptionLanguageVersionResponse'
        en:
          $ref: '#/components/schemas/ExtendedGeneralDescriptionLanguageVersionResponse'
        se:
          $ref: '#/components/schemas/ExtendedGeneralDescriptionLanguageVersionResponse'
        smn:
          $ref: '#/components/schemas/ExtendedGeneralDescriptionLanguageVersionResponse'
        sms:
          $ref: '#/components/schemas/ExtendedGeneralDescriptionLanguageVersionResponse'
      additionalProperties: false
      description: General description professional qualifications language version response
      title: GeneralDescriptionProfessionalQualificationsLanguageVersionResponse
    ChannelType:
      description: Channel type
      enum:
      - EService
      - TelephoneService
      - PrintableForm
      - ServiceLocation
      - WebPage
      type: string
      title: ChannelType
    DateTime:
      type: string
      format: date-time
      description: string, e.g. 2025-09-22T07:32:52.026Z
      title: DateTime
    GeneralDescriptionPermitOrOtherObligationLanguageVersionsResponse:
      type: object
      properties:
        fi:
          $ref: '#/components/schemas/ExtendedGeneralDescriptionLanguageVersionResponse'
        sv:
          $ref: '#/components/schemas/ExtendedGeneralDescriptionLanguageVersionResponse'
        en:
          $ref: '#/components/schemas/ExtendedGeneralDescriptionLanguageVersionResponse'
        se:
          $ref: '#/components/schemas/ExtendedGeneralDescriptionLanguageVersionResponse'
        smn:
          $ref: '#/components/schemas/ExtendedGeneralDescriptionLanguageVersionResponse'
        sms:
          $ref: '#/components/schemas/ExtendedGeneralDescriptionLanguageVersionResponse'
      additionalProperties: false
      description: General description permit or other obligation language versions response
      title: GeneralDescriptionPermitOrOtherObligationLanguageVersionsResponse
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Bearer auth
    apiKeyHeader:
      name: x-api-key
      in: header
      description: API-key auth
      type: apiKey
externalDocs:
  url: https://kehittajille.suomi.fi/palvelut/palvelutietovaranto/rajapinta-ja-arkkitehtuuriuudistus
  description: PTV - Suomi.fi Service developers documentation
x-refined-from:
- suomi-fi-ptv-v12-openapi.json
- suomi-fi-ptv-openapi.yml
x-tagGroups:
- name: Core
  tags:
  - Service channel
  - Connection
  - General description
  - Organization
  - Service
  - Service collection
- name: Reference data
  tags:
  - Languages
  - Countries
  - Municipalities
  - Regions
  - Wellbeing services counties
  - Postal codes
  - Industrial classes
  - Life events
  - Ontology terms
  - Service classes
  - Target groups
- name: Infrastructure
  tags:
  - Health check