Skip to main content
POST
/
api
/
v1
/
discovery
/
{session_id}
/
discovery
Discover Candidate Links
curl --request POST \
  --url https://api.example.com/api/v1/discovery/{session_id}/discovery \
  --header 'Content-Type: application/json' \
  --data '
{
  "applicationName": "<string>",
  "applicationVersion": "<string>",
  "llmGeneratedSearchQuery": true,
  "usePreviousSessionData": true,
  "enableLinkFiltering": true,
  "enableLinkRanking": true,
  "numQueries": 123,
  "maxResultsPerQuery": 123,
  "maxCandidateLinks": 123,
  "maxFilterLlmCalls": 123
}
'
{
  "jobId": "<string>"
}
This endpoint initiates a discovery job that searches for and identifies candidate documentation URLs for a specified application. The discovered URLs are stored in the session and can be used in subsequent crawling operations.

Path Parameters

session_id
string
required
Session ID (UUID format)

Request Body

applicationName
string
required
Target application name to discover documentation for
applicationVersion
string
default:"latest"
Optional version string for the target application
llmGeneratedSearchQuery
boolean
default:false
Use LLM to generate web search queries (defaults to using templates)
usePreviousSessionData
boolean
default:true
Whether to reuse discovery output from a previous session when input is the same
Enable LLM-based filtering of irrelevant links
Enable LLM-based ranking of candidate links
numQueries
integer
default:5
How many distinct search queries to run during discovery
maxResultsPerQuery
integer
default:10
How many results to fetch per query (per backend)
Max number of candidate links to return after ranking/selection
maxFilterLlmCalls
integer
default:3
Maximum number of LLM calls for filtering irrelevant links

Response

jobId
string
required
Unique identifier of the created discovery job (UUID format)

Example Request

curl -X POST "https://api.example.com/api/v1/discovery/550e8400-e29b-41d4-a716-446655440000/discovery" \
  -H "Content-Type: application/json" \
  -d '{
    "applicationName": "midPoint",
    "applicationVersion": "4.8",
    "llmGeneratedSearchQuery": false,
    "usePreviousSessionData": true,
    "enableLinkFiltering": true,
    "enableLinkRanking": true,
    "numQueries": 5,
    "maxResultsPerQuery": 10,
    "maxCandidateLinks": 5,
    "maxFilterLlmCalls": 3
  }'

Example Response

{
  "jobId": "7c9e6679-7425-40de-944b-e07fc1f90ae7"
}

Notes

  • The discovery job runs asynchronously. Use the Get Discovery Status endpoint to check the job progress
  • The discovered candidate links are stored in the session under the discoveryOutput key
  • The job ID is also stored in the session as discoveryJobId for convenient status checking

Build docs developers (and LLMs) love