# APIs

you can activate this feature or stop it from the config file and use your own routes or your own controllers.

to make this endpoint work fine you need to add a custom gruid inside `/config/auth.php` to be like this

```php
<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Authentication Defaults
    |--------------------------------------------------------------------------
    |
    | This option controls the default authentication "guard" and password
    | reset options for your application. You may change these defaults
    | as required, but they're a perfect start for most applications.
    |
    */

    'defaults' => [
        'guard' => 'web',
        'passwords' => 'users',
    ],

    /*
    |--------------------------------------------------------------------------
    | Authentication Guards
    |--------------------------------------------------------------------------
    |
    | Next, you may define every authentication guard for your application.
    | Of course, a great default configuration has been defined for you
    | here which uses session storage and the Eloquent user provider.
    |
    | All authentication drivers have a user provider. This defines how the
    | users are actually retrieved out of your database or other storage
    | mechanisms used by this application to persist your user's data.
    |
    | Supported: "session"
    |
    */

    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'accounts' => [
            'driver' => 'session',
            'provider' => 'accounts',
        ]
    ],

    /*
    |--------------------------------------------------------------------------
    | User Providers
    |--------------------------------------------------------------------------
    |
    | All authentication drivers have a user provider. This defines how the
    | users are actually retrieved out of your database or other storage
    | mechanisms used by this application to persist your user's data.
    |
    | If you have multiple user tables or models you may configure multiple
    | sources which represent each model / table. These sources may then
    | be assigned to any extra authentication guards you have defined.
    |
    | Supported: "database", "eloquent"
    |
    */

    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Models\User::class,
        ],
        'accounts' => [
            'driver' => 'eloquent',
            'model' => \TomatoPHP\TomatoCrm\Models\Account::class,
        ],

        // 'users' => [
        //     'driver' => 'database',
        //     'table' => 'users',
        // ],
    ],

    /*
    |--------------------------------------------------------------------------
    | Resetting Passwords
    |--------------------------------------------------------------------------
    |
    | You may specify multiple password reset configurations if you have more
    | than one user table or model in the application and you want to have
    | separate password reset settings based on the specific user types.
    |
    | The expiry time is the number of minutes that each reset token will be
    | considered valid. This security feature keeps tokens short-lived so
    | they have less time to be guessed. You may change this as needed.
    |
    | The throttle setting is the number of seconds a user must wait before
    | generating more password reset tokens. This prevents the user from
    | quickly generating a very large amount of password reset tokens.
    |
    */

    'passwords' => [
        'users' => [
            'provider' => 'users',
            'table' => 'password_reset_tokens',
            'expire' => 60,
            'throttle' => 60,
        ],
    ],

    /*
    |--------------------------------------------------------------------------
    | Password Confirmation Timeout
    |--------------------------------------------------------------------------
    |
    | Here you may define the amount of seconds before a password confirmation
    | times out and the user is prompted to re-enter their password via the
    | confirmation screen. By default, the timeout lasts for three hours.
    |
    */

    'password_timeout' => 10800,

];

```

### Auth Endpoints

{% openapi src="/files/RJe8iTuLpyvzVbig6e0F" path="/login" method="post" %}
[document (1).json](https://117397612-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSlG6RrSDmGrQX2xjM6AT%2Fuploads%2FLYF2ricchUry1N11n6Dp%2Fdocument%20\(1\).json?alt=media\&token=24a4b40b-de8b-479c-a0ee-ea596b6301af)
{% endopenapi %}

{% openapi src="/files/RJe8iTuLpyvzVbig6e0F" path="/register" method="post" %}
[document (1).json](https://117397612-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSlG6RrSDmGrQX2xjM6AT%2Fuploads%2FLYF2ricchUry1N11n6Dp%2Fdocument%20\(1\).json?alt=media\&token=24a4b40b-de8b-479c-a0ee-ea596b6301af)
{% endopenapi %}

{% openapi src="/files/RJe8iTuLpyvzVbig6e0F" path="/reset" method="post" %}
[document (1).json](https://117397612-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSlG6RrSDmGrQX2xjM6AT%2Fuploads%2FLYF2ricchUry1N11n6Dp%2Fdocument%20\(1\).json?alt=media\&token=24a4b40b-de8b-479c-a0ee-ea596b6301af)
{% endopenapi %}

{% openapi src="/files/RJe8iTuLpyvzVbig6e0F" path="/resend" method="post" %}
[document (1).json](https://117397612-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSlG6RrSDmGrQX2xjM6AT%2Fuploads%2FLYF2ricchUry1N11n6Dp%2Fdocument%20\(1\).json?alt=media\&token=24a4b40b-de8b-479c-a0ee-ea596b6301af)
{% endopenapi %}

{% openapi src="/files/RJe8iTuLpyvzVbig6e0F" path="/otp" method="post" %}
[document (1).json](https://117397612-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSlG6RrSDmGrQX2xjM6AT%2Fuploads%2FLYF2ricchUry1N11n6Dp%2Fdocument%20\(1\).json?alt=media\&token=24a4b40b-de8b-479c-a0ee-ea596b6301af)
{% endopenapi %}

{% openapi src="/files/RJe8iTuLpyvzVbig6e0F" path="/otp-check" method="post" %}
[document (1).json](https://117397612-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSlG6RrSDmGrQX2xjM6AT%2Fuploads%2FLYF2ricchUry1N11n6Dp%2Fdocument%20\(1\).json?alt=media\&token=24a4b40b-de8b-479c-a0ee-ea596b6301af)
{% endopenapi %}

{% openapi src="/files/RJe8iTuLpyvzVbig6e0F" path="/password" method="post" %}
[document (1).json](https://117397612-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSlG6RrSDmGrQX2xjM6AT%2Fuploads%2FLYF2ricchUry1N11n6Dp%2Fdocument%20\(1\).json?alt=media\&token=24a4b40b-de8b-479c-a0ee-ea596b6301af)
{% endopenapi %}

### Profile Endpoints

{% openapi src="/files/RJe8iTuLpyvzVbig6e0F" path="/profile" method="get" %}
[document (1).json](https://117397612-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSlG6RrSDmGrQX2xjM6AT%2Fuploads%2FLYF2ricchUry1N11n6Dp%2Fdocument%20\(1\).json?alt=media\&token=24a4b40b-de8b-479c-a0ee-ea596b6301af)
{% endopenapi %}

{% openapi src="/files/RJe8iTuLpyvzVbig6e0F" path="/profile" method="post" %}
[document (1).json](https://117397612-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSlG6RrSDmGrQX2xjM6AT%2Fuploads%2FLYF2ricchUry1N11n6Dp%2Fdocument%20\(1\).json?alt=media\&token=24a4b40b-de8b-479c-a0ee-ea596b6301af)
{% endopenapi %}

{% openapi src="/files/RJe8iTuLpyvzVbig6e0F" path="/profile/password" method="post" %}
[document (1).json](https://117397612-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSlG6RrSDmGrQX2xjM6AT%2Fuploads%2FLYF2ricchUry1N11n6Dp%2Fdocument%20\(1\).json?alt=media\&token=24a4b40b-de8b-479c-a0ee-ea596b6301af)
{% endopenapi %}

{% openapi src="/files/RJe8iTuLpyvzVbig6e0F" path="/profile/destroy" method="delete" %}
[document (1).json](https://117397612-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSlG6RrSDmGrQX2xjM6AT%2Fuploads%2FLYF2ricchUry1N11n6Dp%2Fdocument%20\(1\).json?alt=media\&token=24a4b40b-de8b-479c-a0ee-ea596b6301af)
{% endopenapi %}

{% openapi src="/files/RJe8iTuLpyvzVbig6e0F" path="/profile/logout" method="post" %}
[document (1).json](https://117397612-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSlG6RrSDmGrQX2xjM6AT%2Fuploads%2FLYF2ricchUry1N11n6Dp%2Fdocument%20\(1\).json?alt=media\&token=24a4b40b-de8b-479c-a0ee-ea596b6301af)
{% endopenapi %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tomatophp.com/plugins/tomato-crm/apis.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
