Skip to main content
Core Platform

Discover and save an evidence-backed thematic universe from free text

POST /investment/themes/discover

Contract

Maps the concept to non-overlapping branches of the current published Dynamic Industry Ontology, ranks source-backed IM5 company exposures and applies explicit profile/provenance investability filters. No live market-data call, LLM requirement, Financial Action or trade execution is introduced by this endpoint.

Authentication
Bearer credential required
Required scope
investment:run
Status
Published

Request body

application/json ยท required
{
    "name": "string",
    "concept": "string",
    "exchanges": [
        "string"
    ],
    "countries": [
        "string"
    ],
    "currencies": [
        "string"
    ],
    "restricted_symbols": [
        "string"
    ],
    "require_company_profile": false,
    "min_relevance": 0.01000000000000000020816681711721685132943093776702880859375,
    "min_confidence": 0,
    "min_verified_facts": 0,
    "max_results": 50
}

Code examples

These examples compose a request only. Public reference pages never transmit your credential or execute the operation.

curl

curl -X POST \
  -H "Authorization: Bearer $FINANCEGPT_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  --data '{
    "name": "string",
    "concept": "string",
    "exchanges": [
        "string"
    ],
    "countries": [
        "string"
    ],
    "currencies": [
        "string"
    ],
    "restricted_symbols": [
        "string"
    ],
    "require_company_profile": false,
    "min_relevance": 0.01000000000000000020816681711721685132943093776702880859375,
    "min_confidence": 0,
    "min_verified_facts": 0,
    "max_results": 50
}' \
  "https://financegpt.dev/api/v2/investment/themes/discover"

javascript

const response = await fetch("https:\/\/financegpt.dev\/api\/v2\/investment\/themes\/discover", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${FINANCEGPT_API_KEY}`,
    Accept: 'application/json',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "name": "string",
    "concept": "string",
    "exchanges": [
        "string"
    ],
    "countries": [
        "string"
    ],
    "currencies": [
        "string"
    ],
    "restricted_symbols": [
        "string"
    ],
    "require_company_profile": false,
    "min_relevance": 0.01000000000000000020816681711721685132943093776702880859375,
    "min_confidence": 0,
    "min_verified_facts": 0,
    "max_results": 50
}),
});
const data = await response.json();

python

import json
import os
import requests

response = requests.request(
    'POST',
    'https://financegpt.dev/api/v2/investment/themes/discover',
    headers={
        'Authorization': 'Bearer ' + os.environ['FINANCEGPT_API_KEY'],
        'Accept': 'application/json',
    },
    json=json.loads('{"name":"string","concept":"string","exchanges":["string"],"countries":["string"],"currencies":["string"],"restricted_symbols":["string"],"require_company_profile":false,"min_relevance":0.01000000000000000020816681711721685132943093776702880859375,"min_confidence":0,"min_verified_facts":0,"max_results":50}'),
)
response.raise_for_status()
print(response.json())

php

<?php
$ch = curl_init('https://financegpt.dev/api/v2/investment/themes/discover');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer '.getenv('FINANCEGPT_API_KEY'),
        'Accept: application/json',
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(array (
  'name' => 'string',
  'concept' => 'string',
  'exchanges' => 
  array (
    0 => 'string',
  ),
  'countries' => 
  array (
    0 => 'string',
  ),
  'currencies' => 
  array (
    0 => 'string',
  ),
  'restricted_symbols' => 
  array (
    0 => 'string',
  ),
  'require_company_profile' => false,
  'min_relevance' => 0.01000000000000000020816681711721685132943093776702880859375,
  'min_confidence' => 0,
  'min_verified_facts' => 0,
  'max_results' => 50,
)),
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;

Responses

Status Description
201 Saved taxonomy-version-pinned thematic universe with decomposition and ranked members
422 Invalid concept or investability-filter input
503 Published ontology unavailable or concept cannot be mapped to the controlled taxonomy

Authority boundary

A developer credential proves application identity and permits only its scopes. It does not grant model promotion, policy override, QLM rebinding, or Financial Actions execution authority unless those separate controls are satisfied.

investment:run

Machine-readable sources