Geni\Laravel\Attributes\* namespace and are applied directly to controller classes, methods, or Form Request classes.
If you are migrating from Scramble, Geni supports identical attribute names and parameters. Simply update your
use statements from Dedoc\Scramble\Attributes\* to Geni\Laravel\Attributes\* — no other changes are required.Endpoint Metadata
Use#[Endpoint], #[Group], and #[Hidden] to control how operations and controllers appear in your generated documentation. Apply #[Group] at the class level to tag all routes in a controller together, #[Endpoint] on individual methods to set a human-readable title and description, and #[Hidden] to exclude an operation entirely.
Parameter Documentation
Use#[QueryParameter], #[PathParameter], and #[HeaderParameter] to explicitly document or override parameters that Geni cannot fully infer — for example, optional query filters, custom headers, or path segments resolved outside of route model binding.
Response Overrides
Use#[Response] to explicitly define or override HTTP response schemas when Geni’s inference is incomplete or when you need to document multiple response codes on the same endpoint. Stack multiple #[Response] attributes on a single method to cover every status code your endpoint can return.
Body Parameter Overrides
Use#[BodyParameter] on a Form Request’s rules() method to attach descriptions or example values to individual request body fields. This is particularly useful when your validation rules alone do not convey enough context for API consumers.