Integration proposal from AI/ML API
Hi! I'm Hugo from aimlapi.com — an AI aggregator that gives access to 1000+ models in one API, trusted by 400k+ users.
We'd love to be available as a verified provider option inside Fincept Terminal — so we went ahead and did all the technical work on our side, in our fork: https://github.com/aimlapi/FinceptTerminal-aimlapi
To build our partnership, we offer a 50/50 revenue share on all traffic from this integration. (P.S.: tracking starts as soon as this release goes live, so no earnings will be lost during setup)
My contacts: [email protected] (email / Slack), Telegram: @hug0the
What feature would you like?
Add aimlapi as a first-class provider in the LLM Config screen — one more row in ProviderCatalog, built to the same shape as the AIHubMix row that preceded it: prefilled base URL (https://api.aimlapi.com/v1), a starter model list, a working Fetch button, streaming, Alpha Arena support, and call-attribution headers scoped to our own host.
What problem does it solve?
Fincept already speaks to a dozen OpenAI-compatible backends, but every aggregator it ships (AIHubMix, AstraFlow) publishes a different slice of the model market. aimlapi.com routes 353 chat models — OpenAI, Anthropic, Google, DeepSeek, Qwen, xAI, Mistral — through one /v1/chat/completions endpoint, so a user with one key reaches all of them from the existing provider combo without a per-vendor account.
Two things are genuinely new rather than a copy of the AIHubMix row:
- The aimlapi catalogue is one list for every modality (936 rows, 353 of them chat), so
parse_models_responsehas to filter ontype— otherwise the model combo fills with image / video / TTS ids that answer/chat/completionswith a 404. - Call attribution. OpenRouter's
HTTP-Referer/X-Titlepair is currently hardcoded inline inLlmService::get_headers; the change turns that idea into a table-drivenProviderCatalog::attribution_headers()and wires it into all three places the app originates a request (chat, the Fetch button, and Alpha Arena, which builds its ownQNetworkRequest).
While wiring Alpha Arena we also hit a real bug in that path and fixed it in the same branch: ArenaLlmClient::parse_response bills a round as prompt_tokens + completion_tokens, which under-reports any reasoning model whose route reports reasoning_tokens separately. Happy to split it into its own issue and PR if you'd rather keep them apart.
Additional context
The work is written and running in our fork, on a topic branch rebased onto current main: https://github.com/aimlapi/FinceptTerminal-aimlapi/tree/feat/aimlapi-provider-upstream — 9 files, +352 / −10, including a new Qt Test suite (tst_provider_catalog, 13 cases).
Per .github/CONTRIBUTING.md I'm opening this issue first and waiting for good-first-issue / help-wanted / scope:approved before sending the PR. Happy to adjust the scope or split it differently if you'd rather see it another way.
Source: Fincept-Corporation/FinceptTerminal