Parameters to send while creating openai object in python

As given in Openai API doc, to create an object of openai class , this is the format:
client = OpenAI(
api_key=openai_api_key,
)
But on some places, I can also see base_url as one of the parameters .

client=OpenAI(
api_key=openai_api_key,
base_url=“-----”
)

So , what all are the parameters I can send while creating an OpenAI class object.

Perhaps the best reference is within the source. Here is the copy method, giving what will be duplicated into a new client from the existing one

    def copy(
        self,
        *,
        api_key: str | None = None,
        organization: str | None = None,
        project: str | None = None,
        base_url: str | httpx.URL | None = None,
        timeout: float | Timeout | None | NotGiven = NOT_GIVEN,
        http_client: httpx.Client | None = None,
        max_retries: int | NotGiven = NOT_GIVEN,
        default_headers: Mapping[str, str] | None = None,
        set_default_headers: Mapping[str, str] | None = None,
        default_query: Mapping[str, object] | None = None,
        set_default_query: Mapping[str, object] | None = None,
        _extra_kwargs: Mapping[str, Any] = {},
    ) -> Self:

Some will take a bit more pondering, such as “Timeout” being a httpx timeout object where particular network timeouts can be set.