Use core select field for custom plugin data

in my custom plugin i am exposing data as key-value pairs. these are based not on any other page, structure but come from an external source.

is there a way to use custom, private api endpoints with the core select field without making them public? probably not.

or should i use global site methods and the query language instead? what should i return? will json work or do i need a specific wrapper object?

any other ideas?