diff --git a/src/functions-reference/functions_index.qmd b/src/functions-reference/functions_index.qmd
index abb0de6cf..277b4e516 100644
--- a/src/functions-reference/functions_index.qmd
+++ b/src/functions-reference/functions_index.qmd
@@ -1306,6 +1306,21 @@ pagetitle: Alphabetical Index
-
[distribution statement](bounded_discrete_distributions.qmd#index-entry-2fc02e8425e812e91f8ef47c9f53bd538c248cbd) (bounded_discrete_distributions.html)
+**hypergeometric_1F0**:
+
+ - [`(real a, real z) : real`](real-valued_basic_functions.qmd#index-entry-e29b2c1e8db395e7d15862eb2f1f1e63ac58b10f) (real-valued_basic_functions.html)
+
+
+**hypergeometric_2F1**:
+
+ - [`(real a1, real a2, real b1, real z) : real`](real-valued_basic_functions.qmd#index-entry-4ebcc0750c9365f9fd711bbd07b560cd76a3c016) (real-valued_basic_functions.html)
+
+
+**hypergeometric_3F2**:
+
+ - [`(T1 a, T2 b, real z) : real`](real-valued_basic_functions.qmd#index-entry-f578817f233389fabf92d2db8bcfc1878fec4eca) (real-valued_basic_functions.html)
+
+
**hypergeometric_lpmf**:
- [`(int n | int N, int a, int b) : real`](bounded_discrete_distributions.qmd#index-entry-74678ac15a9ad9dc38759c7f81421cd6abe7f8e8) (bounded_discrete_distributions.html)
@@ -1316,6 +1331,11 @@ pagetitle: Alphabetical Index
- [`(int n | int N, int a, int b) : real`](bounded_discrete_distributions.qmd#index-entry-bd50c4360d03f67c2f750c84c2b4b7f53ade58e9) (bounded_discrete_distributions.html)
+**hypergeometric_pFq**:
+
+ - [`(T1 a, T2 b, real z) : real`](real-valued_basic_functions.qmd#index-entry-2177c85f2269dea084da1c4e5b2a6f52c3337579) (real-valued_basic_functions.html)
+
+
**hypergeometric_rng**:
- [`(int N, int a, int2 b) : int`](bounded_discrete_distributions.qmd#index-entry-b7d868252dbebe75b731f601d6af7252a228c9bb) (bounded_discrete_distributions.html)
diff --git a/src/functions-reference/real-valued_basic_functions.qmd b/src/functions-reference/real-valued_basic_functions.qmd
index e0e2c6648..472405d8e 100644
--- a/src/functions-reference/real-valued_basic_functions.qmd
+++ b/src/functions-reference/real-valued_basic_functions.qmd
@@ -1698,3 +1698,69 @@ Implementation of the $W_0$ branch of the Lambert W function, i.e., solution to
`R` **`lambert_wm1`**`(T x)`
\newline
Implementation of the $W_{-1}$ branch of the Lambert W function, i.e., solution to the function $W_{-1}(x) \exp^{W_{-1}(x)} = x$
{{< since 2.25 >}}
+
+## Hypergeometric Functions {#hypergeometric-functions}
+
+Hypergeometric functions refer to a power series of the form
+\begin{equation*}
+_pF_q(a_1,...,a_p;b_1,...,b_q;z) = \sum_{n=0}^\infty \frac{(a_1)_n\cdot\cdot\cdot(a_p)_n}{(b_1)_n\cdot\cdot\cdot(b_q)_n} \frac{x^n}{n!}
+\end{equation*}
+where $(a)_n$ is the Pochhammer symbol defined as $(a)_n = \frac{\Gamma(a+n)}{\Gamma(a)}$.
+
+The gradients of the hypergeometric function are given by:
+\begin{equation*}
+ \frac{\partial }{\partial a_1} =
+ \sum_{k=0}^{\infty}{
+ \frac
+ {\psi\left(k+a_1\right)\left(\prod_{j=1}^p\left(a_j\right)_k\right)z^k}
+ {k!\prod_{j=1}^q\left(b_j\right)_k}}
+ - \psi\left(a_1\right){}_pF_q(a_1,...,a_p;b_1,...,b_q;z)
+\end{equation*}
+\begin{equation*}
+ \frac{\partial }{\partial b_1} =
+ \psi\left(b_1\right){}_pF_q(a_1,...,a_p;b_1,...,b_q;z) -
+ \sum_{k=0}^{\infty}{
+ \frac
+ {\psi\left(k+b_1\right)\left(\prod_{j=1}^p\left(a_j\right)_k\right)z^k}
+ {k!\prod_{j=1}^q\left(b_j\right)_k}}
+\end{equation*}
+\begin{equation*}
+ \frac{\partial }{\partial z} =
+ \frac{\prod_{j=1}^{p}a_j}{\prod_{j=1}^{q} b_j}{}_pF_q(a_1+1,...,a_p+1;b_1+1,...,b_q+1;z)
+\end{equation*}
+
+Stan provides both the generalized hypergeometric function as well as several
+special cases for particular values of p and q.
+
+
+\index{{\tt \bfseries hypergeometric\_1F0 }!{\tt (real a, real z): real}|hyperpage}
+
+`real` **`hypergeometric_1F0`**`(real a, real z)`
\newline
+Special case of the hypergeometric function with $p=1$ and $q=0$.
+{{< since 2.37 >}}
+
+
+\index{{\tt \bfseries hypergeometric\_2F1 }!{\tt (real a1, real a2, real b1, real z): real}|hyperpage}
+
+`real` **`hypergeometric_2F1`**`(real a1, real a2, real b1, real z)`
\newline
+Special case of the hypergeometric function with $p=2$ and $q=1$. If the function does not
+meet convergence criteria for given inputs, the function will attempt to apply [Euler's transformation](https://mathworld.wolfram.com/EulersHypergeometricTransformations.html)
+to improve convergence:
+\begin{equation*}
+{}_2F_1(a_1,a_2, b_1, z)={}_2F_1(b_1 - a_1,a_2, b_1, \frac{z}{z-1})\cdot(1-z)^{-a_2}
+\end{equation*}
+{{< since 2.37 >}}
+
+
+\index{{\tt \bfseries hypergeometric\_3F2 }!{\tt (T1 a, T2 b, real z): real}|hyperpage}
+
+`real` **`hypergeometric_3F2`**`(T1 a, T2 b, real z)`
\newline
+Special case of the hypergeometric function with $p=3$ and $q=2$, where a and b are vectors of length 3 and 2, respectively.
+{{< since 2.37 >}}
+
+
+\index{{\tt \bfseries hypergeometric\_pFq }!{\tt (T1 a, T2 b, real z): real}|hyperpage}
+
+`real` **`hypergeometric_pFq`**`(T1 a, T2 b, real z)`
\newline
+Generalized hypergeometric function, where a and b are vectors of length p and q, respectively.
+{{< since 2.37 >}}