For the complete documentation index, see llms.txt. This page is also available as Markdown.

Onlymonster API

Base URLs

  • Production: https://omapi.onlymonster.ai

Rate limits

  • Token limit: 25 requests per second across all endpoints.

  • Endpoint limit: 15 requests per second per endpoint (default). Some endpoints override this — see the description on each endpoint.

  • Platform account limit: 1 request per second per platform account on selected endpoint groups — endpoints that apply it say so in their description.

  • Exceeding either limit returns 429 Rate limit exceeded.

API key permissions

Each API key carries the permissions chosen when it was created. A request to an endpoint the key is not permitted to call returns 403 with code: API_KEY_PERMISSION_DENIED and the missing permission in details.required_permission.

Permissions are independent of the key's account access: a request needs both. Keys created before permissions were introduced hold every permission. Each endpoint's description names its required permission.

  • accounts.view — GET /api/v0/accounts, GET /api/v0/accounts/{account_id}

  • dashboard.view — GET …/transactions, GET …/chargebacks

  • team_metrics.view — GET /api/v0/users/metrics, GET /api/v0/members

  • traffic_metrics.view — GET …/tracking-links, GET …/tracking-link-users, GET …/trial-links, GET …/trial-link-users, GET …/subscriptions

  • onlyfans.messages — GET /api/v0/accounts/{account_id}/fans, GET / POST …/chats/{chat_id}/messages, PATCH …/fans/{fan_id}

  • onlyfans.collections — POST …/fans/{fan_id}/subscribe

  • onlyfans.statements — GET /proxy/v0/…/statements/balances, GET / POST /proxy/v0/…/statements/payout-requests

  • auto_messages.view — GET …/auto-message-campaigns, GET …/auto-message-campaigns/{campaign_id}

  • auto_messages.edit — POST …/auto-message-campaigns, PATCH …/auto-message-campaigns/{campaign_id}/status, POST …/auto-message-campaigns/{campaign_id}/unsend

  • media_uploader.manage — All …/vault/… endpoints: folders, medias, thumbnails and media uploads

  • settings.view — Account session export (enabled per organisation)

Get list of accounts.

get

Rate limit: 15 requests per second

Required permission: accounts.view

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Query parameters
cursorstring · min: 2Optional
limitinteger · min: 1 · max: 1000Optional
withExpiredSubscriptionsbooleanOptional
Responses
200

Default Response

application/json
nextCursorstringOptional
get/api/v0/accounts
GET /api/v0/accounts HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
{
  "accounts": [
    {
      "id": 1,
      "platform_account_id": "1",
      "platform": "text",
      "name": "text",
      "email": "text",
      "avatar": "text",
      "username": "text",
      "organisation_id": "1",
      "subscribe_price": 1,
      "subscription_expiration_date": "2026-01-01T00:00:00.000Z"
    }
  ],
  "nextCursor": "text"
}

Get account by ID.

get

Rate limit: 15 requests per second

Required permission: accounts.view

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
account_idstring · max: 19Required

Big integer id as string

Example: {"value":"1"}Pattern: ^(0|[1-9]\d*)$
Responses
200

Default Response

application/json
get/api/v0/accounts/{account_id}
GET /api/v0/accounts/{account_id} HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
{
  "account": {
    "id": 1,
    "platform_account_id": "1",
    "platform": "text",
    "name": "text",
    "email": "text",
    "avatar": "text",
    "username": "text",
    "organisation_id": "1",
    "subscribe_price": 1,
    "subscription_expiration_date": "2026-01-01T00:00:00.000Z"
  }
}

Retrieve subscriptions for a platform account

get

Rate limit: 15 requests per second

Required permission: traffic_metrics.view

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
platformstring · enumRequired

Name of the platform. Currently, only "onlyfans" is supported.

Possible values:
platform_account_idany ofRequired
string · max: 19Optional

Big integer id as string

Example: 1Pattern: ^(0|[1-9]\d*)$
or
stringOptional
Query parameters
startstring · date-timeRequired

Start of the subscription timestamp range (ISO 8601 Zulu).

Example: 2025-10-01T00:00:00.000Z
endstring · date-timeRequired

End of the subscription timestamp range (ISO 8601 Zulu).

Example: 2025-10-31T23:59:59.999Z
limitinteger · min: 10 · max: 1000Optional

Items per page (min: 10, max: 1000, default: 100).

Default: 100Example: 100
cursorstringOptional

Pagination cursor returned from the previous request.

Responses
200

Default Response

application/json
cursorstringOptional

Base64-encoded cursor for paginating subsequent results. Present only if additional pages exist.

get/api/v0/platforms/{platform}/accounts/{platform_account_id}/subscriptions
GET /api/v0/platforms/{platform}/accounts/{platform_account_id}/subscriptions?start=2026-01-01T00%3A00%3A00.000Z&end=2026-01-01T00%3A00%3A00.000Z HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
{
  "items": [
    {
      "fan": {
        "id": "1"
      },
      "price_gross": 1,
      "regular_price_gross": 1,
      "action": "text",
      "type": "text",
      "subscribed_at": "2026-01-01T00:00:00.000Z",
      "expires_at": "2026-01-01T00:00:00.000Z"
    }
  ],
  "cursor": ""
}

Get fan IDs for an account based on recent chat activity.

get

Rate limit: 1 request per second

Required permission: onlyfans.messages

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
account_idstring · max: 19Required

Big integer id as string

Example: {"value":"1"}Pattern: ^(0|[1-9]\d*)$
Query parameters
limitinteger · min: 1 · max: 10000OptionalDefault: 10000
Responses
200

Default Response

application/json
fan_idsstring[]Required
get/api/v0/accounts/{account_id}/fans
GET /api/v0/accounts/{account_id}/fans HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
{
  "fan_ids": [
    "text"
  ]
}

Retrieve payout balances for a platform account

get

Rate limit: 1 request per second per platform account (shared "proxy" group).

Required permission: onlyfans.statements

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
platformstring · enumRequired

Name of the platform. Currently, only "onlyfans" is supported.

Possible values:
platform_account_idany ofRequired

Unique account identifier returned by the OnlyFans platform.

Example: 000000000
string · max: 19Optional

Big integer id as string

Example: 1Pattern: ^(0|[1-9]\d*)$
or
stringOptional
Responses
200

Default Response

application/json
payoutAvailablenumberRequired

Balance available for withdrawal. Balances accumulate creator earnings after the OnlyFans platform fee.

Example: 28.46
payoutPendingnumberRequired

Earnings not yet matured for withdrawal (see manualPayoutPendingDays).

Example: 416.38
currencystringRequired

ISO 4217 currency code; all monetary values in this response are in major units.

Example: USD
minPayoutSummnumberRequired

Minimum available balance required to request a payout.

Example: 20
maxPayoutSummnumberRequired

Maximum amount withdrawable at this moment.

Example: 28.46
manualPayoutPendingDaysintegerRequired

Number of days a manual payout stays pending before it becomes available.

Example: 7
withdrawalPeriodstringRequired

Currently selected withdrawal period code.

Example: manual
get/proxy/v0/platforms/{platform}/accounts/{platform_account_id}/statements/balances
GET /proxy/v0/platforms/{platform}/accounts/{platform_account_id}/statements/balances HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
{
  "payoutAvailable": 28.46,
  "payoutPending": 416.38,
  "currency": "USD",
  "minPayoutSumm": 20,
  "maxPayoutSumm": 28.46,
  "withdrawalPeriodOptions": [
    {
      "code": "manual",
      "name": "text"
    }
  ],
  "manualPayoutPendingDays": 7,
  "withdrawalPeriod": "manual"
}

Retrieve payout requests for a platform account

get

Rate limit: 1 request per second per platform account (shared "proxy" group).

Required permission: onlyfans.statements

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
platformstring · enumRequired

Name of the platform. Currently, only "onlyfans" is supported.

Possible values:
platform_account_idany ofRequired

Unique account identifier returned by the OnlyFans platform.

Example: 000000000
string · max: 19Optional

Big integer id as string

Example: 1Pattern: ^(0|[1-9]\d*)$
or
stringOptional
Query parameters
limitinteger · min: 1 · max: 100Optional

Items per page (min: 1, max: 100, default: 10).

Default: 10Example: 10
offsetintegerOptional

Number of items to skip.

Default: 0Example: 0
markernumberOptional

Snapshot marker returned by a previous response. Pass it back to keep pagination consistent while new payout requests arrive; omit to paginate the live list with plain offsets.

Example: 1783602843
Responses
200

Default Response

application/json
markernumber · nullableRequired

Snapshot marker for consistent pagination. Pass it as the "marker" query parameter of the next page request.

Example: 1783602843
get/proxy/v0/platforms/{platform}/accounts/{platform_account_id}/statements/payout-requests
GET /proxy/v0/platforms/{platform}/accounts/{platform_account_id}/statements/payout-requests HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
{
  "list": [
    {
      "invoiceId": "78266704",
      "createdAt": "2025-10-05T20:44:34+00:00",
      "amount": 1,
      "currency": "USD",
      "state": "approved",
      "rejectReason": "text"
    }
  ],
  "marker": 1783602843
}

Create a payout request for a platform account

post

Requests a withdrawal of the given amount from the account's available balance.

This action is irreversible: OnlyFans does not support idempotency for this request. Do not blindly retry on timeout — first check the payout requests list to see whether the request was created.

Rate limit: 1 request per second per platform account (shared "proxy" group).

This endpoint is in gradual rollout: it is enabled per organization, and organizations without access receive 403 Forbidden.

Required permission: onlyfans.statements

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
platformstring · enumRequired

Name of the platform. Currently, only "onlyfans" is supported.

Possible values:
platform_account_idany ofRequired

Unique account identifier returned by the OnlyFans platform.

Example: 000000000
string · max: 19Optional

Big integer id as string

Example: 1Pattern: ^(0|[1-9]\d*)$
or
stringOptional
Body
withdrawal_amountnumber · max: 1000000Required

Amount to withdraw in USD major units, up to 2 decimal places. Must not exceed the available balance (see the balances endpoint).

Example: 20
Responses
200

Default Response

application/json
post/proxy/v0/platforms/{platform}/accounts/{platform_account_id}/statements/payout-requests
POST /proxy/v0/platforms/{platform}/accounts/{platform_account_id}/statements/payout-requests HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 24

{
  "withdrawal_amount": 20
}
{
  "list": [
    {
      "state": "new",
      "rejectReason": "text"
    }
  ]
}

Get chat messages for a specific chat.

get

Rate limit: 1 request per second

Required permission: onlyfans.messages

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
account_idstring · max: 19Required

Big integer id as string

Example: {"value":"1"}Pattern: ^(0|[1-9]\d*)$
chat_idstring · min: 1 · max: 100Required
Query parameters
limitinteger · min: 1 · max: 100OptionalDefault: 100
message_idintegerOptional

ID of the last message from previous page. Used for pagination

orderany ofOptionalExample: {"value":"asc"}
string · enumOptionalPossible values:
or
string · enumOptionalPossible values:
Responses
200

Default Response

application/json
has_morebooleanRequired

true if more messages are available beyond the returned page

get/api/v0/accounts/{account_id}/chats/{chat_id}/messages
GET /api/v0/accounts/{account_id}/chats/{chat_id}/messages HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
{
  "items": [
    {
      "id": 1,
      "text": "text",
      "from_user": 1,
      "is_sent_by_me": true,
      "created_at": "text",
      "media": [
        {
          "id": 1,
          "type": "text",
          "can_view": true,
          "is_ready": true,
          "has_error": true,
          "converted_to_video": true,
          "created_at": "text",
          "thumbnail_url": "text"
        }
      ],
      "media_count": 1,
      "is_opened": true,
      "is_new": true,
      "price": 1,
      "is_free": true,
      "can_purchase": true,
      "can_purchase_reason": "text",
      "sender": {
        "type": null,
        "user_id": null
      }
    }
  ],
  "has_more": true
}

Send a message to a chat.

post

Rate limit: 1 request per second

The message text is scanned by the content-moderation service before being enqueued. Requests whose text matches restricted words or topics return 400 with code: "RESTRICTED_WORDS_DETECTED" and the matching words / topics in details.

Required permission: onlyfans.messages

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
account_idstring · max: 19Required

Big integer id as string

Example: {"value":"1"}Pattern: ^(0|[1-9]\d*)$
chat_idstring · min: 1 · max: 100Required
Body
and
anyOptional
and
anyOptional
and
anyOptional
and
anyOptional
Responses
202

Default Response

application/json
send_idstring · uuidRequired

Unique identifier for tracking this send by webhook

post/api/v0/accounts/{account_id}/chats/{chat_id}/messages
POST /api/v0/accounts/{account_id}/chats/{chat_id}/messages HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 97

{
  "text": null,
  "price": 0,
  "locked_text": false,
  "media": [
    {
      "id": "text",
      "type": "image",
      "is_paid": true
    }
  ]
}
{
  "send_id": "123e4567-e89b-12d3-a456-426614174000"
}

Update the private labels of a fan. (For OnlyFans account only)

patch

Sets the custom name and the note the account owner keeps for a fan.

Both are private to the account owner: they are never shown to the fan and are not the fan's profile name on the platform.

Rate limit: 1 request per second

Required permission: onlyfans.messages

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
account_idstring · max: 19Required

Big integer id as string

Example: {"value":"1"}Pattern: ^(0|[1-9]\d*)$
fan_idstring · max: 19Required

Big integer id as string

Example: {"value":"1"}Pattern: ^(0|[1-9]\d*)$
Body

At least one field must be present. Fields left out keep their current value.

or
Responses
200

Default Response

application/json
successbooleanRequired
patch/api/v0/accounts/{account_id}/fans/{fan_id}
PATCH /api/v0/accounts/{account_id}/fans/{fan_id} HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 61

{
  "custom_name": "VIP Whale",
  "note": "Prefers morning messages"
}
{
  "success": true
}

Subscribe the account to a fan. (For OnlyFans account only)

post

Makes the account follow the fan on the platform and returns the resulting subscription. Subscribing to a fan the account already follows is not an error: the existing subscription is returned unchanged.

Rate limit: 1 request per second

Required permission: onlyfans.collections

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
account_idstring · max: 19Required

Big integer id as string

Example: {"value":"1"}Pattern: ^(0|[1-9]\d*)$
fan_idstring · max: 19Required

Big integer id as string

Example: {"value":"1"}Pattern: ^(0|[1-9]\d*)$
Responses
200

Default Response

application/json
subscribedbooleanRequired

Whether the account is subscribed to the fan.

subscribed_atstring · date-time · nullableRequired

Start of the account's subscription to the fan.

Example: 2026-09-11T09:31:50+00:00
expires_atstring · date-time · nullableRequired

End of the account's subscription to the fan. Null when it has no end date.

Example: 2036-09-11T09:31:50+00:00
auto_renew_enabledboolean · nullableRequired

Whether the subscription renews automatically.

price_grossnumber · nullableRequired

Price of the subscription, paid by the account, in USD. 0 or null means free.

Example: 0
post/api/v0/accounts/{account_id}/fans/{fan_id}/subscribe
POST /api/v0/accounts/{account_id}/fans/{fan_id}/subscribe HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
{
  "fan": {
    "id": "1"
  },
  "subscribed": true,
  "subscribed_at": "2026-09-11T09:31:50+00:00",
  "expires_at": "2036-09-11T09:31:50+00:00",
  "auto_renew_enabled": null,
  "price_gross": 0
}
get

Rate limit: 15 requests per second

Required permission: traffic_metrics.view

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
platformstring · enumRequired

Name of the platform. Currently, only "onlyfans" is supported.

Example: onlyfansPossible values:
platform_account_idstringRequired

Unique account identifier returned by the OnlyFans platform.

Example: 000000000
Query parameters
startstring · date-timeRequired

Start of the tracking link creation timestamp range (ISO 8601 Zulu).

Example: 2025-10-01T00:00:00.000Z
endstring · date-timeRequired

End of the tracking link creation timestamp range (ISO 8601 Zulu).

Example: 2025-10-31T23:59:59.999Z
limitinteger · min: 10 · max: 1000Optional

Items per page (min:10 max:1000 default:100)

Example: 100
cursorstringOptional

base64-signed string

Responses
200

List of tracking links successfully retrieved for the specified platform account.

application/json
cursorstringOptional

Base64-encoded cursor used for paginating subsequent results. Present only if additional pages exist.

Example: dHN4
get/api/v0/platforms/{platform}/accounts/{platform_account_id}/tracking-links
GET /api/v0/platforms/{platform}/accounts/{platform_account_id}/tracking-links?start=2025-10-01T00%3A00%3A00.000Z&end=2025-10-31T23%3A59%3A59.999Z HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
{
  "items": [
    {
      "id": "1040071",
      "name": "Tracking Link 1",
      "subscribers": 939,
      "url": "https://onlyfans.com/some-name/c16",
      "is_active": true,
      "clicks": 49166,
      "created_at": "2024-06-16T20:47:37.000Z"
    },
    {
      "id": "940779",
      "name": "Tracking Link 2",
      "subscribers": 1213,
      "url": "https://onlyfans.com/some-name/c15",
      "is_active": true,
      "clicks": 75512,
      "created_at": "2024-05-07T19:20:16.000Z"
    }
  ],
  "cursor": "dHN4"
}
get

Rate limit: 15 requests per second

Required permission: traffic_metrics.view

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
platformstring · enumRequired

Name of the platform. Currently, only "onlyfans" is supported.

Example: onlyfansPossible values:
platform_account_idstringRequired

Unique account identifier returned by the OnlyFans platform.

Example: 000000000
Query parameters
collected_fromstring · date-timeOptional

Start of the collection timestamp range (ISO 8601 Zulu).

Example: 2025-10-01T00:00:00.000Z
collected_tostring · date-timeOptional

End of the collection timestamp range (ISO 8601 Zulu).

Example: 2026-10-31T23:59:59.999Z
limitinteger · min: 1 · max: 750Optional

Items per page (min:1 max:750 default:100)

Example: 100
cursorstringOptional

base64-signed string

link_idstringOptional

Filter results by a specific tracking link ID.

Example: 123
Responses
200

List of tracking link users successfully retrieved for the specified platform account.

application/json
cursorstringOptional

Base64-encoded cursor used for paginating subsequent results. Present only if additional pages exist.

Example: dHN4
get/api/v0/platforms/{platform}/accounts/{platform_account_id}/tracking-link-users
GET /api/v0/platforms/{platform}/accounts/{platform_account_id}/tracking-link-users HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
{
  "items": [
    {
      "link_id": "1000001",
      "fan": {
        "id": "123456789",
        "name": "John Doe",
        "username": "johndoe"
      },
      "subscribed_at": "2025-10-15T10:30:00.000Z",
      "collected_at": "2025-10-15T11:00:00.000Z"
    }
  ],
  "cursor": "dHN4"
}
get

Rate limit: 15 requests per second

Required permission: traffic_metrics.view

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
platformstring · enumRequired

Name of the platform. Currently, only "onlyfans" is supported.

Example: onlyfansPossible values:
platform_account_idstringRequired

Unique account identifier returned by the OnlyFans platform.

Example: 000000000
Query parameters
startstring · date-timeRequired

Start of the trial link creation timestamp range (ISO 8601 Zulu).

Example: 2025-10-01T00:00:00.000Z
endstring · date-timeRequired

End of the trial link creation timestamp range (ISO 8601 Zulu).

Example: 2025-10-31T23:59:59.999Z
limitinteger · min: 10 · max: 1000Optional

Items per page (min:10 max:1000 default:100)

Example: 100
cursorstringOptional

base64-signed string

Responses
200

List of trial links successfully retrieved for the specified platform account.

application/json
cursorstringOptional

Base64-encoded cursor used for paginating subsequent results. Present only if additional pages exist.

Example: dHN4
get/api/v0/platforms/{platform}/accounts/{platform_account_id}/trial-links
GET /api/v0/platforms/{platform}/accounts/{platform_account_id}/trial-links?start=2025-10-01T00%3A00%3A00.000Z&end=2025-10-31T23%3A59%3A59.999Z HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
{
  "items": [
    {
      "id": "10668344",
      "name": "Trial Link 1",
      "claims": 18,
      "claims_limit": 0,
      "url": "https://onlyfans.com/some-name/trial/bwmsqiakh3p1mvgec1gfutz6r26tbmav",
      "duration_days": 3,
      "expires_at": null,
      "is_active": true,
      "clicks": 20,
      "created_at": "2025-10-06T14:16:01.000Z"
    },
    {
      "id": "10611345",
      "name": "Trial Link 2",
      "claims": 0,
      "claims_limit": 0,
      "url": "https://onlyfans.com/some-name/trial/ndzgpob7tptoqargxapzpbgrxv0u8s6f",
      "duration_days": 3,
      "expires_at": null,
      "is_active": true,
      "clicks": 0,
      "created_at": "2025-09-19T21:03:38.000Z"
    }
  ],
  "cursor": "dHN4"
}
get

Rate limit: 15 requests per second

Required permission: traffic_metrics.view

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
platformstring · enumRequired

Name of the platform. Currently, only "onlyfans" is supported.

Example: onlyfansPossible values:
platform_account_idstringRequired

Unique account identifier returned by the OnlyFans platform.

Example: 000000000
Query parameters
collected_fromstring · date-timeOptional

Start of the collected_at timestamp range filter (ISO 8601 Zulu).

Example: 2025-10-01T00:00:00.000Z
collected_tostring · date-timeOptional

End of the collected_at timestamp range filter (ISO 8601 Zulu).

Example: 2025-10-31T23:59:59.999Z
limitinteger · min: 1 · max: 750Optional

Items per page (min:1 max:750 default:100)

Example: 100
cursorstringOptional

base64-signed string

link_idstringOptional

Filter results to a specific trial link ID.

Example: 10668344
Responses
200

List of trial link users successfully retrieved for the specified platform account.

application/json
cursorstringOptional

Base64-encoded cursor for paginating subsequent results. Present only if additional pages exist.

Example: dHN4
get/api/v0/platforms/{platform}/accounts/{platform_account_id}/trial-link-users
GET /api/v0/platforms/{platform}/accounts/{platform_account_id}/trial-link-users HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
{
  "items": [
    {
      "link_id": "text",
      "fan": {
        "id": "text",
        "name": "text",
        "username": "text"
      },
      "subscribed_at": "2026-01-01T00:00:00.000Z",
      "collected_at": "2026-01-01T00:00:00.000Z"
    }
  ],
  "cursor": "dHN4"
}

Retrieve chargebacks for a platform account

get

Rate limit: 15 requests per second

Required permission: dashboard.view

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
platformstring · enumRequired

Name of the platform. Currently, only "onlyfans" is supported.

Example: onlyfansPossible values:
platform_account_idstringRequired

Unique account identifier returned by the OnlyFans platform.

Example: 000000000
Query parameters
startstring · date-timeRequired

Start of the chargeback creation timestamp range (ISO 8601 Zulu).

Example: 2025-10-01T00:00:00.000Z
endstring · date-timeRequired

End of the chargeback creation timestamp range (ISO 8601 Zulu).

Example: 2025-10-31T23:59:59.999Z
limitinteger · min: 10 · max: 1000Optional

Items per page (min:10 max:1000 default:100)

Default: 100
cursorstringOptional

base64-signed string

Responses
200

List of chargebacks successfully retrieved for the specified platform account.

application/json
cursorstringOptional

Base64-encoded cursor used for paginating subsequent results. Present only if additional pages exist.

Example: dHN4
get/api/v0/platforms/{platform}/accounts/{platform_account_id}/chargebacks
GET /api/v0/platforms/{platform}/accounts/{platform_account_id}/chargebacks?start=2025-10-01T00%3A00%3A00.000Z&end=2025-10-31T23%3A59%3A59.999Z HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
{
  "items": [
    {
      "id": "feab0694bd16cf2c83b372cede7fbe0b",
      "amount": 1,
      "fan": {
        "id": "000000000"
      },
      "type": "Tip from",
      "status": "undo",
      "chargeback_timestamp": "2025-08-05T14:50:07.000Z",
      "transaction_timestamp": "2025-08-05T12:01:42.000Z"
    },
    {
      "id": "3760ed0c1770ff18a663b3123acfab31",
      "amount": 16,
      "fan": {
        "id": "000000000"
      },
      "type": "Payment for message",
      "status": "undo",
      "chargeback_timestamp": "2025-07-31T09:05:13.000Z",
      "transaction_timestamp": "2025-07-28T04:02:27.000Z"
    }
  ],
  "cursor": "dHN4"
}

Retrieve transactions for a platform account

get

Rate limit: 15 requests per second

Required permission: dashboard.view

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
platformstring · enumRequired

Name of the platform. Supported values: "onlyfans", "fansly".

Example: onlyfansPossible values:
platform_account_idany ofRequired
string · max: 19Optional

Big integer id as string

Example: 1Pattern: ^(0|[1-9]\d*)$
or
stringOptional
Query parameters
startstring · date-timeRequired

Start of the transaction timestamp range (ISO 8601 Zulu).

Example: 2025-10-01T00:00:00.000Z
endstring · date-timeRequired

End of the transaction timestamp range (ISO 8601 Zulu).

Example: 2025-10-31T23:59:59.999Z
limitinteger · min: 10 · max: 1000Optional

Items per page (min: 10, max: 1000, default: 100).

Example: 100
cursorstring · max: 512Optional

Pagination cursor returned from the previous request.

Responses
200

Default Response

application/json
cursorstringOptional

Base64-encoded cursor for paginating subsequent results. Present only if additional pages exist.

get/api/v0/platforms/{platform}/accounts/{platform_account_id}/transactions
GET /api/v0/platforms/{platform}/accounts/{platform_account_id}/transactions?start=2026-01-01T00%3A00%3A00.000Z&end=2026-01-01T00%3A00%3A00.000Z HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
{
  "items": [
    {
      "id": "text",
      "amount": 1,
      "fan": {
        "id": "1"
      },
      "type": "text",
      "status": "text",
      "timestamp": "2026-01-01T00:00:00.000Z"
    }
  ],
  "cursor": ""
}

Retrieve user metrics for OnlyFans platform

get

Rate limit: 15 requests per second

Required permission: team_metrics.view

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Query parameters
fromstring · date-timeRequired

Start of the metrics timestamp range (ISO 8601 Zulu).

Example: 2025-10-01T00:00:00.000Z
tostring · date-timeRequired

End of the metrics timestamp range (ISO 8601 Zulu).

Example: 2025-10-31T23:59:59.999Z
creator_idsinteger[] · min: 1 · max: 100Optional

Array of creator IDs to filter metrics by.

user_idsinteger[] · min: 1 · max: 100Optional

Array of user IDs to filter metrics by.

account_group_idintegerOptional

Account group ID to filter metrics by.

role_idintegerOptional

Role ID to filter metrics by.

offsetintegerRequired

Offset for pagination.

Default: 0
limitinteger · min: 1 · max: 100Required

Limit for pagination (max 100).

Default: 100
Responses
200

User metrics successfully retrieved.

application/json
get/api/v0/users/metrics
GET /api/v0/users/metrics?from=2025-10-01T00%3A00%3A00.000Z&to=2025-10-31T23%3A59%3A59.999Z&offset=0&limit=100 HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
{
  "items": [
    {
      "user_id": 123,
      "creator_ids": [
        456,
        789
      ],
      "fans_count": 150,
      "messages_count": 320,
      "template_messages_count": 50,
      "ai_generated_messages_count": 30,
      "copied_messages_count": 10,
      "media_messages_count": 100,
      "paid_messages_count": 25,
      "free_media_messages_count": 80,
      "paid_messages_price_sum": 500.5,
      "words_count_sum": 5000,
      "typed_messages_count": 200,
      "unsent_messages_count": 5,
      "purchase_interval_avg": 3600,
      "reply_time_avg": 120,
      "posts_count": 45,
      "deleted_posts_count": 2,
      "work_time": 28800,
      "break_time": 3600,
      "sold_messages_count": 20,
      "sold_messages_price_sum": 400,
      "total_sold_messages_count": 50,
      "total_sold_messages_price_sum": 1000,
      "purchase_interval_min": 300,
      "purchase_interval_max": 7200,
      "sold_posts_count": 10,
      "sold_posts_price_sum": 200,
      "total_sold_posts_count": 25,
      "tips_amount_sum": 150,
      "total_tips_amount_sum": 300,
      "chargedback_tips_amount_sum": 10,
      "chargedback_posts_price_sum": 20,
      "chargedback_posts_count": 1,
      "chargedback_messages_price_sum": 15,
      "chargedback_messages_count": 1,
      "total_chargedback_tips_amount_sum": 25,
      "total_chargedback_posts_price_sum": 40,
      "total_chargedback_posts_count": 2,
      "total_chargedback_messages_price_sum": 30,
      "total_chargedback_messages_count": 2,
      "internal_templates_count": 15
    }
  ]
}

Retrieve organisation members

get

Rate limit: 15 requests per second

Required permission: team_metrics.view

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Query parameters
limitinteger · min: 1 · max: 50Required

Number of members to return (min: 1, max: 50).

Example: 20
offsetintegerRequired

Number of members to skip for pagination.

Example: 0
Responses
200

List of organisation members successfully retrieved.

application/json
get/api/v0/members
GET /api/v0/members?limit=20&offset=0 HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
{
  "users": [
    {
      "id": 1,
      "avatar": "https://example.com/avatar.jpg",
      "name": "Alice Johnson",
      "email": "alice@example.com",
      "createdAt": "2025-01-15T09:00:00Z",
      "customName": "text"
    }
  ]
}

Retrieve vault folders for a platform account. (For OnlyFans account only)

get

Rate limit: 5 requests per second

Required permission: media_uploader.manage

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
account_idstring · max: 19Required

Big integer id as string

Example: {"value":"1"}Pattern: ^(0|[1-9]\d*)$
Query parameters
limitinteger · min: 1 · max: 10OptionalDefault: 10
offsetintegerOptionalDefault: 0
Responses
200

Default Response

application/json
get/api/v0/accounts/{account_id}/vault/folders
GET /api/v0/accounts/{account_id}/vault/folders HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
{
  "items": [
    {
      "id": 1,
      "type": "text",
      "name": "text",
      "has_media": true,
      "can_update": true,
      "can_delete": true,
      "videos_count": 1,
      "photos_count": 1,
      "gifs_count": 1,
      "audios_count": 1
    }
  ]
}

Retrieve medias from a vault folder. (For OnlyFans account only)

get

Rate limit: 5 requests per second

Required permission: media_uploader.manage

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
account_idstring · max: 19Required

Big integer id as string

Example: {"value":"1"}Pattern: ^(0|[1-9]\d*)$
folder_idstring · min: 1 · max: 100RequiredPattern: ^[0-9]+$
Query parameters
limitinteger · min: 1 · max: 10OptionalDefault: 10
offsetintegerOptionalDefault: 0
typestring · enumOptionalDefault: allPossible values:
Responses
200

Default Response

application/json
get/api/v0/accounts/{account_id}/vault/folders/{folder_id}/medias
GET /api/v0/accounts/{account_id}/vault/folders/{folder_id}/medias HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
{
  "items": [
    {
      "id": 1,
      "type": "text",
      "can_view": true,
      "is_ready": true,
      "has_error": true,
      "converted_to_video": true,
      "created_at": "text",
      "thumbnail_url": "text"
    }
  ]
}

Stream a media thumbnail from the vault. (For OnlyFans account only)

get

Rate limit: 3 requests per second

Required permission: media_uploader.manage

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
account_idstring · max: 19Required

Big integer id as string

Example: {"value":"1"}Pattern: ^(0|[1-9]\d*)$
media_idinteger · min: 1Required
Responses
200

Default Response

application/octet-stream
string · binaryOptional
get/api/v0/accounts/{account_id}/vault/media/{media_id}/thumbnail
GET /api/v0/accounts/{account_id}/vault/media/{media_id}/thumbnail HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
binary

List media uploads for a vault account.

get

Rate limit: 3 requests per second

Required permission: media_uploader.manage

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
account_idstring · max: 19Required

Big integer id as string

Example: {"value":"1"}Pattern: ^(0|[1-9]\d*)$
Query parameters
limitinteger · min: 1 · max: 100OptionalDefault: 10
offsetintegerOptionalDefault: 0
expiredbooleanOptional
Responses
200

Default Response

application/json
totalintegerRequired
get/api/v0/accounts/{account_id}/vault/medias/uploads
GET /api/v0/accounts/{account_id}/vault/medias/uploads HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
{
  "items": [
    {
      "id": "text",
      "status": "uploaded",
      "media_id": "text",
      "metadata": {
        "name": "text",
        "size": 1,
        "content_type": "text",
        "duration": 1,
        "key": "text",
        "e_tag": "text",
        "get_url": "text",
        "export_type": "text",
        "export_fan_id": "text",
        "rf_guest": [
          "text"
        ],
        "rf_partner": [
          "text"
        ],
        "rf_tag": [
          "text"
        ]
      },
      "created_at": "text",
      "updated_at": "text"
    }
  ],
  "total": 1
}

Start a new vault media upload.

post

Rate limit: 3 requests per second

Required permission: media_uploader.manage

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
account_idstring · max: 19Required

Big integer id as string

Example: {"value":"1"}Pattern: ^(0|[1-9]\d*)$
Body
namestring · min: 1 · max: 255RequiredPattern: ^[\w. \-()]{1,255}$
sizeinteger · min: 1 · max: 5368709120Required
content_typestring · min: 1 · max: 255RequiredPattern: ^(image|video|audio)/[a-zA-Z0-9.+-]+$
durationnumberOptional
Responses
200

Default Response

application/json
or
post/api/v0/accounts/{account_id}/vault/medias/uploads/start
POST /api/v0/accounts/{account_id}/vault/medias/uploads/start HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 59

{
  "name": "text",
  "size": 1,
  "content_type": "text",
  "duration": 1
}
{
  "get_url": "text",
  "put_url": "text",
  "key": "text"
}

Finish a multipart vault media upload.

post

Rate limit: 3 requests per second

Required permission: media_uploader.manage

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
account_idstring · max: 19Required

Big integer id as string

Example: {"value":"1"}Pattern: ^(0|[1-9]\d*)$
Body
keystring · min: 1 · max: 1024Required
upload_idstring · min: 1 · max: 256Required
Responses
200

Default Response

application/json
e_tagstringRequired
post/api/v0/accounts/{account_id}/vault/medias/uploads/finish
POST /api/v0/accounts/{account_id}/vault/medias/uploads/finish HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 69

{
  "key": "text",
  "upload_id": "text",
  "parts": [
    {
      "part": 1,
      "e_tag": "text"
    }
  ]
}
{
  "e_tag": "text"
}

Export an uploaded media to the vault.

post

Rate limit: 3 requests per second

Required permission: media_uploader.manage

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
account_idstring · max: 19Required

Big integer id as string

Example: {"value":"1"}Pattern: ^(0|[1-9]\d*)$
Body
namestring · min: 1 · max: 255RequiredPattern: ^[\w. \-()]{1,255}$
sizeinteger · min: 1 · max: 5368709120Required
content_typestring · min: 1 · max: 255RequiredPattern: ^(image|video|audio)/[a-zA-Z0-9.+-]+$
durationnumberOptional
keystring · min: 1 · max: 1024Required
e_tagstring · min: 1 · max: 256Required
get_urlstring · uri · min: 1 · max: 2048Required
export_typestring · enumRequiredPossible values:
export_fan_idstring · min: 1Optional
rf_gueststring[]Optional

Big integer id as string

Example: 1
rf_partnerstring[]Optional

Big integer id as string

Example: 1
rf_tagstring[]Optional

Big integer id as string

Example: 1
Responses
200

Default Response

application/json
idstringRequired
statusstring · enumRequiredPossible values:
media_idstring · nullableRequired
created_atstringRequired
updated_atstringRequired
post/api/v0/accounts/{account_id}/vault/medias/uploads/export
POST /api/v0/accounts/{account_id}/vault/medias/uploads/export HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 214

{
  "name": "text",
  "size": 1,
  "content_type": "text",
  "duration": 1,
  "key": "text",
  "e_tag": "text",
  "get_url": "https://example.com",
  "export_type": "post",
  "export_fan_id": "text",
  "rf_guest": [
    "1"
  ],
  "rf_partner": [
    "1"
  ],
  "rf_tag": [
    "1"
  ]
}
{
  "id": "text",
  "status": "uploaded",
  "media_id": "text",
  "metadata": {
    "name": "text",
    "size": 1,
    "content_type": "text",
    "duration": 1,
    "key": "text",
    "e_tag": "text",
    "get_url": "text",
    "export_type": "text",
    "export_fan_id": "text",
    "rf_guest": [
      "text"
    ],
    "rf_partner": [
      "text"
    ],
    "rf_tag": [
      "text"
    ]
  },
  "created_at": "text",
  "updated_at": "text"
}

Retry a failed vault media upload.

post

Rate limit: 3 requests per second

Required permission: media_uploader.manage

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
account_idstring · max: 19Required

Big integer id as string

Example: {"value":"1"}Pattern: ^(0|[1-9]\d*)$
upload_idstring · uuidRequired
Responses
200

Default Response

application/json
idstringRequired
statusstring · enumRequiredPossible values:
media_idstring · nullableRequired
created_atstringRequired
updated_atstringRequired
post/api/v0/accounts/{account_id}/vault/medias/uploads/{upload_id}/retry
POST /api/v0/accounts/{account_id}/vault/medias/uploads/{upload_id}/retry HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
{
  "id": "text",
  "status": "uploaded",
  "media_id": "text",
  "metadata": {
    "name": "text",
    "size": 1,
    "content_type": "text",
    "duration": 1,
    "key": "text",
    "e_tag": "text",
    "get_url": "text",
    "export_type": "text",
    "export_fan_id": "text",
    "rf_guest": [
      "text"
    ],
    "rf_partner": [
      "text"
    ],
    "rf_tag": [
      "text"
    ]
  },
  "created_at": "text",
  "updated_at": "text"
}

Verify a fan link before exporting vault media. (For OnlyFans account only)

post

Rate limit: 3 requests per second

Required permission: media_uploader.manage

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
account_idstring · max: 19Required

Big integer id as string

Example: {"value":"1"}Pattern: ^(0|[1-9]\d*)$
Body
fan_linkstring · min: 1 · max: 2048RequiredPattern: ^https?://(www\.)?onlyfans\.com/
Responses
200

Default Response

application/json
fan_idstring · min: 1Required
post/api/v0/accounts/{account_id}/vault/medias/uploads/fans/verify
POST /api/v0/accounts/{account_id}/vault/medias/uploads/fans/verify HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 19

{
  "fan_link": "text"
}
{
  "fan_id": "text"
}

Retrieve the Auto Messages campaigns of an account

get

Rate limit: 5 requests per second

Required permission: auto_messages.view

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
account_idstring · max: 19Required

OnlyMonster account whose campaigns are read.

Example: 12345Pattern: ^(0|[1-9]\d*)$
Query parameters
limitinteger · min: 1 · max: 100Optional

Items per page (min: 1, max: 100, default: 50).

Default: 50
offsetintegerOptional

Items to skip (default: 0).

Default: 0
include_archivedbooleanOptional

Include archived campaigns in the page (default: false). Only archived is affected — paused, unsending and unsent campaigns are always returned.

Default: false
Responses
200

A page of the account Auto Messages campaigns.

application/json

A page of the account Auto Messages campaigns.

has_morebooleanRequired

True when more campaigns exist beyond this page.

get/api/v0/accounts/{account_id}/auto-message-campaigns
GET /api/v0/accounts/{account_id}/auto-message-campaigns HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
{
  "items": [
    {
      "id": "4312",
      "account_id": "12345",
      "name": "text",
      "trigger": "welcome_message",
      "action": "send_message",
      "status": "active",
      "created_by": {
        "type": "user",
        "id": "42"
      },
      "created_at": "2026-01-01T00:00:00.000Z",
      "rules": {
        "send_delay_interval": {
          "min_sec": 1,
          "range_sec": 1
        },
        "send_after_expire_min": 1,
        "send_before_expire_min": 1,
        "unsend_delay_sec": 1,
        "unsend_if_not_read_enabled": true,
        "unsend_if_not_replied_enabled": true,
        "retry_after_unsend_min": 1,
        "end_at": "2026-01-01T00:00:00.000Z",
        "mimic_on_reply_enabled": true
      },
      "audience_filters": [
        {
          "kind": "purchased_from_organisation",
          "mode": "include",
          "options": {
            "from_at": "2026-01-01T00:00:00.000Z",
            "to_at": "2026-01-01T00:00:00.000Z"
          }
        }
      ],
      "messages": [
        {
          "step": 0,
          "text": "text",
          "price_gross": 9.99,
          "delay_sec": 1,
          "attachments": [
            {
              "id": "1289402",
              "type": "image",
              "is_paid": true
            }
          ],
          "text_is_paid": true,
          "tagged_platform_account_ids": [
            "67890"
          ]
        }
      ],
      "targeted_sends_count": 1,
      "first_message_stats": {
        "sent_messages_count": 1,
        "unsent_messages_count": 1,
        "replied_messages_count": 1,
        "purchased_messages_count": 1,
        "purchased_amount_gross": 1,
        "reply_rate": 1,
        "purchase_rate": 1
      },
      "follow_up_message_stats": [
        {
          "step": 1,
          "sent_messages_count": 1,
          "unsent_messages_count": 1,
          "replied_messages_count": 1,
          "purchased_messages_count": 1,
          "purchased_amount_gross": 1,
          "reply_rate": 1,
          "purchase_rate": 1
        }
      ]
    }
  ],
  "has_more": true
}

Create an Auto Messages campaign

post

Rate limit: 5 requests per second

The campaign starts running as soon as it is created: it begins matching fans the moment this request is answered. There is no way to stage one — use the status endpoint to pause it.

An empty audience_filters targets every fan that fires the trigger. Campaigns here are trigger-driven and send one message per fan event, so this is the ordinary shape of a welcome campaign rather than a broadcast.

audience_filters[].options.lists[].name is accepted and never published back: a name is required for each fan list, while the read endpoints carry identifiers alone.

This endpoint is not idempotent. A request that times out may still have created a running campaign. Before retrying, list the account campaigns and look for one already there; a duplicate can be stopped with the status endpoint. Listing the campaigns needs auto_messages.view in addition to auto_messages.edit.

Required permission: auto_messages.edit

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
account_idstring · max: 19Required

OnlyMonster account whose campaigns are read.

Example: 12345Pattern: ^(0|[1-9]\d*)$
Body
triggerstring · enumRequiredPossible values:
actionstring · enumRequiredPossible values:
namestring · min: 1 · max: 512 · nullableOptional

Campaign name. Required for a sequence and for a message that carries media but no text.

Pattern: \S
Responses
201

One Auto Messages campaign of the account.

application/json

One Auto Messages campaign of the account.

idstring · max: 19Required

Campaign identifier.

Example: 4312Pattern: ^(0|[1-9]\d*)$
account_idstring · max: 19Required

OnlyMonster account the campaign belongs to.

Example: 12345Pattern: ^(0|[1-9]\d*)$
namestring · nullableRequired

Campaign name as the account owner set it. Null when the campaign has none.

triggerstring · enumRequiredPossible values:
actionstring · enum · nullableRequired

What the campaign does when the trigger fires. send_message — sends the messages listed in messages. start_mimic — opens a Mimic chat instead of sending; such a campaign has no messages. Null when this version of the API does not name the action. Such a campaign reports no messages either, since what its content means depends on what it does with it.

Example: send_messagePossible values:
statusstring · enumRequiredPossible values:
created_atstring · date-timeRequired

When the campaign was created (ISO 8601 Zulu).

targeted_sends_countintegerRequired

Dispatches the campaign has made since it was created. Cumulative: a fan targeted twice counts twice, and the figure never decreases.

post/api/v0/accounts/{account_id}/auto-message-campaigns
POST /api/v0/accounts/{account_id}/auto-message-campaigns HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 713

{
  "trigger": "welcome_message",
  "action": "send_message",
  "name": null,
  "rules": {
    "send_delay_interval": {
      "min_sec": 60,
      "range_sec": 120
    },
    "send_after_expire_min": 1440,
    "send_before_expire_min": 1440,
    "unsend_delay_sec": 1,
    "unsend_if_not_read_enabled": true,
    "unsend_if_not_replied_enabled": true,
    "retry_after_unsend_min": 1440,
    "end_at": null,
    "mimic_on_reply_enabled": true
  },
  "audience_filters": [
    {
      "kind": "purchased_from_organisation",
      "mode": "include",
      "options": {
        "from_at": "2026-01-01T00:00:00.000Z",
        "to_at": "2026-01-01T00:00:00.000Z",
        "from_days": 1,
        "to_days": 1
      }
    }
  ],
  "messages": [
    {
      "text": null,
      "price_gross": 0,
      "delay_sec": 1,
      "attachments": [
        {
          "id": "text",
          "type": "image",
          "is_paid": true
        }
      ],
      "text_is_paid": true,
      "tagged_platform_account_ids": [
        "1"
      ]
    }
  ]
}
{
  "id": "4312",
  "account_id": "12345",
  "name": "text",
  "trigger": "welcome_message",
  "action": "send_message",
  "status": "active",
  "created_by": {
    "type": "user",
    "id": "42"
  },
  "created_at": "2026-01-01T00:00:00.000Z",
  "rules": {
    "send_delay_interval": {
      "min_sec": 1,
      "range_sec": 1
    },
    "send_after_expire_min": 1,
    "send_before_expire_min": 1,
    "unsend_delay_sec": 1,
    "unsend_if_not_read_enabled": true,
    "unsend_if_not_replied_enabled": true,
    "retry_after_unsend_min": 1,
    "end_at": "2026-01-01T00:00:00.000Z",
    "mimic_on_reply_enabled": true
  },
  "audience_filters": [
    {
      "kind": "purchased_from_organisation",
      "mode": "include",
      "options": {
        "from_at": "2026-01-01T00:00:00.000Z",
        "to_at": "2026-01-01T00:00:00.000Z"
      }
    }
  ],
  "messages": [
    {
      "step": 0,
      "text": "text",
      "price_gross": 9.99,
      "delay_sec": 1,
      "attachments": [
        {
          "id": "1289402",
          "type": "image",
          "is_paid": true
        }
      ],
      "text_is_paid": true,
      "tagged_platform_account_ids": [
        "67890"
      ]
    }
  ],
  "targeted_sends_count": 1,
  "first_message_stats": {
    "sent_messages_count": 1,
    "unsent_messages_count": 1,
    "replied_messages_count": 1,
    "purchased_messages_count": 1,
    "purchased_amount_gross": 1,
    "reply_rate": 1,
    "purchase_rate": 1
  },
  "follow_up_message_stats": [
    {
      "step": 1,
      "sent_messages_count": 1,
      "unsent_messages_count": 1,
      "replied_messages_count": 1,
      "purchased_messages_count": 1,
      "purchased_amount_gross": 1,
      "reply_rate": 1,
      "purchase_rate": 1
    }
  ]
}

Retrieve one Auto Messages campaign

get

Rate limit: 5 requests per second

Required permission: auto_messages.view

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
account_idstring · max: 19Required

OnlyMonster account the campaign belongs to.

Example: 12345Pattern: ^(0|[1-9]\d*)$
campaign_idstring · max: 19Required

Campaign identifier.

Example: 4312Pattern: ^(0|[1-9]\d*)$
Responses
200

One Auto Messages campaign of the account.

application/json

One Auto Messages campaign of the account.

idstring · max: 19Required

Campaign identifier.

Example: 4312Pattern: ^(0|[1-9]\d*)$
account_idstring · max: 19Required

OnlyMonster account the campaign belongs to.

Example: 12345Pattern: ^(0|[1-9]\d*)$
namestring · nullableRequired

Campaign name as the account owner set it. Null when the campaign has none.

triggerstring · enumRequiredPossible values:
actionstring · enum · nullableRequired

What the campaign does when the trigger fires. send_message — sends the messages listed in messages. start_mimic — opens a Mimic chat instead of sending; such a campaign has no messages. Null when this version of the API does not name the action. Such a campaign reports no messages either, since what its content means depends on what it does with it.

Example: send_messagePossible values:
statusstring · enumRequiredPossible values:
created_atstring · date-timeRequired

When the campaign was created (ISO 8601 Zulu).

targeted_sends_countintegerRequired

Dispatches the campaign has made since it was created. Cumulative: a fan targeted twice counts twice, and the figure never decreases.

get/api/v0/accounts/{account_id}/auto-message-campaigns/{campaign_id}
GET /api/v0/accounts/{account_id}/auto-message-campaigns/{campaign_id} HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*
{
  "id": "4312",
  "account_id": "12345",
  "name": "text",
  "trigger": "welcome_message",
  "action": "send_message",
  "status": "active",
  "created_by": {
    "type": "user",
    "id": "42"
  },
  "created_at": "2026-01-01T00:00:00.000Z",
  "rules": {
    "send_delay_interval": {
      "min_sec": 1,
      "range_sec": 1
    },
    "send_after_expire_min": 1,
    "send_before_expire_min": 1,
    "unsend_delay_sec": 1,
    "unsend_if_not_read_enabled": true,
    "unsend_if_not_replied_enabled": true,
    "retry_after_unsend_min": 1,
    "end_at": "2026-01-01T00:00:00.000Z",
    "mimic_on_reply_enabled": true
  },
  "audience_filters": [
    {
      "kind": "purchased_from_organisation",
      "mode": "include",
      "options": {
        "from_at": "2026-01-01T00:00:00.000Z",
        "to_at": "2026-01-01T00:00:00.000Z"
      }
    }
  ],
  "messages": [
    {
      "step": 0,
      "text": "text",
      "price_gross": 9.99,
      "delay_sec": 1,
      "attachments": [
        {
          "id": "1289402",
          "type": "image",
          "is_paid": true
        }
      ],
      "text_is_paid": true,
      "tagged_platform_account_ids": [
        "67890"
      ]
    }
  ],
  "targeted_sends_count": 1,
  "first_message_stats": {
    "sent_messages_count": 1,
    "unsent_messages_count": 1,
    "replied_messages_count": 1,
    "purchased_messages_count": 1,
    "purchased_amount_gross": 1,
    "reply_rate": 1,
    "purchase_rate": 1
  },
  "follow_up_message_stats": [
    {
      "step": 1,
      "sent_messages_count": 1,
      "unsent_messages_count": 1,
      "replied_messages_count": 1,
      "purchased_messages_count": 1,
      "purchased_amount_gross": 1,
      "reply_rate": 1,
      "purchase_rate": 1
    }
  ]
}

Start, pause or archive an Auto Messages campaign

patch

Rate limit: 5 requests per second

Asking for the state the campaign is already in is accepted and does not change the campaign, but it is not free: the change is carried out again, which is how a change that did not complete is retried. If the answer is 502, repeat the same request to complete the change; after a 204 there is nothing to repeat. Every request, a repeat included, counts toward the rate limit.

Required permission: auto_messages.edit

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
account_idstring · max: 19Required

OnlyMonster account the campaign belongs to.

Example: 12345Pattern: ^(0|[1-9]\d*)$
campaign_idstring · max: 19Required

Campaign identifier.

Example: 4312Pattern: ^(0|[1-9]\d*)$
Body

State to move the campaign to. active — the campaign reacts to its trigger again. paused — the campaign stops reacting and keeps what it already queued. archived — the campaign stops for good and its pending queue is cleared.

statusstring · enumRequiredPossible values:
Responses
204

The status was changed and the change was confirmed.

No content

patch/api/v0/accounts/{account_id}/auto-message-campaigns/{campaign_id}/status
PATCH /api/v0/accounts/{account_id}/auto-message-campaigns/{campaign_id}/status HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 19

{
  "status": "active"
}

No content

Recall what an Auto Messages campaign has sent

post

Rate limit: 5 requests per second

The campaign stops sending, its queue is cleared, and the messages it delivered within the last 24 hours are taken back out of the fans' chats. Anything older stays: the platform allows no recall beyond that window.

This cannot be undone and it is not limited to campaigns this API created. Any campaign of the account can be recalled, including one a member built in the panel.

Unlike a status change, repeating this request is not always safe: a campaign that is already recalling refuses it. If the answer is 502, read the campaign before repeating — recalling or recalled means the recall started and finishes on its own, while active or paused means it never started and only a repeat performs it. Reading the campaign needs auto_messages.view in addition to auto_messages.edit.

Required permission: auto_messages.edit

Authorizations
x-om-auth-tokenstringRequired

API token for authentication

Path parameters
account_idstring · max: 19Required

OnlyMonster account the campaign belongs to.

Example: 12345Pattern: ^(0|[1-9]\d*)$
campaign_idstring · max: 19Required

Campaign identifier.

Example: 4312Pattern: ^(0|[1-9]\d*)$
Responses
204

The recall was accepted: the campaign stops sending and takes back what it can.

No content

post/api/v0/accounts/{account_id}/auto-message-campaigns/{campaign_id}/unsend
POST /api/v0/accounts/{account_id}/auto-message-campaigns/{campaign_id}/unsend HTTP/1.1
Host: omapi.onlymonster.ai
x-om-auth-token: YOUR_API_KEY
Accept: */*

No content

Last updated

Was this helpful?