Developer
Everything the Python Interface and REST API expose comes from installed extensions, and the packages OpenBB publishes are built the same way you would build your own. In V5 a data package is self-contained: it registers a provider and its own command namespace, so openbb-famafrench installs both the famafrench provider and obb.famafrench.
If you have not built an extension before, start with Quick start (Developer), which registers an existing FastAPI router in a few minutes. The Concepts pages explain the architecture these guides assume. The fastest way to begin a new project is the openbb-cookiecutter template described in Extension types.
The classes most extensions import are:
from openbb_core.app.model.command_context import CommandContext
from openbb_core.app.model.example import APIEx, PythonEx
from openbb_core.app.model.extension import Extension
from openbb_core.app.model.obbject import OBBject
from openbb_core.app.provider_interface import ExtraParams, ProviderChoices, StandardParams
from openbb_core.app.query import Query
from openbb_core.app.router import Router
from openbb_core.provider.abstract.data import Data
from openbb_core.provider.abstract.fetcher import Fetcher
from openbb_core.provider.abstract.provider import Provider
from openbb_core.provider.abstract.query_params import QueryParams
Standardization
Standard models, provider-specific fields, and the naming and value conventions every provider follows.
Extension types
Step-by-step guides for provider, router, OBBject, plugin, and charting extensions, and for wrapping a FastAPI app.
How-to guides
Focused tasks: HTTP requests, examples, validators, deprecations, annotated results, tests, and more.
Concepts
Architecture, the OBBject envelope, extension entry points, streaming, and the generated package.