---
title: Developing authentication API-capable adapters and selectors
description: The PingFederate authentication API lets applications interact with authentication policies. Making an adapter or selector plugin API-capable means ensuring that an authentication application can invoke the plugin through this API.
component: pingfederate
version: 13.1
page_id: pingfederate:sdk_developers_guide:pf_develop_auth_api_capable_adapt_selec
canonical_url: https://docs.pingidentity.com/pingfederate/13.1/sdk_developers_guide/pf_develop_auth_api_capable_adapt_selec.html
llms_txt: https://docs.pingidentity.com/pingfederate/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
revdate: July 29, 2022
section_ids:
  related-links: Related links
---

# Developing authentication API-capable adapters and selectors

The PingFederate authentication API lets applications interact with authentication policies. Making an adapter or selector plugin API-capable means ensuring that an authentication application can invoke the plugin through this API.

API-capable plugins must handle JSON-based API requests. When a plugin is invoked through the authentication API endpoint, if it needs interaction from the user, the plugin sends a JSON-based response rather than rendering a template.

Adapter and selector plugins handle distinct kinds of requests and generate distinct kinds of responses. The main method you implement in adapters is `lookupAuthN()`. The main method you implement in selectors is `selectContext()`.

Developing an API-capable plugin requires a dependency on the PingFederate authentication API SDK JAR file, `pf-authn-api-sdk-version.jar`. In the PingFederate installation package, you can find the SDK JAR file in the `server/default/lib` directory. Documentation for the classes are in the Javadocs for the standard PingFederate SDK, under `sdk/doc/index.html` in the PingFederate install package.

## Related links

* [Authentication API](../developers_reference_guide/pf_authentication_api.html)

* [Authentication API states, actions, and models](pf_authentication_api_states_actions_and_models.html)

* [Specification of the plugin API](pf_specification_plugin_api.html)

* [State model contents](pf_state_model_contents.html)

* [Non-interactive plugins](pf_noninteract_plugins.html)

* [Runtime behavior implementation](pf_runtime_behavior_implement.html)

* [Session state management](pf_sess_state_manage.html)

* [Error messages and localization](pf_error_messages_localization.html)
