Per API, cosa intendi esattamente?
Su molte piattaforme potresti collegare una DLL o una costruzione simile, ma dovresti essere ricompilata per un particolare target nativo (Intel / ARM) o endianness ancora qualificati? Una particolare interfaccia binaria potrebbe avere ancora difficoltà con alcuni linguaggi a causa di problemi di tipo di dati o costrutti (i puntatori cercano di essere restituiti a linguaggi che non li supportano bene), quindi dovresti considerare anche il design dell'API stessa in modo da non dover escludere alcune lingue o renderlo complicato da quelle lingue.
Qualcosa di portatile come C e un'interfaccia basata su endpoint binari in una DLL può essere soddisfacente e generalmente richiamabile sulla maggior parte delle piattaforme e dalla maggior parte delle lingue, ma potrebbe dover essere compilato in modo diverso e / o offerto in sapori diversi o collegato a diversi librerie statiche.
Mi sembra che la scelta del linguaggio che scrivi la tua biblioteca o il tuo servizio o qualsiasi altra cosa sia, per definizione, non intrinseca alla domanda finché non hai dato più informazioni sulla piattaforma / servizio che l'API espone. Se si può presupporre che uno stack di rete sia disponibile e che le prestazioni a livello di call-call a funzione diretta non siano un requisito, l'API potrebbe facilmente essere basata su HTTP con una sorta di shim per la lingua del client per rendere trasparenti le richieste.
Penso che in generale questa domanda sia troppo ampia per essere utile nel mondo reale, perché non hai dato indicazioni su quale tipo di API potrebbe essere adatto dato il tipo di servizio che viene offerto.