Usage limits and credits

Capping AI consumption in Aimogen Pro per user, guest, role and membership plan, with a separate pool for text-to-speech.

Usage limits are the control that stops a public AI feature becoming an unbounded bill.

System & Logs › AI Usage Limits and Text-to-Speech Limits

Global limits#

SettingWhat it does
Enable Global Usage LimitsMaster switch
Max User Credits plus credit typeThe allowance for logged-in users
Time FrameThe period it covers
Absolute TimeframeAbsolute means "today"; relative means "the last 24 hours". The same applies to other periods
Full Access UsersUsers exempt from all limits
Message When Limit Reached (Logged In Users)What they see
Max Guest Credits plus typeThe allowance for visitors who are not logged in
Time Frame (guests)Their period
Absolute Timeframe (guests)As above
Message When Limit Reached (Not Logged In Users)What they see
Restrict User IDs List From Using The AIBlocked user IDs
Restrict User IPs List From Using The AIBlocked IPs
Additional RolesRoles granted access_aiomatic_menu

Leaving a credit field blank disables that limit.

Credit types#

TypeCountsSuits
queriesRequestsSimple to explain; a long request costs the same as a short one
tokensTokens consumedFair, and close to actual cost
priceEstimated costMost directly tied to spend

For a paid service, price is usually right. For a consumer-facing allowance, queries is easiest to communicate.

Absolute versus relative time frames#

The distinction matters more than it looks.

Absolute — a day means the calendar day. Everyone resets at midnight. Predictable, and a heavy user can exhaust their allowance in the first hour.

Relative — a day means the last 24 hours, rolling. Smoother, and harder for a user to reason about.

Absolute is easier to explain; relative is better at preventing bursts.

Rules#

Beyond the global limits, rules apply different allowances to different people. Stored in aiomatic_Limit_Rules.

FieldMeaning
Rule DescriptionYour label
User RoleA WordPress role
Ultimate Membership Pro Subscription PlanA UMP plan
Restrict Content Pro Subscription PlanAn RCP plan
Paid Memberships Pro Subscription PlanA PMPro plan
User ID ListSpecific users
Max User Credits plus type, Time Frame, AbsoluteThe allowance
User Restricted MessageWhat they see
ActiveWhether the rule applies

Membership integration is covered in Membership plugins.

Aimogen Pro > System & Logs > AI Usage Limits

Text-to-speech limits#

Speech has its own pool, configured identically. This matters because speech is billed per character and adds up much faster than people expect: a 1,500-word article is roughly 9,000 characters.

Set it separately, and set it lower than you first think.

Per-shortcode caps#

Many front-end shortcodes accept user_token_cap_per_day, a per-placement daily cap independent of the global limits:

[aimogen-image-generator-form user_token_cap_per_day="5000"]

Useful when one tool should be more constrained than the rest.

Rate limiting is separate#

Usage limits cap the total. Rate limiting caps the speed.

AI Chatbot › Limitations › Limit User Messages - Max Requests / Time Window is the rate limit. Set both: a limit of ten messages per minute is invisible to a real visitor and stops automated abuse.

Showing credits to users#

[aimogen-user-remaining-credits-text]
[aimogen-user-remaining-credits-bar]

Showing a balance makes a limit feel like a fair allowance rather than an arbitrary refusal.

IP detection#

IP-based limits and blocks depend on correct IP detection. Behind a CDN or reverse proxy, every visitor may appear to come from one address, which makes per-IP logic useless.

php
add_filter( 'aiomatic_get_ip', function ( $ip ) {
    if ( ! empty( $_SERVER['HTTP_CF_CONNECTING_IP'] ) ) {
        return sanitize_text_field( wp_unslash( $_SERVER['HTTP_CF_CONNECTING_IP'] ) );
    }
    return $ip;
} );

Blocking entirely#

GoalHow
Login-only AISet Max Guest Credits to 0
Block a userAdd their ID to Restrict User IDs List
Block an IPAdd it to Restrict User IPs List
Arbitrary logicThe aiomatic_ai_allowed filter

Limits apply everywhere#

Every request path is covered: the chatbot, forms, shortcodes, the REST API, the PHP API and WP-CLI.

That is usually what you want. If an internal integration should not be limited, add its user to Full Access Users.

A public-ready baseline#

Enable Global Usage Limits:      on
Max Guest Credits:               a low number, type price or queries
Time Frame:                      day
Absolute Timeframe:              on
Max User Credits:                sized to your plan
Text-to-Speech Limits:           enabled and lower
Chatbot rate limit:              10 messages per 60 seconds
Provider spend cap:              set in every provider dashboard

The provider cap is the only limit the plugin cannot bypass. Set it.

Common problems#

Limits do not apply. Enable Global Usage Limits is off, or the user is in Full Access Users.

Everyone hits the limit at once. All traffic appears as one IP. Fix IP detection.

A member is blocked with credits remaining. A global limit also applies. Both are enforced; the stricter wins.

Usage is not counted. Enable Usage Tracking is off under Settings › Statistics.

Still stuck? Open a support ticket and include the diagnostics from Aimogen Pro › System & Logs › System Info.