---
title: "Authenticate via a method supplied via a query string parameter"
method: POST
path: "/authenticate"
tags: ["Authentication"]
---

# Authenticate via a method supplied via a query string parameter

`POST /authenticate`

## Request

- Base URL: `https://demo.ziti.dev/edge/client/v1`
- URL: `https://demo.ziti.dev/edge/client/v1/authenticate`
- Auth: none required
- TypeScript: <https://skmtc.dev/openziti/apis/ziti-edge-client/docs/authenticate/post.ts> (a function with typed inputs; its response is checked against the schema)

Allowed authentication methods include "password", "cert", and "ext-jwt"

## Query parameters

- `method` 'password' | 'cert' | 'ext-jwt', required

## Request body

- Authenticate: A generic authenticate object meant for use with the /authenticate path. Required fields depend on authentication method.
  - `configTypes` string[]: Specific configuration types that should be returned
  - `envInfo` EnvInfo: Environment information an authenticating client may provide
    - `arch` string
    - `domain` string
    - `hostname` string
    - `os` string
    - `osRelease` string
    - `osVersion` string
  - `password` string
  - `sdkInfo` SdkInfo: SDK information an authenticating client may provide
    - `appId` string
    - `appVersion` string
    - `branch` string
    - `revision` string
    - `type` string
    - `version` string
  - `username` string

## Response `200`

The API session associated with the session used to issue the request

- CurrentApiSessionDetailEnvelope
  - `data` CurrentApiSessionDetail, required: An API Session object for the current API session
    - `_links` object, required: A map of named links
    - `createdAt` string, date-time, required
    - `id` string, required
    - `tags` Tags
    - `updatedAt` string, date-time, required
    - `authQueries` AuthQueryDetail[], required
      - `clientId` string
      - `format` 'numeric' | 'alpha' | 'alphaNumeric'
      - `httpMethod` string
      - `httpUrl` string
      - `id` string
      - `isTotpEnrolled` boolean
      - `maxLength` integer
      - `minLength` integer
      - `provider` 'ziti' | 'url', required
      - `scopes` string[]
      - `typeId` 'MFA' | 'TOTP' | 'EXT-JWT'
    - `authenticatorId` string, required
    - `cachedLastActivityAt` string, date-time
    - `configTypes` string[], required
    - `identity` EntityRef, required: A reference to another resource and links to interact with it
      - `_links` object: A map of named links
      - `entity` string
      - `id` string
      - `name` string
    - `identityId` string, required
    - `improperClientCertChain` boolean
    - `ipAddress` string, required
    - `isCertExtendRequested` boolean
    - `isCertExtendable` boolean, required
    - `isCertKeyRollRequested` boolean
    - `isMfaComplete` boolean, required
    - `isMfaRequired` boolean, required
    - `lastActivityAt` string, date-time
    - `token` string, required
    - `expirationSeconds` integer, required
    - `expiresAt` string, date-time, required
  - `meta` Meta, required
    - `apiEnrollmentVersion` string
    - `apiVersion` string
    - `filterableFields` string[]
    - `pagination` Pagination
      - `limit` number, required
      - `offset` number, required
      - `totalCount` number, required

## Other responses

- `400`: The supplied request contains invalid fields or could not be parsed (json and non-json bodies). The error's code, message, and cause fields can be inspected for further information
- `401`: The authentication request could not be processed as the credentials are invalid
- `429`: The resource requested is rate limited and the rate limit has been exceeded

## Changes

- **2026-10-14** `f7b51eaafbbb`: 1 breaking
  - the response property `data/allOf[#/components/schemas/apiSessionDetail]/allOf[#/components/schemas/baseEntity]/tags` became nullable for the status `200`
- **2025-11-04** `e8b8c6cc7e72`: 4 info
  - added the optional property `data/allOf[#/components/schemas/apiSessionDetail]/allOf[subschema #2]/authQueries/items/isTotpEnrolled` to the response with the `200` status
  - added the optional property `data/allOf[#/components/schemas/apiSessionDetail]/allOf[subschema #2]/improperClientCertChain` to the response with the `200` status
  - added the optional property `data/allOf[#/components/schemas/apiSessionDetail]/allOf[subschema #2]/isCertExtendRequested` to the response with the `200` status
  - added the optional property `data/allOf[#/components/schemas/apiSessionDetail]/allOf[subschema #2]/isCertKeyRollRequested` to the response with the `200` status
- …earlier changes not shown

[Operation history](https://skmtc.dev/openziti/apis/ziti-edge-client/changes/authenticate/post.md)

---

[API](https://skmtc.dev/openziti/apis/ziti-edge-client.md) - [All operations](https://skmtc.dev/openziti/apis/ziti-edge-client/llms.txt) - [OpenAPI document](https://skmtc.dev/openziti/apis/ziti-edge-client/revisions/f7b51eaafbbb?raw)
