---
openapi: 3.0.3
info:
  title: Domstolsverkets officiella statistik API
  description: REST-tjänster för öppna data kring officiell domstolsstatistik
  contact:
    name: Statistiksupporten vid Domstolsverket
    url: www.domstol.se
    email: statistik@dom.se
  version: v1
servers:
- url: /
  description: localhost
tags:
- name: Statistik
  description: Öppna data om officiell statistik
paths:
  /api/v1/statistik:
    get:
      tags:
      - Statistik
      description: Hämtar statistik för samtliga domstolar samtliga årtal
      operationId: hamtaSamtligaArtal
      responses:
        "200":
          description: Statistik för samtliga domstolar samtliga årtal
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ArsStatistikDTO'
        "500":
          description: Internt fel
  /api/v1/statistik/{artal}:
    get:
      tags:
      - Statistik
      description: Hämtar statistik för samtliga domstolar för ett årtal
      operationId: hamtaEttArtal
      parameters:
      - name: artal
        in: path
        required: true
        schema:
          format: int32
          type: integer
      responses:
        "200":
          description: Statistik för samtliga domstolar för ett årtal
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArsStatistikDTO'
        "404":
          description: Uppgifter hittades inte för angivet årtal
        "500":
          description: Internt fel
components:
  schemas:
    AndradUtgangDTO:
      type: object
      properties:
        antal:
          format: int32
          type: integer
        fortVidareAv:
          type: array
          items:
            $ref: '#/components/schemas/OverklagandePartDTO'
    AndringsOverklagandeFrekvensDTO:
      type: object
      properties:
        typ:
          type: string
        procent:
          format: float
          type: number
    ArsStatistikDTO:
      type: object
      properties:
        artal:
          format: int32
          type: integer
        domstolsslagLista:
          type: array
          items:
            $ref: '#/components/schemas/DomstolsslagDTO'
    AvgjordaMalDTO:
      type: object
      properties:
        antal:
          format: int32
          type: integer
        medDomOchHuvudforhandling:
          $ref: '#/components/schemas/DomOchHuvudforhandlingDTO'
        medAvgorandeTyper:
          $ref: '#/components/schemas/AvgorandeTyperDTO'
        medForhandlingTyper:
          $ref: '#/components/schemas/ForhandlingTyperDTO'
        medForhandlingstider:
          type: array
          items:
            $ref: '#/components/schemas/IntervallDTO'
        medBemanning:
          $ref: '#/components/schemas/BemanningDTO'
        medProvningstillstand:
          $ref: '#/components/schemas/ProvningstillstandDTO'
        medAndradUtgang:
          $ref: '#/components/schemas/AndradUtgangDTO'
    AvgorandeTyperDTO:
      type: object
      properties:
        antalMedDom:
          format: int32
          type: integer
        antalMedTredskoDom:
          format: int32
          type: integer
        antalMedSlutgiltigtBeslut:
          format: int32
          type: integer
        antalMedBeslut:
          format: int32
          type: integer
        antalMedAnnanAvgorandetyp:
          format: int32
          type: integer
    BalansDTO:
      type: object
      properties:
        antalInkomna:
          format: int32
          type: integer
        antalAvgjorda:
          format: int32
          type: integer
        antalUtgaende31dec:
          format: int32
          type: integer
    BalanseradeMalOchDessAlderDTO:
      type: object
      properties:
        antalBalans:
          format: int32
          type: integer
        antalBalansAldreAn6Manader:
          format: int32
          type: integer
        antalBalansAldreAn12Manader:
          format: int32
          type: integer
        antalBalansAldreAn24Manader:
          format: int32
          type: integer
    BemanningDTO:
      type: object
      properties:
        antalMedEnsamDomare:
          format: int32
          type: integer
        antalMedTreDomare:
          format: int32
          type: integer
        antalMedNamnd:
          format: int32
          type: integer
        antalAnnanSammansattning:
          format: int32
          type: integer
    DomOchHuvudforhandlingDTO:
      type: object
      properties:
        antalMedDom:
          format: int32
          type: integer
        antalMedDomOchHuvudforhandling:
          format: int32
          type: integer
    DomstolDTO:
      type: object
      properties:
        kod:
          type: string
        namn:
          type: string
        handlaggningstider:
          type: array
          items:
            $ref: '#/components/schemas/HandlaggningstidDTO'
        handlaggningstiderUngdom:
          type: array
          items:
            $ref: '#/components/schemas/HandlaggningstidUngdomDTO'
        avgjordaFortursmal:
          format: int32
          type: integer
        genomfordaHuvudforhandlingarBrottmal:
          format: int32
          type: integer
        installdaHuvudforhandlingarBrottmal:
          format: int32
          type: integer
        malKategorier:
          type: array
          items:
            $ref: '#/components/schemas/MalKategoriDTO'
    DomstolsslagDTO:
      type: object
      properties:
        domstolsslag:
          type: string
        instanser:
          type: array
          items:
            $ref: '#/components/schemas/DomstolstypDTO'
    DomstolstypDTO:
      type: object
      properties:
        domstolstyp:
          type: string
        handlaggningstider:
          type: array
          items:
            $ref: '#/components/schemas/HandlaggningstidDTO'
        handlaggningstiderUngdom:
          type: array
          items:
            $ref: '#/components/schemas/HandlaggningstidUngdomDTO'
        andringsOchOverklagandeFrekvensFranUnderratt:
          type: array
          items:
            $ref: '#/components/schemas/AndringsOverklagandeFrekvensDTO'
        domstolar:
          type: array
          items:
            $ref: '#/components/schemas/DomstolDTO'
    ForhandlingTyperDTO:
      type: object
      properties:
        antalMuntligForhandling:
          format: int32
          type: integer
        antalForhandling:
          format: int32
          type: integer
        timmarForhandling:
          format: float
          type: number
        antalHuvudforhandling:
          format: int32
          type: integer
        timmarHuvudforhandling:
          format: float
          type: number
        antalHaktningsforhandling:
          format: int32
          type: integer
        timmarHaktningsforhandling:
          format: float
          type: number
    HandlaggningstidDTO:
      type: object
      properties:
        verksamhetsmalKategori:
          type: string
        percentil:
          format: int32
          type: integer
        antalManader:
          format: float
          type: number
    HandlaggningstidUngdomDTO:
      type: object
      properties:
        kategori:
          type: string
        antalAvgjorda:
          format: int32
          type: integer
        antalManaderMedian:
          format: float
          type: number
        antalManader75percentil:
          format: float
          type: number
    InkomnaAvgjordaBalanseradeMalDTO:
      type: object
      properties:
        malgrupp:
          type: string
        maltyp:
          type: string
        balans:
          $ref: '#/components/schemas/BalansDTO'
        medAvgorandeTyper:
          $ref: '#/components/schemas/AvgorandeTyperDTO'
        konkurser:
          $ref: '#/components/schemas/KonkurserDTO'
    IntervallDTO:
      type: object
      properties:
        intervall:
          type: string
        timmar:
          format: float
          type: number
        antal:
          format: int32
          type: integer
    KonkurserDTO:
      type: object
      properties:
        antalInkomna:
          format: int32
          type: integer
        antalAvslutade:
          format: int32
          type: integer
        antalBalanserade:
          format: int32
          type: integer
    MalKategoriDTO:
      type: object
      properties:
        namn:
          type: string
        avgjordaMal:
          $ref: '#/components/schemas/AvgjordaMalDTO'
        balanseradeMalOchDessAlder:
          $ref: '#/components/schemas/BalanseradeMalOchDessAlderDTO'
        inkomnaAvgjordaBalanseradeMal:
          type: array
          items:
            $ref: '#/components/schemas/InkomnaAvgjordaBalanseradeMalDTO'
    OverklagandePartDTO:
      type: object
      properties:
        part:
          type: string
        antalAvgjorda:
          format: int32
          type: integer
        antalAndradUtgang:
          format: int32
          type: integer
    ProvningstillstandDTO:
      type: object
      properties:
        antalBeviljats:
          format: int32
          type: integer
        antalEjBeviljats:
          format: int32
          type: integer
        antalEjOmfattas:
          format: int32
          type: integer
