{"items":[{"type":"link","label":"Login APIs","link":"/panther-services/apidef/apis/public/login","routeSlug":"/panther-services/apidef/apis/public/login","content":{"contentType":"overview","meta":{"name":"Login APIs"},"children":[{"nodeType":"container","panels":[{"title":"Overview","titleTranslationKey":"info.title","children":[]},{"title":"Languages","titleTranslationKey":"languages.title","children":[{"kind":"languages","options":[{"key":"curl","title":"curl","lang":"curl"},{"key":"javascript","title":"JavaScript","lang":"JavaScript"},{"key":"node","title":"Node.js","lang":"Node.js"},{"key":"python","title":"Python","lang":"Python"},{"key":"java","title":"Java","lang":"Java"},{"key":"csharp","title":"C#","lang":"C#"},{"key":"php","title":"PHP","lang":"PHP"},{"key":"go","title":"Go","lang":"Go"},{"key":"ruby","title":"Ruby","lang":"Ruby"},{"key":"r","title":"R","lang":"R"},{"key":"payload","title":"Payload","lang":"Payload"}]}]},{"title":"Servers","titleTranslationKey":"servers.title","children":[{"kind":"servers","servers":[{"url":"https://platformapi.securin.io"}],"mode":"default"}]}],"children":[{"nodeType":"overview-section-wrapper","children":[{"nodeType":"header","level":1,"label":"Login APIs (1.1.0)","showPageActions":true},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":"API for authenticating users and applications to obtain access tokens. Supports OAuth2 token grants (username/password, client credentials, and refresh token flows) as well as OTP (one-time password) based authentication for resource-specific access verification."}],"sectionId":"/panther-services/apidef/apis/public/login"}],"sectionId":"/panther-services/apidef/apis/public/login"}]}]}},{"type":"group","label":"Login","link":"/panther-services/apidef/apis/public/login/login","routeSlug":"/panther-services/apidef/apis/public/login/login","items":[{"label":"Authenticates a user or app to obtain an access token.","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/panther-services/apidef/apis/public/login/login/login","routeSlug":"/panther-services/apidef/apis/public/login/login/login","metadata":{"seo":{"title":"Authenticates a user or app to obtain an access token.","description":"This operation allows both users and apps to authenticate using their respective credentials (username/password or client ID/client secret). Upon successful authentication, an access token is returned for subsequent API calls."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"login","name":"Authenticates a user or app to obtain an access token.","isWebhook":false,"pointer":"/paths/~1account-service~1api~1v1~1oauth2~1token/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Authenticates a user or app to obtain an access token.","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"This operation allows both users and apps to authenticate using their respective credentials (username/password or client ID/client secret). Upon successful authentication, an access token is returned for subsequent API calls."},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/x-www-form-urlencoded"],"mediaTypeSchemas":{"application/x-www-form-urlencoded":{"schemaId":"schema_219"}},"schemaId":"schema_219","pointer":"/paths/~1account-service~1api~1v1~1oauth2~1token/post/requestBody","description":"The request body containing the login credentials, which can be a username and password for a user, or a client ID and client secret for an app."}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/account-service/api/v1/oauth2/token","servers":[{"url":"https://platformapi.securin.io"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[],"requestBody":{"application/x-www-form-urlencoded":{"schemaId":"schema_219"}},"responseCodes":["200","400","401","403","404","406","408","409","412","429","500","501","502","503","504"],"pointer":"/account-service/api/v1/oauth2/token","href":"login/login","openApiOperationId":"login","summary":"Authenticates a user or app to obtain an access token."},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://platformapi.securin.io"}],"schemaId":"schema_219","mediaTypes":["application/x-www-form-urlencoded"],"mediaTypeSchemas":{"application/x-www-form-urlencoded":{"schemaId":"schema_219"}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Authentication was successful, and an access token was returned.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Oauth2LoginResponse"}},"schemaId":"components/schemas/Oauth2LoginResponse"},{"code":"400","description":"The request failed due to invalid credentials, malformed request, or a validation error.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PantherErrorResponse"}},"schemaId":"components/schemas/PantherErrorResponse"},{"code":"401","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unauthorized — Authentication is missing or invalid."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/401/content/application~1json/example"]}},"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/401/content/application~1json/example"],"headers":{"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}},"headerSchemaId":"schema_220"},{"code":"403","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Forbidden — Authenticated but not permitted to access this resource."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/403/content/application~1json/example"]}},"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/403/content/application~1json/example"],"headers":{"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}},"headerSchemaId":"schema_220"},{"code":"404","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Not Found — The requested resource does not exist."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/404/content/application~1json/example"]}},"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/404/content/application~1json/example"],"headers":{"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}},"headerSchemaId":"schema_220"},{"code":"406","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Not Acceptable — The requested representation/format cannot be produced."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/406/content/application~1json/example"]}},"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/406/content/application~1json/example"],"headers":{"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}},"headerSchemaId":"schema_220"},{"code":"408","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Request Timeout — The server timed out waiting for the request to complete."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/408/content/application~1json/example"]}},"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/408/content/application~1json/example"],"headers":{"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}},"headerSchemaId":"schema_220"},{"code":"409","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Conflict — The request conflicts with the current state of the resource."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/409/content/application~1json/example"]}},"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/409/content/application~1json/example"],"headers":{"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}},"headerSchemaId":"schema_220"},{"code":"412","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Precondition Failed — A precondition for the request was not met."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/412/content/application~1json/example"]}},"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/412/content/application~1json/example"],"headers":{"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}},"headerSchemaId":"schema_220"},{"code":"429","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Too Many Requests — Rate limit exceeded. Back off and retry per the X-RateLimit-* headers."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/429/content/application~1json/example"]}},"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/429/content/application~1json/example"],"headers":{"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"},"X-RateLimit-Limit-Concurrency":{"$ref":"#/components/headers/X-RateLimit-Limit-Concurrency"},"X-RateLimit-Remaining-Concurrency":{"$ref":"#/components/headers/X-RateLimit-Remaining-Concurrency"},"X-RateLimit-Scope":{"$ref":"#/components/headers/X-RateLimit-Scope"}},"headerSchemaId":"schema_221"},{"code":"500","description":"An unexpected server error occurred.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PantherErrorResponse"}},"schemaId":"components/schemas/PantherErrorResponse"},{"code":"501","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Not Implemented — The requested capability is not supported."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/501/content/application~1json/example"]}},"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/501/content/application~1json/example"],"headers":{"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}},"headerSchemaId":"schema_220"},{"code":"502","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bad Gateway — An upstream dependency returned an invalid response."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/502/content/application~1json/example"]}},"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/502/content/application~1json/example"],"headers":{"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}},"headerSchemaId":"schema_220"},{"code":"503","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Service Unavailable — The service is temporarily unavailable. Retry later."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/503/content/application~1json/example"]}},"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/503/content/application~1json/example"],"headers":{"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}},"headerSchemaId":"schema_220"},{"code":"504","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Gateway Timeout — An upstream dependency timed out."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/504/content/application~1json/example"]}},"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/504/content/application~1json/example"],"headers":{"X-Trace-ID":{"$ref":"#/components/headers/X-Trace-ID"}},"headerSchemaId":"schema_220"}],"pointer":"/paths/~1account-service~1api~1v1~1oauth2~1token/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/Oauth2LoginResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Oauth2LoginResponse"}}},{"code":"400","schemaId":"components/schemas/PantherErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PantherErrorResponse"}}},{"code":"401","schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/401/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/401/content/application~1json/example"]}}},{"code":"403","schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/403/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/403/content/application~1json/example"]}}},{"code":"404","schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/404/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/404/content/application~1json/example"]}}},{"code":"406","schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/406/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/406/content/application~1json/example"]}}},{"code":"408","schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/408/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/408/content/application~1json/example"]}}},{"code":"409","schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/409/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/409/content/application~1json/example"]}}},{"code":"412","schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/412/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/412/content/application~1json/example"]}}},{"code":"429","schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/429/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/429/content/application~1json/example"]}}},{"code":"500","schemaId":"components/schemas/PantherErrorResponse","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PantherErrorResponse"}}},{"code":"501","schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/501/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/501/content/application~1json/example"]}}},{"code":"502","schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/502/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/502/content/application~1json/example"]}}},{"code":"503","schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/503/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/503/content/application~1json/example"]}}},{"code":"504","schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/504/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error","exampleIds":["paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/504/content/application~1json/example"]}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/login/login"}],"panels":[]}]},"httpPath":"/account-service/api/v1/oauth2/token"}],"content":{"contentType":"group","meta":{"name":"Login"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Login","showPageActions":true},{"nodeType":"markdoc","content":"Operations for authenticating users via OAuth2 token grants and OTP-based verification. Includes token issuance, OTP initiation and validation, and OTP resend capabilities."}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/account-service/api/v1/oauth2/token","summary":"Authenticates a user or app to obtain an access token.","prefix":{"name":"post","color":"post"},"badges":[],"link":"/login/login","deprecated":false}]}]}]}]}}],"store":{"schemaStore":{"components/schemas/UserOauth2LoginRequest":{"id":"components/schemas/UserOauth2LoginRequest","kind":"json-schema","title":"UserOauth2LoginRequest","data":{"type":"object","required":["username","password"],"properties":{"username":{"type":"string","example":"johndoe"},"password":{"type":"string","example":"securepassword"}}}},"components/schemas/ClientOauth2LoginRequest":{"id":"components/schemas/ClientOauth2LoginRequest","kind":"json-schema","title":"ClientOauth2LoginRequest","data":{"type":"object","required":["client_id","client_secret"],"properties":{"client_id":{"type":"string","example":"app123"},"client_secret":{"type":"string","example":"secret123"}}}},"components/schemas/RefreshTokenOauth2LoginRequest":{"id":"components/schemas/RefreshTokenOauth2LoginRequest","kind":"json-schema","title":"RefreshTokenOauth2LoginRequest","data":{"type":"object","required":["refresh_token"],"properties":{"refresh_token":{"type":"string","example":"refresh token"}}}},"components/schemas/Oauth2LoginResponse":{"id":"components/schemas/Oauth2LoginResponse","kind":"json-schema","title":"Oauth2LoginResponse","data":{"type":"object","properties":{"access_token":{"type":"string"},"refresh_token":{"type":"string"},"token_type":{"type":"string"},"id_token":{"type":"string"},"expires_in":{"type":"integer"},"refresh_expires_in":{"type":"integer"},"session_state":{"type":"string"},"scope":{"type":"string"},"not-before-policy":{"type":"integer"}}}},"components/schemas/PantherResponseStatus":{"id":"components/schemas/PantherResponseStatus","kind":"json-schema","title":"PantherResponseStatus","data":{"type":"string","enum":["SUCCESS","ERROR"]}},"components/schemas/PantherErrorResponse":{"id":"components/schemas/PantherErrorResponse","kind":"json-schema","title":"PantherErrorResponse","data":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/PantherResponseStatus"},"message":{"type":"string","description":"error message"},"errorHint":{"type":"string","description":"error hint"},"statusCode":{"type":"integer","description":"error status code","example":400},"traceId":{"type":"string","description":"Created account ID","example":"asdqe32dwqd21e"},"spanId":{"type":"string","description":"Created account ID","example":"asd23e21dw1232"}}}},"components/schemas/Error":{"id":"components/schemas/Error","kind":"json-schema","title":"Error","data":{"type":"object","description":"Standard error envelope returned by the platform. No field is marked required: field presence varies across APIs (older APIs in particular may omit several), so all fields are documented as optional.","properties":{"status":{"type":"string","example":"ERROR"},"message":{"type":"string","description":"Human-readable error message."},"statusCode":{"type":"string","description":"HTTP status code as a string. Usually present.","example":"400"},"traceId":{"type":"string","description":"Correlation id (also in X-Trace-ID). Usually present; quote to support."},"spanId":{"type":"string","description":"Span id within the trace. Usually present."},"additionalInfo":{"type":"array","items":{},"description":"Additional details; may be empty or absent on older APIs."},"errorCode":{"type":"string","description":"Machine-readable application error code, when applicable."},"errorHint":{"type":"string","description":"Optional actionable hint."}}}},"schema_219":{"kind":"json-schema","data":{"oneOf":[{"$ref":"#/components/schemas/UserOauth2LoginRequest"},{"$ref":"#/components/schemas/ClientOauth2LoginRequest"},{"$ref":"#/components/schemas/RefreshTokenOauth2LoginRequest"}]},"id":"schema_219"},"schema_220":{"kind":"json-schema","data":{"type":"object","properties":{"X-Trace-ID":{"type":"string","description":"Correlation id; present on every response, matches traceId in the body.","example":"19f635b05ff1ff65a322c2661941d7e9"}}},"id":"schema_220"},"schema_221":{"kind":"json-schema","data":{"type":"object","properties":{"X-Trace-ID":{"type":"string","description":"Correlation id; present on every response, matches traceId in the body.","example":"19f635b05ff1ff65a322c2661941d7e9"},"X-RateLimit-Limit-Concurrency":{"type":"integer","description":"Max concurrent requests for the caller's scope.","example":5},"X-RateLimit-Remaining-Concurrency":{"type":"integer","description":"Remaining concurrent-request budget.","example":0},"X-RateLimit-Scope":{"type":"string","description":"Scope the rate limit was evaluated against.","example":"user:*:clientType:API"}}},"id":"schema_221"}},"exampleStore":{"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/401/content/application~1json/example":{"value":{"status":"ERROR","message":"Authentication is required or the provided credentials are invalid.","statusCode":"401","traceId":"<trace-id>","spanId":"<span-id>","additionalInfo":[]},"id":"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/401/content/application~1json/example"},"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/403/content/application~1json/example":{"value":{"status":"ERROR","message":"You do not have permission to access this resource.","statusCode":"403","traceId":"<trace-id>","spanId":"<span-id>","additionalInfo":[]},"id":"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/403/content/application~1json/example"},"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/404/content/application~1json/example":{"value":{"status":"ERROR","message":"The requested resource was not found.","statusCode":"404","traceId":"<trace-id>","spanId":"<span-id>","additionalInfo":[]},"id":"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/404/content/application~1json/example"},"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/406/content/application~1json/example":{"value":{"status":"ERROR","message":"The requested representation is not available.","statusCode":"406","traceId":"<trace-id>","spanId":"<span-id>","additionalInfo":[]},"id":"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/406/content/application~1json/example"},"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/408/content/application~1json/example":{"value":{"status":"ERROR","message":"The server timed out waiting for the request.","statusCode":"408","traceId":"<trace-id>","spanId":"<span-id>","additionalInfo":[]},"id":"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/408/content/application~1json/example"},"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/409/content/application~1json/example":{"value":{"status":"ERROR","message":"The request conflicts with the current state of the resource.","statusCode":"409","traceId":"<trace-id>","spanId":"<span-id>","additionalInfo":[]},"id":"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/409/content/application~1json/example"},"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/412/content/application~1json/example":{"value":{"status":"ERROR","message":"A precondition for the request was not met.","statusCode":"412","traceId":"<trace-id>","spanId":"<span-id>","additionalInfo":[]},"id":"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/412/content/application~1json/example"},"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/429/content/application~1json/example":{"value":{"status":"ERROR","message":"Rate limit exceeded. Please retry later.","statusCode":"429","traceId":"<trace-id>","spanId":"<span-id>","additionalInfo":[]},"id":"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/429/content/application~1json/example"},"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/501/content/application~1json/example":{"value":{"status":"ERROR","message":"The requested functionality is not implemented.","statusCode":"501","traceId":"<trace-id>","spanId":"<span-id>","additionalInfo":[]},"id":"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/501/content/application~1json/example"},"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/502/content/application~1json/example":{"value":{"status":"ERROR","message":"Received an invalid response from an upstream service.","statusCode":"502","traceId":"<trace-id>","spanId":"<span-id>","additionalInfo":[]},"id":"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/502/content/application~1json/example"},"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/503/content/application~1json/example":{"value":{"status":"ERROR","message":"The service is temporarily unavailable. Please try again later.","statusCode":"503","traceId":"<trace-id>","spanId":"<span-id>","additionalInfo":[]},"id":"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/503/content/application~1json/example"},"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/504/content/application~1json/example":{"value":{"status":"ERROR","message":"An upstream service did not respond in time.","statusCode":"504","traceId":"<trace-id>","spanId":"<span-id>","additionalInfo":[]},"id":"paths/~1account-service~1api~1v1~1oauth2~1token/post/responses/504/content/application~1json/example"}},"securitySchemeStore":{},"servers":[{"url":"https://platformapi.securin.io"}],"specType":"openapi"},"options":{"corsProxyUrl":"","hideDownloadButtons":true,"mockServer":{"off":true},"disableRouter":true,"downloadUrls":[{"url":"/_bundle/panther-services/apidef/apis/public/login.json?download"},{"url":"/_bundle/panther-services/apidef/apis/public/login.yaml?download"}],"excludeFromSearch":false,"replayFeatures":{"graphql":false},"specType":"openapi","markdocOptions":{"tags":{},"nodes":{},"components":{}},"metadata":{"title":"Login APIs","description":"API for authenticating users and applications to obtain access tokens. Supports OAuth2 token grants (username/password, client credentials, and refresh token flows) as well as OTP (one-time password) based authentication for resource-specific access verification.\n"}},"baseSlug":"/panther-services/apidef/apis/public/login","routesMapping":{}}