diff --git a/app/Api/ApiDocsGenerator.php b/app/Api/ApiDocsGenerator.php
index 41decd23d..a0c45608a 100644
--- a/app/Api/ApiDocsGenerator.php
+++ b/app/Api/ApiDocsGenerator.php
@@ -31,9 +31,12 @@ class ApiDocsGenerator
     protected function loadDetailsFromFiles(Collection $routes): Collection
     {
         return $routes->map(function (array $route) {
-            $exampleResponseFile = base_path('dev/api/responses/' . $route['name'] . '.json');
-            $exampleResponse = file_exists($exampleResponseFile) ? file_get_contents($exampleResponseFile) : null;
-            $route['example_response'] = $exampleResponse;
+            $exampleTypes = ['request', 'response'];
+            foreach ($exampleTypes as $exampleType) {
+                $exampleFile = base_path("dev/api/{$exampleType}s/{$route['name']}.json");
+                $exampleContent = file_exists($exampleFile) ? file_get_contents($exampleFile) : null;
+                $route["example_{$exampleType}"] = $exampleContent;
+            }
             return $route;
         });
     }
diff --git a/dev/api/requests/books-create.json b/dev/api/requests/books-create.json
new file mode 100644
index 000000000..4a6626619
--- /dev/null
+++ b/dev/api/requests/books-create.json
@@ -0,0 +1,4 @@
+{
+  "name": "My own book",
+  "description": "This is my own little book"
+}
\ No newline at end of file
diff --git a/dev/api/requests/books-update.json b/dev/api/requests/books-update.json
new file mode 100644
index 000000000..fc67d5fcc
--- /dev/null
+++ b/dev/api/requests/books-update.json
@@ -0,0 +1,4 @@
+{
+  "name": "My updated book",
+  "description": "This is my book with updated details"
+}
\ No newline at end of file
diff --git a/resources/views/api-docs/index.blade.php b/resources/views/api-docs/index.blade.php
index 181bcd746..a20ba04cc 100644
--- a/resources/views/api-docs/index.blade.php
+++ b/resources/views/api-docs/index.blade.php
@@ -12,32 +12,64 @@
 
                     @foreach($endpoints as $endpoint)
                         <div class="mb-xs">
-                            <a href="#{{ $endpoint['name'] }}" class="text-mono">
+                            <a href="#{{ $endpoint['name'] }}" class="text-mono inline block mr-s">
                                 <span class="api-method" data-method="{{ $endpoint['method'] }}">{{ $endpoint['method'] }}</span>
-                                /{{ $endpoint['uri'] }}
+                            </a>
+                            <a href="#{{ $endpoint['name'] }}" class="text-mono">
+                                {{ $endpoint['controller_method'] }}
                             </a>
                         </div>
                     @endforeach
                 @endforeach
             </div>
 
-            <div>
+            <div style="overflow: auto;">
                 @foreach($docs as $model => $endpoints)
                     <section class="card content-wrap auto-height">
                         <h1 class="list-heading text-capitals">{{ $model }}</h1>
 
                         @foreach($endpoints as $endpoint)
+                            <h6 class="text-uppercase text-muted float right">{{ $endpoint['controller_method'] }}</h6>
                             <h5 id="{{ $endpoint['name'] }}" class="text-mono mb-m">
                                 <span class="api-method" data-method="{{ $endpoint['method'] }}">{{ $endpoint['method'] }}</span>
                                 {{ url($endpoint['uri']) }}
                             </h5>
                             <p class="mb-m">{{ $endpoint['description'] ?? '' }}</p>
+                            @if($endpoint['body_params'] ?? false)
+                                <details class="mb-m">
+                                    <summary class="text-muted">Body Parameters</summary>
+                                    <table class="table">
+                                        <tr>
+                                            <th>Param Name</th>
+                                            <th>Value Rules</th>
+                                        </tr>
+                                        @foreach($endpoint['body_params'] as $paramName => $rules)
+                                        <tr>
+                                            <td>{{ $paramName }}</td>
+                                            <td>
+                                                @foreach($rules as $rule)
+                                                    <code class="mr-xs">{{ $rule }}</code>
+                                                @endforeach
+                                            </td>
+                                        </tr>
+                                        @endforeach
+                                    </table>
+                                </details>
+                            @endif
+                            @if($endpoint['example_request'] ?? false)
+                                <details details-highlighter class="mb-m">
+                                    <summary class="text-muted">Example Request</summary>
+                                    <pre><code class="language-json">{{ $endpoint['example_request'] }}</code></pre>
+                                </details>
+                            @endif
                             @if($endpoint['example_response'] ?? false)
-                                <details details-highlighter>
+                                <details details-highlighter class="mb-m">
                                     <summary class="text-muted">Example Response</summary>
                                     <pre><code class="language-json">{{ $endpoint['example_response'] }}</code></pre>
                                 </details>
-                                <hr class="mt-m">
+                            @endif
+                            @if(!$loop->last)
+                            <hr>
                             @endif
                         @endforeach
                     </section>