e-Devlet Kapısı icon

e-Devlet Kapısı Data API: KPS identity and service catalog

T.C. Cumhurbaşkanlığı Siber Güvenlik Başkanlığı · Identity

e-Devlet Kapısı is the official Android app for Turkey's national e-government gateway, published by T.C. Cumhurbaşkanlığı Siber Güvenlik Başkanlığı. It brings government-service search, favorite procedures, My City institution lists, Personal Info and barcode or QR document checking into one mobile experience, with selected procedures opening in service or payment webviews. Sign-in options include an e-Devlet password and TCKK identity-card NFC verification with a PIN and SMS confirmation, alongside push approvals for two-factor login. Turkish citizens in Turkey and abroad, including residents of Germany, use it to reach public services from their phones.

KPS identity records connect kimlikNo and adSoyad with the registered address in acikAdres, the registry update date in kpsSonGuncellemeTarihi and verification flags such as epostaVerified and cepTelVerified. With the account holder's authorization, those fields support identity matching and form pre-filling for onboarding teams. Card-proofing records add token, challenge and smsRequired; account settings expose two-factor status through ikiAsamaOtpAcikMi.

Service directories pair serviceName and serviceCode with institutionName, while search results use hizmetAdi and hizmetKodu. Municipal portals can group institutions by cityCode and show available-service counts from serviceCount, then connect those institutions with matching procedures. Document-checking workflows use the returned barkodluBelge HTML. Push approvals associate did and tid with approvalType, resultCode and server time. openData Studio turns these catalog and verification data structures into callable open data for civic-service integrations, with account-specific records remaining subject to user authorization.

Screenshots

  • e-Devlet Kapısı screenshot 1
  • e-Devlet Kapısı screenshot 2
  • e-Devlet Kapısı screenshot 3
  • e-Devlet Kapısı screenshot 4
  • e-Devlet Kapısı screenshot 5
  • e-Devlet Kapısı screenshot 6
  • e-Devlet Kapısı screenshot 7
  • e-Devlet Kapısı screenshot 8

API surface

The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.

  • Government service catalog

    POST /v1/services/list opendata

    Loads service-catalog tiles with serviceName, serviceCode, institutionName and the link used to open a selected procedure.

    Auth: Login-stage form submission without a session cookie. The login flag indicates session status.

    • return
    • login
    • data
    • baseUrl
    • content
    • conceptServices
    • serviceDomainURLs
    • resultCode
    • resultMessage
    • resultText
    • configPath
    • explanation
    • question
    • iconName
    • institutionCode
    • institutionName
    • link
    • serviceCode
    • serviceName
    • serviceDomainType
    POST /v1/services/list HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    get=get&appVersion=<app-version>&operatingSystem=Android&language=tr&mode=demo
    {
      "return": true,
      "login": 1,
      "data": {
        "baseUrl": "<service-root>",
        "content": [
          {
            "configPath": "<service-reference>",
            "explanation": "Example government procedure",
            "question": "",
            "iconName": "<service-icon>",
            "institutionCode": 101,
            "institutionName": "Example public institution",
            "link": "<service-link>",
            "serviceCode": 1001,
            "serviceName": "Example service",
            "serviceDomainType": 1
          }
        ],
        "conceptServices": [],
        "serviceDomainURLs": [],
        "resultCode": 0,
        "resultMessage": "OK",
        "resultText": "OK"
      }
    }
  • Search government services

    POST /v1/services/search opendata

    Searches the government-service catalog by text and returns procedure names, service and institution codes, and mobile service-link references.

    Auth: Login-stage form submission without a session cookie. The login flag indicates session status.

    • return
    • login
    • data
    • baseUrl
    • serviceDomainURLs
    • content
    • hizmetAdi
    • hizmetKodu
    • kurumAdi
    • kurumKodu
    • kurumTipi
    • mobilHizmetKlasoru
    • mobilHizmetURL
    • iconName
    • url
    • serviceDomainType
    POST /v1/services/search HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    isMobile=true&aranan=example&appVersion=<app-version>&operatingSystem=Android&language=tr&mode=demo
    {
      "return": true,
      "login": 1,
      "data": {
        "baseUrl": "<service-root>",
        "serviceDomainURLs": [],
        "content": [
          {
            "hizmetAdi": "Example civil-registry service",
            "hizmetKodu": "1002",
            "kurumAdi": "Example registry institution",
            "kurumKodu": "102",
            "kurumTipi": "merkezi",
            "mobilHizmetKlasoru": "<service-folder>",
            "mobilHizmetURL": "<service-link>",
            "iconName": "<service-icon>",
            "url": "<service-link>",
            "serviceDomainType": 1
          }
        ]
      }
    }
  • Institutions by city (My City)

    POST /v1/agencies/by-city opendata

    Lists municipalities and agencies for a cityCode, with institutionName and available-service counts for the My City directory.

    Auth: Login-stage form submission without a session cookie. The login flag indicates session status.

    • return
    • login
    • data
    • resultCode
    • content
    • kod
    • baseUrl
    • institutionCode
    • institutionName
    • serviceCount
    • totalCount
    • sectionCode
    • cityCode
    • categoryCode
    • iconName
    POST /v1/agencies/by-city HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    get=get&categoryCode=2&cityCode=34&appVersion=<app-version>&operatingSystem=Android&language=tr&mode=demo
    {
      "return": true,
      "login": 1,
      "data": {
        "resultCode": 0,
        "content": [
          {
            "institutionCode": 3401,
            "institutionName": "Example municipality",
            "serviceCount": 12,
            "totalCount": 12,
            "sectionCode": 2,
            "cityCode": 34,
            "categoryCode": 2,
            "iconName": "<municipality-icon>"
          }
        ],
        "kod": 0,
        "baseUrl": "<service-root>"
      }
    }
  • Toggle favorite service

    POST /v1/services/favorites/update opendata

    Adds or removes a service from the home favorites list using favori and hizmetKodu, returning the updated service tiles.

    Auth: Login-stage form submission without a session cookie. The login flag indicates session status.

    • return
    • login
    • data
    • baseUrl
    • content
    • resultCode
    • resultMessage
    • resultText
    • configPath
    • explanation
    • iconName
    • institutionCode
    • institutionName
    • link
    • serviceCode
    • serviceName
    • serviceDomainType
    • favori
    • hizmetKodu
    POST /v1/services/favorites/update HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    favori=add&hizmetKodu=1001&appVersion=<app-version>&operatingSystem=Android&language=tr&mode=demo
    {
      "return": true,
      "login": 1,
      "data": {
        "baseUrl": "<service-root>",
        "content": [
          {
            "configPath": "<service-reference>",
            "explanation": "Example government procedure",
            "iconName": "<service-icon>",
            "institutionCode": 101,
            "institutionName": "Example public institution",
            "link": "<service-link>",
            "serviceCode": 1001,
            "serviceName": "Example service",
            "serviceDomainType": 1
          }
        ],
        "resultCode": 0,
        "resultMessage": "OK",
        "resultText": "OK"
      }
    }
  • Citizen KPS profile

    POST /v1/account/profile/read osint

    Returns the signed-in user's KPS identity, registered address, phone and email verification flags, and two-factor account status for Personal Info.

    Auth: Authenticated session cookie (w3a) and a stored User-Agent. A login value of 0 indicates that sign-in is required.

    • return
    • login
    • data
    • kullaniciBilgisi
    • kimlikBilgisi
    • adresBilgisi
    • kisiselBilgiler
    • kimlikNo
    • ad
    • soyad
    • adSoyad
    • cinsiyet
    • dogumTarih
    • babaAd
    • anaAd
    • dogumYer
    • medeniHal
    • adresNo
    • kpsSonGuncellemeTarihi
    • acikAdres
    • ceptelUlkeKodu
    • ceptel
    • eposta
    • epostaVerified
    • cepTelVerified
    • yuzyuzeTelVerfied
    • twoFactorLogin
    • twoFactorUser
    • canShowBanner
    • ikiAsamaOtpAcikMi
    POST /v1/account/profile/read HTTP/1.1
    Cookie: w3a=<session-cookie>
    User-Agent: <stored-user-agent>
    Content-Type: application/x-www-form-urlencoded
    
    appVersion=<app-version>&operatingSystem=Android&language=tr&mode=demo
    {
      "return": true,
      "login": 1,
      "data": {
        "kullaniciBilgisi": {
          "kimlikBilgisi": {
            "kimlikNo": "<identity-number>",
            "ad": "<given-name>",
            "soyad": "<family-name>",
            "adSoyad": "<full-name>",
            "cinsiyet": "<sex-code>",
            "dogumTarih": "<birth-date>",
            "babaAd": "<father-name>",
            "anaAd": "<mother-name>",
            "dogumYer": "<birthplace>",
            "medeniHal": "<marital-status>",
            "adresNo": "<address-number>",
            "kpsSonGuncellemeTarihi": "<updated-date>"
          },
          "adresBilgisi": {
            "acikAdres": "<registered-address>",
            "kpsSonGuncellemeTarihi": "<updated-date>"
          },
          "kisiselBilgiler": {
            "ceptelUlkeKodu": "90",
            "ceptel": "<masked-phone>",
            "eposta": "<email-address>",
            "epostaVerified": "E",
            "cepTelVerified": "E",
            "yuzyuzeTelVerfied": "H"
          }
        },
        "twoFactorLogin": true,
        "twoFactorUser": 1,
        "canShowBanner": 1,
        "ikiAsamaOtpAcikMi": 1
      }
    }
  • NFC TCKK token challenge

    POST /v1/identity/card/challenge osint

    Starts TCKK chip sign-in by returning a token and challenge for the NFC card-read step.

    Auth: Pre-session login form with uuid, authCode and the card PIN. No session cookie is required at this step.

    • return
    • login
    • data
    • uuid
    • authCode
    • pin
    • token
    • challenge
    • sonucKodu
    • sonucAciklamasi
    POST /v1/identity/card/challenge HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    uuid=<device-uuid>&authCode=<authorization-code>&pin=<card-pin>&operatingSystem=Android&appVersion=<app-version>&language=tr&mode=demo
    {
      "return": true,
      "login": 0,
      "data": {
        "token": "<card-token>",
        "challenge": "<card-challenge>",
        "sonucKodu": "0",
        "sonucAciklamasi": "OK"
      }
    }
  • NFC TCKK card verification

    POST /v1/identity/card/verify osint

    Submits TCKK chip data groups and signedData, then reports whether SMS confirmation is needed and which masked phone receives it.

    Auth: Pre-session login form using the token and uuid from the card-challenge step, plus card proof. No session cookie is attached.

    • return
    • login
    • data
    • seriNo
    • token
    • uuid
    • file1
    • file2
    • file3
    • signedData
    • sonucKodu
    • sonucAciklamasi
    • smsRequired
    • cepTel
    • ulkeKodu
    • isSMSSent
    • smsDuration
    POST /v1/identity/card/verify HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    seriNo=<card-serial>&token=<card-token>&uuid=<device-uuid>&file1=<chip-group-1>&file2=<chip-group-2>&file3=<chip-group-3>&signedData=<signed-card-proof>&operatingSystem=Android&appVersion=<app-version>&language=tr&mode=demo
    {
      "return": true,
      "login": 0,
      "data": {
        "sonucKodu": "0",
        "sonucAciklamasi": "OK",
        "smsRequired": true,
        "cepTel": "<masked-phone>",
        "ulkeKodu": "90",
        "isSMSSent": true,
        "smsDuration": 120
      }
    }
  • NFC TCKK SMS confirmation

    POST /v1/identity/card/confirm osint

    Confirms the SMS code against the NFC token to complete chip-based sign-in.

    Auth: Pre-session login form using the prior card token and uuid together with the SMS confirmation code.

    • return
    • login
    • data
    • messageArr
    • uuid
    • token
    • smsCode
    POST /v1/identity/card/confirm HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    uuid=<device-uuid>&token=<card-token>&smsCode=<sms-code>&operatingSystem=Android&appVersion=<app-version>&language=tr&mode=demo
    {
      "return": true,
      "login": 1,
      "data": {},
      "messageArr": [
        "Example confirmation successful"
      ]
    }
  • Barcode / QR document check

    POST /v1/documents/verify opendata

    Checks an issued document barcode or QR and returns barkodluBelge HTML; the flow can also request the associated validation fields.

    Auth: Authenticated session cookie (w3a) and a stored User-Agent. A login value of 0 indicates that sign-in is required. Verification-field discovery also accepts field and sorgulananBarkod.

    • return
    • login
    • data
    • messageArr
    • barkodluBelge
    • qr
    • os
    • field
    • sorgulananBarkod
    POST /v1/documents/verify HTTP/1.1
    Cookie: w3a=<session-cookie>
    Content-Type: application/x-www-form-urlencoded
    
    qr=<document-qr>&os=Android&appVersion=<app-version>&language=tr&mode=demo
    {
      "return": true,
      "login": 1,
      "data": {
        "barkodluBelge": "<html><body>Illustrative document verification result</body></html>"
      },
      "messageArr": []
    }
  • Push OTP approval

    POST /v1/access/approvals/submit osint

    Confirms or rejects a login push approval using device and transaction identifiers, otp and approvalType, returning resultCode and server time.

    Auth: Device-linked OTP form using did, tid, t and otp with an approval choice. No session cookie is attached.

    • did
    • tid
    • t
    • otp
    • op
    • approvalType
    • operatingSystem
    • appVersion
    • language
    • mode
    • resultCode
    • time
    POST /v1/access/approvals/submit HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    did=<device-id>&tid=<transaction-id>&t=<push-token>&otp=<one-time-code>&op=approve&approvalType=1&operatingSystem=Android&appVersion=<app-version>&language=tr&mode=demo
    {
      "resultCode": "0",
      "time": "2026-10-27T12:00:00Z"
    }
  • Session logout

    POST /v1/account/session/end osint

    Ends the current signed-in session and returns login and return flags indicating the sign-out result.

    Auth: Authenticated session cookie (w3a) and a stored User-Agent. A login value of 0 indicates that sign-in is required.

    • login
    • return
    • appVersion
    • operatingSystem
    • language
    • mode
    POST /v1/account/session/end HTTP/1.1
    Cookie: w3a=<session-cookie>
    Content-Type: application/x-www-form-urlencoded
    
    appVersion=<app-version>&operatingSystem=Android&language=tr&mode=demo
    {
      "login": 0,
      "return": true
    }

Data categories

  • identity
  • government-services
  • document-verification
  • two-factor-auth

Where teams use this data

  • HR onboarding against KPS identity

    Employers pull kimlikNo, adSoyad, dogumTarih and acikAdres from the signed-in profile to pre-fill contracts and match the TCKK chip proofing trail (token, challenge, smsRequired) instead of re-keying a nüfus extract.

  • Municipal service directory

    City portals sync institutionName, cityCode and serviceCount for My City, then attach hizmetAdi / hizmetKodu search hits so residents jump to the matching procedure without browsing the full catalog.

  • Issued-document barcode check

    Registrars post a scanned QR and render barkodluBelge to confirm a nüfus or diploma print is still valid, using the same field/sorgulananBarkod list the in-app scanner shows.

  • Push-OTP desk approval

    Helpdesks consume did, tid, otp and approvalType on the giris approval call, plus ikiAsamaOtpAcikMi from the profile, to reconcile which devices completed two-factor login.

Frequently asked questions

Which identity fields are represented in the personal profile?

The signed-in profile groups registry identity under kullaniciBilgisi.kimlikBilgisi, including kimlikNo, ad, soyad, adSoyad, cinsiyet, dogumTarih, babaAd, anaAd, dogumYer, medeniHal, adresNo and kpsSonGuncellemeTarihi. Address and contact sections include acikAdres, ceptel and eposta with verification flags. Profile, document checking and sign-out use a session cookie with a stored User-Agent. These account-specific records require the account holder's authorization; the examples use placeholders rather than personal details.

How do TCKK NFC sign-in and push OTP approval differ?

NFC sign-in begins with uuid, authCode and a card PIN to obtain token and challenge. Card verification submits seriNo, chip file1 through file3 and signedData. If smsRequired is true, smsCode confirms the existing token and uuid to finish chip-based sign-in. Catalog requests and pre-session NFC stages use the login flow without a session cookie. Push approval is a separate device-linked flow using did, tid, otp and approvalType, with resultCode and time in the response. Where present, login indicates session status; 0 means there is no active signed-in session, not necessarily that a pre-session NFC step failed.

Which fields support a searchable municipal service directory?

Catalog entries pair serviceName and serviceCode with institutionName and service links. Text-search results provide hizmetAdi, hizmetKodu, kurumAdi and kurumKodu. My City records add cityCode, categoryCode and serviceCount so a portal can group institutions by city and connect them with matching procedures.

What does a document check return, and are the examples official?

The document-check flow accepts qr and returns document HTML as barkodluBelge, together with status and message fields. It can also request validation-field details using field and sorgulananBarkod. The response shown here is illustrative, not an actual citizen document. All path-only API models and sample values on this page are integration examples rather than official production service addresses. They describe catalog, identity and verification data structures without supplying production addresses or access credentials, and do not grant access to anyone's personal records or approval codes.

Apps similar to e-Devlet Kapısı

  • e-Nabız — e-Nabız is the Turkish Ministry of Health personal-health app, where citizens and authorised relatives or physicians open diagnoses, tests, images, medicines, vaccines and allergies after activating the service by signing in through e-Devlet on enabiz.gov.tr.
  • GİB — GİB is the Turkish Revenue Administration (Gelir İdaresi Başkanlığı) mobile app for viewing and paying taxes, fees and penalties the administration collects, plus registry, vehicle and e-Archive invoice records.
  • Cimer Mobil — Cimer Mobil is the Presidential Communication Center app from Türkiye's Directorate of Communications, used to file and track complaints, requests, suggestions and information requests to public institutions, including applications that CİMER also accepts via e-Devlet.
  • mygov — mygov is Azerbaijan's Innovation and Digital Development Agency app for digital access to government services and contact with authorities, and turkiye.gov.tr lists the my.gov.az portal as a sister e-government gateway.
  • Absher — Absher is the Saudi Ministry of Interior e-services app and portal, launched in 2010, covering document renewals, appointments, Hajj permits, job applications and crime reporting.
  • Singpass — Singpass is Singapore's national digital identity, used to sign in to government and business services, present identity in person, digitally sign, and open official personal data.
  • Pak Identity — Pak Identity is NADRA's Android app for Pakistani citizens to apply for CNIC and NICOP issuance, modification, renewal and reprint, with in-app photo, fingerprint and signature capture and online payment.
  • DigiLocker — DigiLocker is India's Ministry of Electronics and Information Technology document wallet, where Aadhaar-linked users store and share issued licences, vehicle records, certificates and academic transcripts and can e-sign files.

Topics

  • e-Devlet Kapısı API
  • Turkey government service catalog
  • KPS identity fields
  • kimlikNo
  • hizmetAdi
  • barkodluBelge
  • TCKK NFC verification
  • municipal service directory
  • e-government data integration

Need this app's data API integrated?

We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.

  • NDA + SOW on every engagement
  • Delivery in 3–7 days
  • Payment only after acceptance
  • Work scoped to authorized use

Get a quote