A blockchain oracle is any device or entity that connects a deterministic blockchain with off-chain data
Smart contracts cannot make API calls themselves because they are deterministic, therefore to get data onto the chain, we have to have an off-chain entity that makes the API call and creates a transaction on-chain with the data (from the API) posted.
This process of posting data from the real world onto a blockchain is what oracles do