> For the complete documentation index, see [llms.txt](https://cloakedkeys.gitbook.io/ofsc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cloakedkeys.gitbook.io/ofsc/reference/env.md).

# Environment defaults

> ℹ️ This page is copied from the fork's `reference/` folder and is regenerated there. Don't edit it here; run `scripts/sync_reference.py` to refresh it.

## Environment defaults reference

These are the built-in defaults the app reads with `of_env.getattr(KEY)` (`ofscraper/utils/of_env/of_env.py`). They are loaded once from the files in `ofscraper/utils/of_env/values/` and cached.

Two kinds of environment variable override a default:

* The listed `OFSC_*` variable. It is read once, when the defaults load.
* A variable named after the bare key, for example `DATABASE_TIMEOUT`. It is read on every lookup and converted to the default's type.

Before the app reads either kind, it loads these into the environment. Each one overrides variables that are already set (`ofscraper/utils/of_env/load.py`):

1. A `.env` file found by python-dotenv. It searches upward from `ofscraper/utils/of_env/`. It searches from the working folder only in the standalone binaries, the REPL or a debugger.
2. The env files named in `advanced_options.env_files`.

The values shown are the defaults with no environment variables set. Paths under your home directory appear as `{home_directory}`. Each description comes from the comment above the value in the source, where there is one.

### Contents

* [Rate-limit and backoff settings](#rate-limit-and-backoff-settings)
* [Read directly from the environment](#read-directly-from-the-environment)
* [Downloads](#downloads)
* [Likes](#likes)
* [Metadata](#metadata)
* [Connections, proxies and concurrency](#connections-proxies-and-concurrency)
* [Rate-limit values per request type](#rate-limit-values-per-request-type)
* [API limits and retries](#api-limits-and-retries)
* [DRM manifests (MPD)](#drm-manifests-mpd)
* [CDM](#cdm)
* [Authentication](#authentication)
* [Anonymous requests](#anonymous-requests)
* [Discord](#discord)
* [Dynamic rule downloads](#dynamic-rule-downloads)
* [Output and file handling](#output-and-file-handling)
* [General defaults](#general-defaults)
* [Dates](#dates)
* [Expiry and timeouts](#expiry-and-timeouts)
* [Dynamic rules](#dynamic-rules)
* [List names](#list-names)
* [Progress display](#progress-display)
* [Logging](#logging)
* [Subprocess log levels and free-space check](#subprocess-log-levels-and-free-space-check)
* [Menu choices](#menu-choices)
* [File paths](#file-paths)
* [Filename generation and temp files](#filename-generation-and-temp-files)
* [Name and path lengths](#name-and-path-lengths)
* [Character sizes](#character-sizes)
* [OnlyFans API addresses](#onlyfans-api-addresses)
* [Dynamic rule addresses](#dynamic-rule-addresses)
* [Other addresses](#other-addresses)

### Rate-limit and backoff settings

Requests back off when they get rate-limit errors (429, 503, 504) or 403 errors. The logic is in `ofscraper/managers/sessionmanager/sleepers.py` and in `SessionSleep` in `sessionmanager.py`.

Each kind of request has its own set of values. Rate limits use `<KIND>_SESSION_*` and 403s use `<KIND>_SESSION_403_*`. The standard API uses `SESSION_*`.

How the wait changes:

* The wait starts at `*_MIN_SLEEP`.
* On the first error, if `*_MIN_SLEEP` is 0, the wait becomes `*_SLEEP_INIT` seconds (or 1 if that is 0). Otherwise the first error already multiplies the wait.
* Each error multiplies the wait by `*_SLEEP_INCREASE_FACTOR`, up to `*_SLEEP_MAX`. This happens only if `*_SLEEP_INCREASE_TIME_DIFF` seconds have passed since the last change, since the program started, or since the last per-creator reset.
* After `*_SLEEP_DECAY_THRESHOLD` seconds without a change, the wait is divided by `*_SLEEP_DECAY_FACTOR`, down to `*_MIN_SLEEP`. If the result would drop below 0.5 seconds, the wait goes straight to `*_MIN_SLEEP` and the backoff ends.

How the waits combine:

* `*_MIN_SLEEP` is also the minimum gap kept between requests.
* Before each request, the rate-limit wait runs first. The 403 backoff runs next, if one is active.
* The 403 `*_MIN_SLEEP` gap is kept only when the rate-limit `*_MIN_SLEEP` is 0 and no rate-limit backoff is active.

Only the standard API session (`SESSION_403_*`) backs off on a 403. Downloads, CDM, likes, metadata, Discord and subscriptions never start a 403 backoff, because a 403 there is usually an expired link. Their `<KIND>_SESSION_403_*` values therefore have no effect. The one exception is `<KIND>_SESSION_403_MIN_SLEEP`, which is still kept as a gap under the rule above.

### Read directly from the environment

The app reads these with `os.getenv` where it uses them, not through `of_env.getattr`. Only the variable itself sets them.

| Variable                     | Default                         | Read in                                        | Description                                                                                                                                                                    |
| ---------------------------- | ------------------------------- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `DISPLAY`                    | `None`                          | `ofscraper/classes/table/utils/open_folder.py` | Check table, Linux only: with neither this nor `WAYLAND_DISPLAY` set there's no desktop, so Open Download Folder and `o` show the folder's path instead of running `xdg-open`. |
| `OFSC_FANSLY_API_BASE`       | `f'https://{API_HOST}/api/v1/'` | `ofscraper/sites/fansly/constants.py`          | Base URL of the Fansly API that Fansly requests go to.                                                                                                                         |
| `OFSC_FANSLY_AUTH_FILE_NAME` | `'fansly_auth.json'`            | `ofscraper/sites/fansly/constants.py`          | Name of the Fansly credentials file in the profile folder.                                                                                                                     |
| `STASH_API_KEY`              | `None`                          | `ofscraper/commands/stash_sync.py`             | `stash_sync` only: the Stash API key, for a Stash with a password. `--api-key` overrides it.                                                                                   |
| `STASH_URL`                  | `DEFAULT_URL`                   | `ofscraper/commands/stash_sync.py`             | `stash_sync` only: Stash's GraphQL URL. `--url` overrides it.                                                                                                                  |
| `WAYLAND_DISPLAY`            | `None`                          | `ofscraper/classes/table/utils/open_folder.py` | Check table, Linux only: see `DISPLAY`.                                                                                                                                        |

### Downloads

Defined in `ofscraper/utils/of_env/values/action/download.py`.

#### File and Path

| Key                 | Environment variable | Default | Description                                 |
| ------------------- | -------------------- | ------- | ------------------------------------------- |
| `MAXFILE_SEMAPHORE` | `MAXFILE_SEMAPHORE`  | `None`  | If not set in environment, defaults to None |
| `PATH_STR_MAX`      | `PATH_STR_MAX`       | `200`   | Maximum length for path strings             |
| `TABLE_STR_MAX`     | `TABLE_STR_MAX`      | `100`   | Maximum length for table strings            |

#### Download

| Key                        | Environment variable       | Default                                                  | Description                                    |
| -------------------------- | -------------------------- | -------------------------------------------------------- | ---------------------------------------------- |
| `SPACE_DOWNLOAD_MESSAGE`   | `SPACE_DOWNLOAD_MESSAGE`   | `'Skipping download because space min has been reached'` | Message for skipping download due to low space |
| `DOWNLOAD_THREAD_MIN`      | `DOWNLOAD_THREAD_MIN`      | `35`                                                     | Minimum number of download threads             |
| `DOWNLOAD_NUM_TRIES`       | `DOWNLOAD_NUM_TRIES`       | `3`                                                      | Number of times to retry a download            |
| `DOWNLOAD_NUM_TRIES_CHECK` | `DOWNLOAD_NUM_TRIES_CHECK` | `3`                                                      | Number of times to check download status       |

#### Progress Bar

| Key                                   | Environment variable                  | Default     | Description                                                   |
| ------------------------------------- | ------------------------------------- | ----------- | ------------------------------------------------------------- |
| `MAX_PROGRESS_BARS`                   | `MAX_PROGRESS_BARS`                   | `60`        | Maximum number of progress bars to display                    |
| `MIN_ADD_PROGRESS_BARS`               | `MIN_ADD_PROGRESS_BARS`               | `40`        | Minimum number of progress bars to add                        |
| `SHOW_DL_CHUNKS`                      | `SHOW_DL_CHUNKS`                      | `False`     | Show download chunks in progress bars (boolean)               |
| `SHOW_DL_CHUNKS_LEVEL`                | `SHOW_DL_CHUNKS_LEVEL`                | `'Warning'` | Level for showing download chunks messages                    |
| `MULTIPROGRESS_JOB_UPDATE_FREQ`       | `MULTIPROGRESS_JOB_UPDATE_FREQ`       | `1.5`       | Update frequency for multiprogress jobs (seconds)             |
| `PROGRESS_JOB_UPDATE_FREQ`            | `PROGRESS_JOB_UPDATE_FREQ`            | `2.5`       | Update frequency for single progress jobs (seconds)           |
| `OVERALL_MULTI_PROGRESS_THREAD_SLEEP` | `OVERALL_MULTI_PROGRESS_THREAD_SLEEP` | `0.1`       | Sleep time for overall multi-progress thread (seconds)        |
| `JOB_MULTI_PROGRESS_THREAD_SLEEP`     | `JOB_MULTI_PROGRESS_THREAD_SLEEP`     | `0.1`       | Sleep time for individual job multi-progress thread (seconds) |

#### Forced keys

| Key                    | Environment variable        | Default | Description                                            |
| ---------------------- | --------------------------- | ------- | ------------------------------------------------------ |
| `CDM_FORCE_KEY`        | `CDM_FORCE_KEY`             | `True`  | Force CDM Key                                          |
| `META_FORCE_KEY`       | `META_FORCE_KEY`            | `True`  | Force Meta Key                                         |
| `DOWNLOAD_FORCE_KEY`   | `DOWNLOAD_FORCE_KEY`        | `True`  | Force Download Key                                     |
| `MPD_FORCE_KEY`        | `MPD_FORCE_KEY`             | `True`  | Force MPD Key                                          |
| `API_FORCE_KEY`        | `API_FORCE_KEY`             | `False` | Force API Key                                          |
| `PROFILE_FORCE_KEY`    | `PROFILE_FORCE_KEY`         | `False` | Force Profile Key                                      |
| `VERIFY_ALL_INTEGRITY` | `OFSC_VERIFY_ALL_INTEGRITY` | `False` | Verify duration of all downloaded videos using ffprobe |

### Likes

Defined in `ofscraper/utils/of_env/values/action/like.py`.

| Key                                 | Environment variable                | Default | Description                                                 |
| ----------------------------------- | ----------------------------------- | ------- | ----------------------------------------------------------- |
| `MAX_SLEEP_DURATION_LIKE`           | `MAX_SLEEP_DURATION_LIKE`           | `3.5`   | Maximum sleep duration for like operations (seconds)        |
| `MIN_SLEEP_DURATION_LIKE`           | `MIN_SLEEP_DURATION_LIKE`           | `0.9`   | Minimum sleep duration for like operations (seconds)        |
| `LIKE_MAX_RETRIES`                  | `LIKE_MAX_RETRIES`                  | `5`     | Maximum number of retries for failed like operations        |
| `DOUBLE_TOGGLE_SLEEP_DURATION_LIKE` | `DOUBLE_TOGGLE_SLEEP_DURATION_LIKE` | `5`     | Sleep duration in seconds for double toggle like operations |

### Metadata

Defined in `ofscraper/utils/of_env/values/action/metadata.py`.

| Key                          | Environment variable         | Default    | Description                                                                                                                                |
| ---------------------------- | ---------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `REMOVE_UNVIEWABLE_METADATA` | `REMOVE_UNVIEWABLE_METADATA` | `False`    | Flag to determine if unviewable metadata should be removed (boolean)                                                                       |
| `QUALITY_UNKNOWN_DEFAULT`    | `QUALITY_UNKNOWN_DEFAULT`    | `'source'` | Default quality setting for unknown metadata                                                                                               |
| `ALT_FORCE_KEY`              | `OFSC_ALT_FORCE_KEY`         | `True`     | When on, the `metadata` command fetches a fresh DRM key for protected (MPD) media instead of reusing one (`commands/metadata/manager.py`). |

### Connections, proxies and concurrency

Defined in `ofscraper/utils/of_env/values/req/req.py`.

#### Connection and Timeout

| Key                    | Environment variable        | Default | Description                                                  |
| ---------------------- | --------------------------- | ------- | ------------------------------------------------------------ |
| `CONNECT_TIMEOUT`      | `OFSC_CONNECT_TIMEOUT`      | `15`    | Connection timeout for general network operations (seconds). |
| `POOL_CONNECT_TIMEOUT` | `OFSC_POOL_CONNECT_TIMEOUT` | `15`    | Connection timeout for pooled connections (seconds).         |
| `OF_READ_TIMEOUT`      | `OFSC_READ_TIMEOUT`         | `60`    | Longest wait for the next piece of a response (seconds),     |
| `MAX_CONNECTIONS`      | `OFSC_MAX_CONNECTIONS`      | `200`   | Maximum number of simultaneous network connections.          |
| `API_MAX_CONNECTION`   | `OFSC_API_MAX_CONNECTION`   | `100`   | Maximum number of API connections.                           |
| `TOTAL_TIMEOUT`        | `OFSC_TOTAL_TIMEOUT`        | `None`  | Total timeout for operations (seconds). Defaults to None.    |
| `KEEP_ALIVE`           | `OFSC_KEEP_ALIVE`           | `20`    | Keep-alive duration for connections (seconds).               |
| `KEEP_ALIVE_EXP`       | `OFSC_KEEP_ALIVE_EXP`       | `10`    | Keep-alive expiration duration (seconds).                    |

#### Proxies

| Key            | Environment variable | Default | Description                                                                                           |
| -------------- | -------------------- | ------- | ----------------------------------------------------------------------------------------------------- |
| `PROXY`        | `OFSC_PROXY`         | `None`  | Proxy URL. Defaults to None.                                                                          |
| `PROXY_MOUNTS` | `OFSC_PROXY_MOUNTS`  | `None`  | Proxy mounts configuration (string, specific format expected by application). Defaults to None.       |
| `PROXY_AUTH`   | `OFSC_PROXY_AUTH`    | `None`  | Proxy authentication credentials (string, specific format expected by application). Defaults to None. |

#### Chunking

| Key                       | Environment variable           | Default     | Description                                               |
| ------------------------- | ------------------------------ | ----------- | --------------------------------------------------------- |
| `MAX_CHUNK_SIZE`          | `OFSC_MAX_CHUNK_SIZE`          | `134217728` | Maximum size of a download chunk (bytes).                 |
| `MIN_CHUNK_SIZE`          | `OFSC_MIN_CHUNK_SIZE`          | `65536`     | Minimum size of a download chunk (bytes).                 |
| `CHUNK_UPDATE_COUNT`      | `OFSC_CHUNK_UPDATE_COUNT`      | `12`        | Number of chunks before updating progress.                |
| `CHUNK_SIZE_UPDATE_COUNT` | `OFSC_CHUNK_SIZE_UPDATE_COUNT` | `15`        | Number of chunks before updating chunk size dynamically.  |
| `CHUNK_MEMORY_SPLIT`      | `OFSC_CHUNK_MEMORY_SPLIT`      | `64`        | Ideal memory split for chunk processing (e.g., in MB).    |
| `CHUNK_FILE_SPLIT`        | `OFSC_CHUNK_FILE_SPLIT`        | `64`        | Ideal file split size for chunk processing (e.g., in MB). |
| `MAX_READ_SIZE`           | `OFSC_MAX_READ_SIZE`           | `16777216`  | Maximum size to read at once (bytes).                     |
| `CHUNK_TIMEOUT_SEC`       | `OFSC_CHUNK_TIMEOUT_SEC`       | `30`        | Timeout for individual chunk downloads (seconds).         |

#### Semaphore and Concurrency

| Key                                | Environment variable                    | Default | Description                                               |
| ---------------------------------- | --------------------------------------- | ------- | --------------------------------------------------------- |
| `REQ_SEMAPHORE_MULTI`              | `OFSC_REQ_SEMAPHORE_MULTI`              | `5`     | Semaphore limit for multiple requests.                    |
| `SCRAPE_PAID_SEMS`                 | `OFSC_SCRAPE_PAID_SEMS`                 | `10`    | Semaphore limit for scraping paid content.                |
| `SUBSCRIPTION_SEMS`                | `OFSC_SUBSCRIPTION_SEMS`                | `5`     | Semaphore limit for subscription-related operations.      |
| `LIKE_MAX_SEMS`                    | `OFSC_LIKE_MAX_SEMS`                    | `12`    | Maximum semaphores for like operations.                   |
| `MAX_SEMS_BATCH_DOWNLOAD`          | `OFSC_MAX_SEMS_BATCH_DOWNLOAD`          | `12`    | Maximum semaphores for batch downloads.                   |
| `MAX_SEMS_SINGLE_THREAD_DOWNLOAD`  | `OFSC_MAX_SEMS_SINGLE_THREAD_DOWNLOAD`  | `50`    | Maximum semaphores for single-thread downloads.           |
| `SESSION_MANAGER_SYNC_SEM_DEFAULT` | `OFSC_SESSION_MANAGER_SYNC_SEM_DEFAULT` | `3`     | Default semaphore for session manager sync operations.    |
| `SESSION_MANAGER_SEM_DEFAULT`      | `OFSC_SESSION_MANAGER_SEM_DEFAULT`      | `10`    | Default semaphore for general session manager operations. |
| `MAX_THREAD_WORKERS`               | `OFSC_MAX_THREAD_WORKERS`               | `20`    | Maximum number of threads for worker pools.               |

#### Retry and Wait

| Key                              | Environment variable                | Default | Description                                                |
| -------------------------------- | ----------------------------------- | ------- | ---------------------------------------------------------- |
| `OF_MIN_WAIT_SESSION_DEFAULT`    | `OFSC_MIN_WAIT_SESSION_DEFAULT`     | `2.0`   | Minimum wait time for session operations (seconds).        |
| `OF_MAX_WAIT_SESSION_DEFAULT`    | `OFSC_MAX_WAIT_SESSION_DEFAULT`     | `3.0`   | Maximum wait time for session operations (seconds).        |
| `OF_NUM_RETRIES_SESSION_DEFAULT` | `OFSC_NUM_RETRIES_SESSION_DEFAULT`  | `10`    | Number of retries for session operations.                  |
| `OF_MIN_WAIT_API`                | `OFSC_MIN_WAIT_API`                 | `2.0`   | Minimum wait time for API calls (seconds).                 |
| `OF_MAX_WAIT_API`                | `OFSC_MAX_WAIT_API`                 | `3.0`   | Maximum wait time for API calls (seconds).                 |
| `OF_AUTH_MIN_WAIT`               | `OFSC_AUTH_MIN_WAIT`                | `3.0`   | Minimum wait time for authentication operations (seconds). |
| `OF_AUTH_MAX_WAIT`               | `OFSC_AUTH_MAX_WAIT`                | `3.0`   | Maximum wait time for authentication operations (seconds). |
| `DOWNLOAD_NUM_TRIES_REQ`         | `OFSC_DOWNLOAD_NUM_TRIES_REQ`       | `5`     | Number of download retries for requests.                   |
| `DOWNLOAD_NUM_TRIES_CHECK_REQ`   | `OFSC_DOWNLOAD_NUM_TRIES_CHECK_REQ` | `2`     | Number of download check retries for requests.             |
| `AUTH_NUM_TRIES`                 | `OFSC_AUTH_NUM_TRIES`               | `3`     | Number of retries for authentication attempts.             |

#### Other

| Key                     | Environment variable         | Default | Description                                    |
| ----------------------- | ---------------------------- | ------- | ---------------------------------------------- |
| `MESSAGE_SLEEP_DEFAULT` | `OFSC_MESSAGE_SLEEP_DEFAULT` | `0`     | Default sleep duration for messages (seconds). |

### Rate-limit values per request type

Defined in `ofscraper/utils/of_env/values/req/ratelimit.py`.

#### Standard API: rate limits (429, 504)

| Key                                | Environment variable                    | Default | Description                                                                                                                    |
| ---------------------------------- | --------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `SESSION_SLEEP_INIT`               | `OFSC_SESSION_SLEEP_INIT`               | `2.5`   | The wait the first error of this kind sets when `*_MIN_SLEEP` is 0 (0 means 1 second). Not used when `*_MIN_SLEEP` is above 0. |
| `SESSION_SLEEP_INCREASE_TIME_DIFF` | `OFSC_SESSION_SLEEP_INCREASE_TIME_DIFF` | `30.0`  | Seconds that must pass since the last change before another error raises the wait.                                             |
| `SESSION_SLEEP_MAX`                | `OFSC_SESSION_SLEEP_MAX`                | `180.0` | The longest backoff wait, in seconds.                                                                                          |
| `SESSION_SLEEP_INCREASE_FACTOR`    | `OFSC_SESSION_SLEEP_INCREASE_FACTOR`    | `2.0`   | Each further error multiplies the wait by this.                                                                                |
| `SESSION_SLEEP_DECAY_THRESHOLD`    | `OFSC_SESSION_SLEEP_DECAY_THRESHOLD`    | `120.0` | Seconds without a change after which the wait shrinks.                                                                         |
| `SESSION_SLEEP_DECAY_FACTOR`       | `OFSC_SESSION_SLEEP_DECAY_FACTOR`       | `1.5`   | The wait is divided by this when it shrinks.                                                                                   |
| `SESSION_MIN_SLEEP`                | `OFSC_SESSION_MIN_SLEEP`                | `0.5`   | The smallest wait, and the minimum gap kept between requests, in seconds. The wait starts here.                                |

#### Standard API: 403 errors

| Key                                    | Environment variable                        | Default | Description                                                                                                                    |
| -------------------------------------- | ------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `SESSION_403_SLEEP_INIT`               | `OFSC_SESSION_403_SLEEP_INIT`               | `15.0`  | The wait the first error of this kind sets when `*_MIN_SLEEP` is 0 (0 means 1 second). Not used when `*_MIN_SLEEP` is above 0. |
| `SESSION_403_SLEEP_INCREASE_TIME_DIFF` | `OFSC_SESSION_403_SLEEP_INCREASE_TIME_DIFF` | `60.0`  | Seconds that must pass since the last change before another error raises the wait.                                             |
| `SESSION_403_SLEEP_MAX`                | `OFSC_SESSION_403_SLEEP_MAX`                | `180.0` | The longest backoff wait, in seconds.                                                                                          |
| `SESSION_403_SLEEP_INCREASE_FACTOR`    | `OFSC_SESSION_403_SLEEP_INCREASE_FACTOR`    | `1.5`   | Each further error multiplies the wait by this.                                                                                |
| `SESSION_403_SLEEP_DECAY_THRESHOLD`    | `OFSC_SESSION_403_SLEEP_DECAY_THRESHOLD`    | `65.0`  | Seconds without a change after which the wait shrinks.                                                                         |
| `SESSION_403_SLEEP_DECAY_FACTOR`       | `OFSC_SESSION_403_SLEEP_DECAY_FACTOR`       | `1.5`   | The wait is divided by this when it shrinks.                                                                                   |
| `SESSION_403_MIN_SLEEP`                | `OFSC_SESSION_403_MIN_SLEEP`                | `0.0`   | The smallest wait, and the minimum gap kept between requests, in seconds. The wait starts here.                                |

#### Downloads: rate limits (429, 504)

| Key                                         | Environment variable                             | Default | Description                                                                                                                    |
| ------------------------------------------- | ------------------------------------------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `DOWNLOAD_SESSION_SLEEP_INIT`               | `OFSC_DOWNLOAD_SESSION_SLEEP_INIT`               | `0.0`   | The wait the first error of this kind sets when `*_MIN_SLEEP` is 0 (0 means 1 second). Not used when `*_MIN_SLEEP` is above 0. |
| `DOWNLOAD_SESSION_SLEEP_INCREASE_TIME_DIFF` | `OFSC_DOWNLOAD_SESSION_SLEEP_INCREASE_TIME_DIFF` | `30.0`  | Seconds that must pass since the last change before another error raises the wait.                                             |
| `DOWNLOAD_SESSION_SLEEP_MAX`                | `OFSC_DOWNLOAD_SESSION_SLEEP_MAX`                | `180.0` | The longest backoff wait, in seconds.                                                                                          |
| `DOWNLOAD_SESSION_SLEEP_INCREASE_FACTOR`    | `OFSC_DOWNLOAD_SESSION_SLEEP_INCREASE_FACTOR`    | `2.0`   | Each further error multiplies the wait by this.                                                                                |
| `DOWNLOAD_SESSION_SLEEP_DECAY_THRESHOLD`    | `OFSC_DOWNLOAD_SESSION_SLEEP_DECAY_THRESHOLD`    | `120.0` | Seconds without a change after which the wait shrinks.                                                                         |
| `DOWNLOAD_SESSION_SLEEP_DECAY_FACTOR`       | `OFSC_DOWNLOAD_SESSION_SLEEP_DECAY_FACTOR`       | `1.5`   | The wait is divided by this when it shrinks.                                                                                   |
| `DOWNLOAD_SESSION_MIN_SLEEP`                | `OFSC_DOWNLOAD_SESSION_MIN_SLEEP`                | `0.0`   | The smallest wait, and the minimum gap kept between requests, in seconds. The wait starts here.                                |

#### Downloads: 403 errors

| Key                                             | Environment variable                                 | Default | Description                                                                                                                    |
| ----------------------------------------------- | ---------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `DOWNLOAD_SESSION_403_SLEEP_INIT`               | `OFSC_DOWNLOAD_SESSION_403_SLEEP_INIT`               | `15.0`  | The wait the first error of this kind sets when `*_MIN_SLEEP` is 0 (0 means 1 second). Not used when `*_MIN_SLEEP` is above 0. |
| `DOWNLOAD_SESSION_403_SLEEP_INCREASE_TIME_DIFF` | `OFSC_DOWNLOAD_SESSION_403_SLEEP_INCREASE_TIME_DIFF` | `80.0`  | Seconds that must pass since the last change before another error raises the wait.                                             |
| `DOWNLOAD_SESSION_403_SLEEP_MAX`                | `OFSC_DOWNLOAD_SESSION_403_SLEEP_MAX`                | `180.0` | The longest backoff wait, in seconds.                                                                                          |
| `DOWNLOAD_SESSION_403_SLEEP_INCREASE_FACTOR`    | `OFSC_DOWNLOAD_SESSION_403_SLEEP_INCREASE_FACTOR`    | `1.5`   | Each further error multiplies the wait by this.                                                                                |
| `DOWNLOAD_SESSION_403_SLEEP_DECAY_THRESHOLD`    | `OFSC_DOWNLOAD_SESSION_403_SLEEP_DECAY_THRESHOLD`    | `70.0`  | Seconds without a change after which the wait shrinks.                                                                         |
| `DOWNLOAD_SESSION_403_SLEEP_DECAY_FACTOR`       | `OFSC_DOWNLOAD_SESSION_403_SLEEP_DECAY_FACTOR`       | `1.5`   | The wait is divided by this when it shrinks.                                                                                   |
| `DOWNLOAD_SESSION_403_MIN_SLEEP`                | `OFSC_DOWNLOAD_SESSION_403_MIN_SLEEP`                | `0.0`   | The smallest wait, and the minimum gap kept between requests, in seconds. The wait starts here.                                |

#### CDM: rate limits (429, 504)

| Key                                    | Environment variable                        | Default | Description                                                                                                                    |
| -------------------------------------- | ------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `CDM_SESSION_SLEEP_INIT`               | `OFSC_CDM_SESSION_SLEEP_INIT`               | `0.0`   | The wait the first error of this kind sets when `*_MIN_SLEEP` is 0 (0 means 1 second). Not used when `*_MIN_SLEEP` is above 0. |
| `CDM_SESSION_SLEEP_INCREASE_TIME_DIFF` | `OFSC_CDM_SESSION_SLEEP_INCREASE_TIME_DIFF` | `30.0`  | Seconds that must pass since the last change before another error raises the wait.                                             |
| `CDM_SESSION_SLEEP_MAX`                | `OFSC_CDM_SESSION_SLEEP_MAX`                | `180.0` | The longest backoff wait, in seconds.                                                                                          |
| `CDM_SESSION_SLEEP_INCREASE_FACTOR`    | `OFSC_CDM_SESSION_SLEEP_INCREASE_FACTOR`    | `2.0`   | Each further error multiplies the wait by this.                                                                                |
| `CDM_SESSION_SLEEP_DECAY_THRESHOLD`    | `OFSC_CDM_SESSION_SLEEP_DECAY_THRESHOLD`    | `120.0` | Seconds without a change after which the wait shrinks.                                                                         |
| `CDM_SESSION_SLEEP_DECAY_FACTOR`       | `OFSC_CDM_SESSION_SLEEP_DECAY_FACTOR`       | `1.5`   | The wait is divided by this when it shrinks.                                                                                   |
| `CDM_SESSION_MIN_SLEEP`                | `OFSC_CDM_SESSION_MIN_SLEEP`                | `1.0`   | The smallest wait, and the minimum gap kept between requests, in seconds. The wait starts here.                                |

#### CDM: 403 errors

| Key                                        | Environment variable                            | Default | Description                                                                                                                    |
| ------------------------------------------ | ----------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `CDM_SESSION_403_SLEEP_INIT`               | `OFSC_CDM_SESSION_403_SLEEP_INIT`               | `8.0`   | The wait the first error of this kind sets when `*_MIN_SLEEP` is 0 (0 means 1 second). Not used when `*_MIN_SLEEP` is above 0. |
| `CDM_SESSION_403_SLEEP_INCREASE_TIME_DIFF` | `OFSC_CDM_SESSION_403_SLEEP_INCREASE_TIME_DIFF` | `60.0`  | Seconds that must pass since the last change before another error raises the wait.                                             |
| `CDM_SESSION_403_SLEEP_MAX`                | `OFSC_CDM_SESSION_403_SLEEP_MAX`                | `180.0` | The longest backoff wait, in seconds.                                                                                          |
| `CDM_SESSION_403_SLEEP_INCREASE_FACTOR`    | `OFSC_CDM_SESSION_403_SLEEP_INCREASE_FACTOR`    | `1.5`   | Each further error multiplies the wait by this.                                                                                |
| `CDM_SESSION_403_SLEEP_DECAY_THRESHOLD`    | `OFSC_CDM_SESSION_403_SLEEP_DECAY_THRESHOLD`    | `65.0`  | Seconds without a change after which the wait shrinks.                                                                         |
| `CDM_SESSION_403_SLEEP_DECAY_FACTOR`       | `OFSC_CDM_SESSION_403_SLEEP_DECAY_FACTOR`       | `1.5`   | The wait is divided by this when it shrinks.                                                                                   |
| `CDM_SESSION_403_MIN_SLEEP`                | `OFSC_CDM_SESSION_403_MIN_SLEEP`                | `0.0`   | The smallest wait, and the minimum gap kept between requests, in seconds. The wait starts here.                                |

#### Likes: rate limits (429, 504)

| Key                                     | Environment variable                         | Default | Description                                                                                                                    |
| --------------------------------------- | -------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `LIKE_SESSION_SLEEP_INIT`               | `OFSC_LIKE_SESSION_SLEEP_INIT`               | `8.0`   | The wait the first error of this kind sets when `*_MIN_SLEEP` is 0 (0 means 1 second). Not used when `*_MIN_SLEEP` is above 0. |
| `LIKE_SESSION_SLEEP_INCREASE_TIME_DIFF` | `OFSC_LIKE_SESSION_SLEEP_INCREASE_TIME_DIFF` | `4.0`   | Seconds that must pass since the last change before another error raises the wait.                                             |
| `LIKE_SESSION_SLEEP_MAX`                | `OFSC_LIKE_SESSION_SLEEP_MAX`                | `120.0` | The longest backoff wait, in seconds.                                                                                          |
| `LIKE_SESSION_SLEEP_INCREASE_FACTOR`    | `OFSC_LIKE_SESSION_SLEEP_INCREASE_FACTOR`    | `2.0`   | Each further error multiplies the wait by this.                                                                                |
| `LIKE_SESSION_SLEEP_DECAY_THRESHOLD`    | `OFSC_LIKE_SESSION_SLEEP_DECAY_THRESHOLD`    | `120.0` | Seconds without a change after which the wait shrinks.                                                                         |
| `LIKE_SESSION_SLEEP_DECAY_FACTOR`       | `OFSC_LIKE_SESSION_SLEEP_DECAY_FACTOR`       | `1.5`   | The wait is divided by this when it shrinks.                                                                                   |
| `LIKE_SESSION_MIN_SLEEP`                | `OFSC_LIKE_SESSION_MIN_SLEEP`                | `0.0`   | The smallest wait, and the minimum gap kept between requests, in seconds. The wait starts here.                                |

#### Likes: 403 errors

| Key                                         | Environment variable                             | Default | Description                                                                                                                    |
| ------------------------------------------- | ------------------------------------------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `LIKE_SESSION_403_SLEEP_INIT`               | `OFSC_LIKE_SESSION_403_SLEEP_INIT`               | `8.0`   | The wait the first error of this kind sets when `*_MIN_SLEEP` is 0 (0 means 1 second). Not used when `*_MIN_SLEEP` is above 0. |
| `LIKE_SESSION_403_SLEEP_INCREASE_TIME_DIFF` | `OFSC_LIKE_SESSION_403_SLEEP_INCREASE_TIME_DIFF` | `4.0`   | Seconds that must pass since the last change before another error raises the wait.                                             |
| `LIKE_SESSION_403_SLEEP_MAX`                | `OFSC_LIKE_SESSION_403_SLEEP_MAX`                | `120.0` | The longest backoff wait, in seconds.                                                                                          |
| `LIKE_SESSION_403_SLEEP_INCREASE_FACTOR`    | `OFSC_LIKE_SESSION_403_SLEEP_INCREASE_FACTOR`    | `1.5`   | Each further error multiplies the wait by this.                                                                                |
| `LIKE_SESSION_403_SLEEP_DECAY_THRESHOLD`    | `OFSC_LIKE_SESSION_403_SLEEP_DECAY_THRESHOLD`    | `65.0`  | Seconds without a change after which the wait shrinks.                                                                         |
| `LIKE_SESSION_403_SLEEP_DECAY_FACTOR`       | `OFSC_LIKE_SESSION_403_SLEEP_DECAY_FACTOR`       | `1.5`   | The wait is divided by this when it shrinks.                                                                                   |
| `LIKE_SESSION_403_MIN_SLEEP`                | `OFSC_LIKE_SESSION_403_MIN_SLEEP`                | `0.0`   | The smallest wait, and the minimum gap kept between requests, in seconds. The wait starts here.                                |

#### Metadata: rate limits (429, 504)

| Key                                         | Environment variable                             | Default | Description                                                                                                                    |
| ------------------------------------------- | ------------------------------------------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `METADATA_SESSION_SLEEP_INIT`               | `OFSC_METADATA_SESSION_SLEEP_INIT`               | `4.0`   | The wait the first error of this kind sets when `*_MIN_SLEEP` is 0 (0 means 1 second). Not used when `*_MIN_SLEEP` is above 0. |
| `METADATA_SESSION_SLEEP_INCREASE_TIME_DIFF` | `OFSC_METADATA_SESSION_SLEEP_INCREASE_TIME_DIFF` | `35.0`  | Seconds that must pass since the last change before another error raises the wait.                                             |
| `METADATA_SESSION_SLEEP_MAX`                | `OFSC_METADATA_SESSION_SLEEP_MAX`                | `60.0`  | The longest backoff wait, in seconds.                                                                                          |
| `METADATA_SESSION_SLEEP_INCREASE_FACTOR`    | `OFSC_METADATA_SESSION_SLEEP_INCREASE_FACTOR`    | `1.5`   | Each further error multiplies the wait by this.                                                                                |
| `METADATA_SESSION_SLEEP_DECAY_THRESHOLD`    | `OFSC_METADATA_SESSION_SLEEP_DECAY_THRESHOLD`    | `35.0`  | Seconds without a change after which the wait shrinks.                                                                         |
| `METADATA_SESSION_SLEEP_DECAY_FACTOR`       | `OFSC_METADATA_SESSION_SLEEP_DECAY_FACTOR`       | `2.0`   | The wait is divided by this when it shrinks.                                                                                   |
| `METADATA_SESSION_MIN_SLEEP`                | `OFSC_METADATA_SESSION_MIN_SLEEP`                | `0.5`   | The smallest wait, and the minimum gap kept between requests, in seconds. The wait starts here.                                |

#### Metadata: 403 errors

| Key                                             | Environment variable                                 | Default | Description                                                                                                                    |
| ----------------------------------------------- | ---------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `METADATA_SESSION_403_SLEEP_INIT`               | `OFSC_METADATA_SESSION_403_SLEEP_INIT`               | `4.0`   | The wait the first error of this kind sets when `*_MIN_SLEEP` is 0 (0 means 1 second). Not used when `*_MIN_SLEEP` is above 0. |
| `METADATA_SESSION_403_SLEEP_INCREASE_TIME_DIFF` | `OFSC_METADATA_SESSION_403_SLEEP_INCREASE_TIME_DIFF` | `35.0`  | Seconds that must pass since the last change before another error raises the wait.                                             |
| `METADATA_SESSION_403_SLEEP_MAX`                | `OFSC_METADATA_SESSION_403_SLEEP_MAX`                | `60.0`  | The longest backoff wait, in seconds.                                                                                          |
| `METADATA_SESSION_403_SLEEP_INCREASE_FACTOR`    | `OFSC_METADATA_SESSION_403_SLEEP_INCREASE_FACTOR`    | `1.5`   | Each further error multiplies the wait by this.                                                                                |
| `METADATA_SESSION_403_SLEEP_DECAY_THRESHOLD`    | `OFSC_METADATA_SESSION_403_SLEEP_DECAY_THRESHOLD`    | `30.0`  | Seconds without a change after which the wait shrinks.                                                                         |
| `METADATA_SESSION_403_SLEEP_DECAY_FACTOR`       | `OFSC_METADATA_SESSION_403_SLEEP_DECAY_FACTOR`       | `2.0`   | The wait is divided by this when it shrinks.                                                                                   |
| `METADATA_SESSION_403_MIN_SLEEP`                | `OFSC_METADATA_SESSION_403_MIN_SLEEP`                | `2.0`   | The smallest wait, and the minimum gap kept between requests, in seconds. The wait starts here.                                |

#### Discord: rate limits (429, 504)

| Key                                        | Environment variable                            | Default | Description                                                                                                                    |
| ------------------------------------------ | ----------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `DISCORD_SESSION_SLEEP_INIT`               | `OFSC_DISCORD_SESSION_SLEEP_INIT`               | `5.0`   | The wait the first error of this kind sets when `*_MIN_SLEEP` is 0 (0 means 1 second). Not used when `*_MIN_SLEEP` is above 0. |
| `DISCORD_SESSION_SLEEP_INCREASE_TIME_DIFF` | `OFSC_DISCORD_SESSION_SLEEP_INCREASE_TIME_DIFF` | `30.0`  | Seconds that must pass since the last change before another error raises the wait.                                             |
| `DISCORD_SESSION_SLEEP_MAX`                | `OFSC_DISCORD_SESSION_SLEEP_MAX`                | `60.0`  | The longest backoff wait, in seconds.                                                                                          |
| `DISCORD_SESSION_SLEEP_INCREASE_FACTOR`    | `OFSC_DISCORD_SESSION_SLEEP_INCREASE_FACTOR`    | `2.0`   | Each further error multiplies the wait by this.                                                                                |
| `DISCORD_SESSION_SLEEP_DECAY_THRESHOLD`    | `OFSC_DISCORD_SESSION_SLEEP_DECAY_THRESHOLD`    | `120.0` | Seconds without a change after which the wait shrinks.                                                                         |
| `DISCORD_SESSION_SLEEP_DECAY_FACTOR`       | `OFSC_DISCORD_SESSION_SLEEP_DECAY_FACTOR`       | `1.5`   | The wait is divided by this when it shrinks.                                                                                   |
| `DISCORD_SESSION_MIN_SLEEP`                | `OFSC_DISCORD_SESSION_MIN_SLEEP`                | `2.0`   | The smallest wait, and the minimum gap kept between requests, in seconds. The wait starts here.                                |

#### Discord: 403 errors

| Key                                            | Environment variable                                | Default | Description                                                                                                                    |
| ---------------------------------------------- | --------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `DISCORD_SESSION_403_SLEEP_INIT`               | `OFSC_DISCORD_SESSION_403_SLEEP_INIT`               | `4.0`   | The wait the first error of this kind sets when `*_MIN_SLEEP` is 0 (0 means 1 second). Not used when `*_MIN_SLEEP` is above 0. |
| `DISCORD_SESSION_403_SLEEP_INCREASE_TIME_DIFF` | `OFSC_DISCORD_SESSION_403_SLEEP_INCREASE_TIME_DIFF` | `30.0`  | Seconds that must pass since the last change before another error raises the wait.                                             |
| `DISCORD_SESSION_403_SLEEP_MAX`                | `OFSC_DISCORD_SESSION_403_SLEEP_MAX`                | `300.0` | The longest backoff wait, in seconds.                                                                                          |
| `DISCORD_SESSION_403_SLEEP_INCREASE_FACTOR`    | `OFSC_DISCORD_SESSION_403_SLEEP_INCREASE_FACTOR`    | `4.0`   | Each further error multiplies the wait by this.                                                                                |
| `DISCORD_SESSION_403_SLEEP_DECAY_THRESHOLD`    | `OFSC_DISCORD_SESSION_403_SLEEP_DECAY_THRESHOLD`    | `60.0`  | Seconds without a change after which the wait shrinks.                                                                         |
| `DISCORD_SESSION_403_SLEEP_DECAY_FACTOR`       | `OFSC_DISCORD_SESSION_403_SLEEP_DECAY_FACTOR`       | `1.5`   | The wait is divided by this when it shrinks.                                                                                   |
| `DISCORD_SESSION_403_MIN_SLEEP`                | `OFSC_DISCORD_SESSION_403_MIN_SLEEP`                | `30.0`  | The smallest wait, and the minimum gap kept between requests, in seconds. The wait starts here.                                |

#### Subscription API: rate limits (429, 504)

| Key                                             | Environment variable                                 | Default | Description                                                                                                                    |
| ----------------------------------------------- | ---------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `SUBSCRIPTION_SESSION_SLEEP_INIT`               | `OFSC_SUBSCRIPTION_SESSION_SLEEP_INIT`               | `1.0`   | The wait the first error of this kind sets when `*_MIN_SLEEP` is 0 (0 means 1 second). Not used when `*_MIN_SLEEP` is above 0. |
| `SUBSCRIPTION_SESSION_SLEEP_INCREASE_TIME_DIFF` | `OFSC_SUBSCRIPTION_SESSION_SLEEP_INCREASE_TIME_DIFF` | `30.0`  | Seconds that must pass since the last change before another error raises the wait.                                             |
| `SUBSCRIPTION_SESSION_SLEEP_MAX`                | `OFSC_SUBSCRIPTION_SESSION_SLEEP_MAX`                | `180.0` | The longest backoff wait, in seconds.                                                                                          |
| `SUBSCRIPTION_SESSION_SLEEP_INCREASE_FACTOR`    | `OFSC_SUBSCRIPTION_SESSION_SLEEP_INCREASE_FACTOR`    | `2.0`   | Each further error multiplies the wait by this.                                                                                |
| `SUBSCRIPTION_SESSION_SLEEP_DECAY_THRESHOLD`    | `OFSC_SUBSCRIPTION_SESSION_SLEEP_DECAY_THRESHOLD`    | `120.0` | Seconds without a change after which the wait shrinks.                                                                         |
| `SUBSCRIPTION_SESSION_SLEEP_DECAY_FACTOR`       | `OFSC_SUBSCRIPTION_SESSION_SLEEP_DECAY_FACTOR`       | `1.5`   | The wait is divided by this when it shrinks.                                                                                   |
| `SUBSCRIPTION_SESSION_MIN_SLEEP`                | `OFSC_SUBSCRIPTION_SESSION_MIN_SLEEP`                | `0.5`   | The smallest wait, and the minimum gap kept between requests, in seconds. The wait starts here.                                |

#### Subscription API: 403 errors

| Key                                                 | Environment variable                                     | Default | Description                                                                                                                    |
| --------------------------------------------------- | -------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `SUBSCRIPTION_SESSION_403_SLEEP_INIT`               | `OFSC_SUBSCRIPTION_SESSION_403_SLEEP_INIT`               | `2.0`   | The wait the first error of this kind sets when `*_MIN_SLEEP` is 0 (0 means 1 second). Not used when `*_MIN_SLEEP` is above 0. |
| `SUBSCRIPTION_SESSION_403_SLEEP_INCREASE_TIME_DIFF` | `OFSC_SUBSCRIPTION_SESSION_403_SLEEP_INCREASE_TIME_DIFF` | `60.0`  | Seconds that must pass since the last change before another error raises the wait.                                             |
| `SUBSCRIPTION_SESSION_403_SLEEP_MAX`                | `OFSC_SUBSCRIPTION_SESSION_403_SLEEP_MAX`                | `180.0` | The longest backoff wait, in seconds.                                                                                          |
| `SUBSCRIPTION_SESSION_403_SLEEP_INCREASE_FACTOR`    | `OFSC_SUBSCRIPTION_SESSION_403_SLEEP_INCREASE_FACTOR`    | `1.5`   | Each further error multiplies the wait by this.                                                                                |
| `SUBSCRIPTION_SESSION_403_SLEEP_DECAY_THRESHOLD`    | `OFSC_SUBSCRIPTION_SESSION_403_SLEEP_DECAY_THRESHOLD`    | `65.0`  | Seconds without a change after which the wait shrinks.                                                                         |
| `SUBSCRIPTION_SESSION_403_SLEEP_DECAY_FACTOR`       | `OFSC_SUBSCRIPTION_SESSION_403_SLEEP_DECAY_FACTOR`       | `1.5`   | The wait is divided by this when it shrinks.                                                                                   |
| `SUBSCRIPTION_SESSION_403_MIN_SLEEP`                | `OFSC_SUBSCRIPTION_SESSION_403_MIN_SLEEP`                | `0.0`   | The smallest wait, and the minimum gap kept between requests, in seconds. The wait starts here.                                |

### API limits and retries

Defined in `ofscraper/utils/of_env/values/req/api.py`.

#### API Search Limits

| Key                              | Environment variable                  | Default | Description                                          |
| -------------------------------- | ------------------------------------- | ------- | ---------------------------------------------------- |
| `MAX_TIMELINE_INDIVIDUAL_SEARCH` | `OFSC_MAX_TIMELINE_INDIVIDUAL_SEARCH` | `10`    | Max number of timeline posts to search individually. |
| `MAX_PINNED_INDIVIDUAL_SEARCH`   | `OFSC_MAX_PINNED_INDIVIDUAL_SEARCH`   | `10`    | Max number of pinned posts to search individually.   |
| `MAX_ARCHIVED_INDIVIDUAL_SEARCH` | `OFSC_MAX_ARCHIVED_INDIVIDUAL_SEARCH` | `10`    | Max number of archived posts to search individually. |
| `MAX_MESSAGES_INDIVIDUAL_SEARCH` | `OFSC_MAX_MESSAGES_INDIVIDUAL_SEARCH` | `10`    | Max number of messages to search individually.       |
| `MAX_STREAMS_INDIVIDUAL_SEARCH`  | `OFSC_MAX_STREAMS_INDIVIDUAL_SEARCH`  | `10`    | Max number of streams to search individually.        |

#### API Retry Counts

| Key                        | Environment variable            | Default | Description                                                 |
| -------------------------- | ------------------------------- | ------- | ----------------------------------------------------------- |
| `API_INDVIDIUAL_NUM_TRIES` | `OFSC_API_INDIVIDUAL_NUM_TRIES` | `3`     | Number of tries for individual API calls.                   |
| `API_PAID_NUM_TRIES`       | `OFSC_API_PAID_NUM_TRIES`       | `8`     | Number of tries for paid content API calls.                 |
| `API_CHECK_NUM_TRIES`      | `OFSC_API_CHECK_NUM_TRIES`      | `10`    | Number of tries for API checks.                             |
| `API_NUM_TRIES`            | `OFSC_API_NUM_TRIES`            | `10`    | General number of tries for API calls (for messages, etc.). |
| `API_LIKE_NUM_TRIES`       | `OFSC_API_LIKE_NUM_TRIES`       | `5`     | Number of tries for API like operations.                    |

#### API Page Limits

| Key                            | Environment variable                | Default | Description                                               |
| ------------------------------ | ----------------------------------- | ------- | --------------------------------------------------------- |
| `API_MAX_AREAS`                | `OFSC_API_MAX_AREAS`                | `2`     | Max number of API areas.                                  |
| `REASONABLE_MAX_PAGE`          | `OFSC_REASONABLE_MAX_PAGE`          | `50`    | Reasonable max number of pages (e.g., 50 posts per page). |
| `MIN_PAGE_POST_COUNT`          | `OFSC_MIN_PAGE_POST_COUNT`          | `50`    | Minimum number of posts expected per page.                |
| `REASONABLE_MAX_PAGE_MESSAGES` | `OFSC_REASONABLE_MAX_PAGE_MESSAGES` | `80`    | Reasonable max number of pages for messages.              |

#### API Request Parameters

| Key                      | Environment variable          | Default                          | Description                                                |
| ------------------------ | ----------------------------- | -------------------------------- | ---------------------------------------------------------- |
| `API_TIMEOUT_PER_TASK`   | `OFSC_API_TIMEOUT_PER_TASK`   | `500`                            | Timeout per API task in milliseconds.                      |
| `API_REQUEST_THREADONLY` | `OFSC_API_REQUEST_THREADONLY` | `['Windows', 'Linux', 'Darwin']` | List of OS names where API requests should be thread-only. |
| `API_REQ_SEM_MAX`        | `OFSC_API_REQ_SEM_MAX`        | `12`                             | Maximum semaphore for API requests.                        |
| `API_REQ_CHECK_MAX`      | `OFSC_API_REQ_CHECK_MAX`      | `12`                             | Maximum checks for API requests.                           |

### DRM manifests (MPD)

Defined in `ofscraper/utils/of_env/values/req/mpd.py`.

| Key                        | Environment variable            | Default | Description                                                                      |
| -------------------------- | ------------------------------- | ------- | -------------------------------------------------------------------------------- |
| `MPD_CONNECT_TIMEOUT`      | `OFSC_MPD_CONNECT_TIMEOUT`      | `45`    | Connection timeout for MPD operations (seconds).                                 |
| `MPD_TOTAL_TIMEOUT`        | `OFSC_MPD_TOTAL_TIMEOUT`        | `None`  | Total timeout for MPD operations (seconds). Defaults to None.                    |
| `MPD_READ_TIMEOUT`         | `OFSC_MPD_READ_TIMEOUT`         | `200`   | Read timeout for MPD operations (seconds).                                       |
| `MPD_POOL_CONNECT_TIMEOUT` | `OFSC_MPD_POOL_CONNECT_TIMEOUT` | `45`    | Pool connection timeout for MPD operations (seconds).                            |
| `MPD_MAX_SEMS`             | `OFSC_MPD_MAX_SEMS`             | `10`    | Maximum semaphores for MPD operations.                                           |
| `MPD_NUM_TRIES`            | `OFSC_MPD_NUM_TRIES`            | `5`     | Number of retries for MPD operations.                                            |
| `MPD_SESSION_SLEEP_INIT`   | `OFSC_MPD_SESSION_SLEEP_INIT`   | `45`    | Defined but not read anywhere. MPD requests use the standard `SESSION_*` values. |

### CDM

Defined in `ofscraper/utils/of_env/values/req/cdm.py`.

| Key                   | Environment variable       | Default | Description                                                  |
| --------------------- | -------------------------- | ------- | ------------------------------------------------------------ |
| `CDM_TEST_TIMEOUT`    | `OFSC_CDM_TEST_TIMEOUT`    | `30`    | Timeout for CDM tests (seconds).                             |
| `CDM_TIMEOUT`         | `OFSC_CDM_TIMEOUT`         | `40`    | General timeout for CDM operations (seconds).                |
| `CDM_MIN_WAIT`        | `OFSC_CDM_MIN_WAIT`        | `1.5`   | Minimum wait time before retrying a CDM operation (seconds). |
| `CDM_MAX_WAIT`        | `OFSC_CDM_MAX_WAIT`        | `6.0`   | Maximum wait time before retrying a CDM operation (seconds). |
| `CDM_NUM_TRIES`       | `OFSC_CDM_NUM_TRIES`       | `8`     | Number of retries for general CDM operations.                |
| `CDM_NUM_TRIES_CHECK` | `OFSC_CDM_NUM_TRIES_CHECK` | `1`     | Number of retries for CDM checks.                            |
| `CDM_TEST_NUM_TRIES`  | `OFSC_CDM_TEST_NUM_TRIES`  | `2`     | Number of retries for CDM tests.                             |

### Authentication

Defined in `ofscraper/utils/of_env/values/req/auth.py`.

| Key                    | Environment variable        | Default  | Description                                             |
| ---------------------- | --------------------------- | -------- | ------------------------------------------------------- |
| `AUTH_WARNING_TIMEOUT` | `OFSC_AUTH_WARNING_TIMEOUT` | `1800.0` | Time to wait between printing auth warnings (seconds).) |

### Anonymous requests

Defined in `ofscraper/utils/of_env/values/req/anon.py`.

| Key              | Environment variable  | Default                                                                                                                   | Description                               |
| ---------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
| `ANON_USERAGENT` | `OFSC_ANON_USERAGENT` | `'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36'` | User-Agent string for anonymous requests. |

### Discord

Defined in `ofscraper/utils/of_env/values/req/discord.py`.

| Key                     | Environment variable         | Default | Description                                                       |
| ----------------------- | ---------------------------- | ------- | ----------------------------------------------------------------- |
| `DISCORD_TOTAL_TIMEOUT` | `OFSC_DISCORD_TOTAL_TIMEOUT` | `None`  | Total timeout for Discord operations (seconds). Defaults to None. |
| `DISCORD_MIN_WAIT`      | `OFSC_DISCORD_MIN_WAIT`      | `1.0`   | Minimum wait time for Discord operations (seconds).               |
| `DISCORD_MAX_WAIT`      | `OFSC_DISCORD_MAX_WAIT`      | `5.0`   | Maximum wait time for Discord operations (seconds).               |
| `DISCORD_NUM_TRIES`     | `OFSC_DISCORD_NUM_TRIES`     | `3`     | Number of retries for Discord operations.                         |

### Dynamic rule downloads

Defined in `ofscraper/utils/of_env/values/req/git.py`.

| Key             | Environment variable | Default | Description                                                  |
| --------------- | -------------------- | ------- | ------------------------------------------------------------ |
| `GIT_MIN_WAIT`  | `OFSC_GIT_MIN_WAIT`  | `1.0`   | Minimum wait time before retrying a Git operation (seconds). |
| `GIT_MAX_WAIT`  | `OFSC_GIT_MAX_WAIT`  | `5.0`   | Maximum wait time before retrying a Git operation (seconds). |
| `GIT_NUM_TRIES` | `OFSC_GIT_NUM_TRIES` | `3`     | Number of retries for Git operations.                        |

### Output and file handling

Defined in `ofscraper/utils/of_env/values/general.py`.

#### Output and Display

| Key                         | Environment variable             | Default                                                    | Description                                                                 |
| --------------------------- | -------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------- |
| `SUPRESS_OUTPUTS`           | `OFSC_SUPRESS_OUTPUTS`           | `['CRITICAL', 'ERROR', 'LOW', 'OFF', 'PROMPT', 'WARNING']` | A set of log levels or output types to suppress.                            |
| `refreshScreen`             | `OFSC_REFRESH_SCREEN`            | `50`                                                       | Frequency to refresh the screen (e.g., for progress updates).               |
| `SHOW_AVATAR`               | `OFSC_SHOW_AVATAR`               | `True`                                                     | Whether to show avatar in certain displays.                                 |
| `SHOW_RESULTS_LOG`          | `OFSC_SHOW_RESULTS_LOG`          | `True`                                                     | Whether to show results in the log.                                         |
| `MODEL_PRICE_PLACEHOLDER`   | `OFSC_MODEL_PRICE_PLACEHOLDER`   | `'Unknown_Price'`                                          | Placeholder text for unknown model prices.                                  |
| `DELETED_MODEL_PLACEHOLDER` | `OFSC_DELETED_MODEL_PLACEHOLDER` | `'modeldeleted'`                                           | Placeholder text for deleted models.                                        |
| `APP_TOKEN`                 | `OFSC_APP_TOKEN`                 | `'33d57ade8c02dbc5a333db99ff9ae26a'`                       | A generic application token (example, usually sensitive and not hardcoded). |
| `CONTINUE_BOOL`             | `OFSC_CONTINUE_BOOL`             | `True`                                                     | General boolean flag for continuing operations.                             |
| `FILE_COUNT_PLACEHOLDER`    | `OFSC_FILE_COUNT_PLACEHOLDER`    | `True`                                                     | Flag related to file count display or logic.                                |
| `FILTER_SELF_MEDIA`         | `OFSC_FILTER_SELF_MEDIA`         | `True`                                                     | Whether to filter media belonging to self-profile.                          |
| `ALLOW_DUPE_MEDIA`          | `OFSC_ALLOW_DUPE_MEDIA`          | `False`                                                    | Whether to allow duplicate media downloads.                                 |

#### Data Processing and File Handling

| Key                        | Environment variable            | Default   | Description                                    |
| -------------------------- | ------------------------------- | --------- | ---------------------------------------------- |
| `NUMBER_REGEX`             | `OFSC_NUMBER_REGEX`             | `'[0-9]'` | Regex pattern for numbers.                     |
| `USERNAME_REGEX`           | `OFSC_USERNAME_REGEX`           | `'[^/]'`  | Regex pattern for usernames (excluding slash). |
| `BUF_SIZE`                 | `OFSC_BUF_SIZE`                 | `1048576` | Buffer size for file operations (bytes).       |
| `LARGE_TRACE_CHUNK_SIZE`   | `OFSC_LARGE_TRACE_CHUNK_SIZE`   | `100`     | Chunk size for large tracing operations.       |
| `SKIP_UNAVAILABLE_DEFAULT` | `OFSC_SKIP_UNAVAILABLE_DEFAULT` | `True`    | Default to True (Yes)                          |
| `EXPIRED_GRACE_DEFAULT`    | `OFSC_EXPIRED_GRACE_DEFAULT`    | `1`       | Default to 1 day                               |

### General defaults

Defined in `ofscraper/utils/of_env/values/main.py`.

#### Application

| Key                             | Environment variable                                                   | Default                             | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| ------------------------------- | ---------------------------------------------------------------------- | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `SANITIZE_DB_DEFAULT`           | `OFSC_SANITIZE_DB_DEFAULT`                                             | `False`                             | Whether to sanitize the database by default.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `SUPPRESS_LOG_LEVEL`            | `OFSC_SUPPRESS_LOG_LEVEL`                                              | `21`                                | Log level to suppress output (integer representing level).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `RESUME_DEFAULT`                | `OFSC_RESUME_DEFAULT`                                                  | `True`                              | Whether to resume downloads by default.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `CACHEDEFAULT`                  | `OFSC_CACHE_DEFAULT`                                                   | `'sqlite'`                          | Default caching mechanism (e.g., "sqlite").                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `KEY_DEFAULT`                   | `OFSC_KEY_DEFAULT`                                                     | `'cdrm'`                            | Default key mode for content decryption.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `KEY_OPTIONS`                   | none (bare key only)                                                   | `['cdrm', 'manual']`                | The allowed `cdm_options.key-mode-default` values, taken from `ofscraper/utils/const.py`. Not read from the environment.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `FILE_SIZE_MAX_DEFAULT`         | `OFSC_FILE_SIZE_MAX_DEFAULT`                                           | `0`                                 | Default maximum file size allowed (bytes, 0 for no limit).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `FILE_SIZE_MIN_DEFAULT`         | `OFSC_FILE_SIZE_MIN_DEFAULT`                                           | `0`                                 | Default minimum file size allowed (bytes, 0 for no limit).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `MIN_LENGTH_DEFAULT`            | `OFSC_MIN_LENGTH_DEFAULT`                                              | `0`                                 | Default minimum content length (e.g., for video duration).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `MAX_LENGTH_DEFAULT`            | `OFSC_MAX_LENGTH_DEFAULT`                                              | `0`                                 | Default maximum content length.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `TEXTLENGTH_DEFAULT`            | `OFSC_TEXTLENGTH_DEFAULT`                                              | `0`                                 | Default text length setting.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `SPACE_REPLACER_DEFAULT`        | `OFSC_SPACE_REPLACER_DEFAULT`                                          | `' '`                               | Character to replace spaces in paths/names.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `PROGRESS_DEFAULT`              | `OFSC_PROGRESS_DEFAULT`                                                | `False`                             | Whether to show progress bars by default.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `SAVE_PATH_DEFAULT`             | `OFSC_SAVE_PATH_DEFAULT`                                               | `'{home_directory}/Data/ofscraper'` | Default base path for saving downloaded content.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `DATE_DEFAULT`                  | `OFSC_DATE_DEFAULT`                                                    | `'MM-DD-YYYY'`                      | Default date format string.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `PROFILE_DEFAULT`               | `OFSC_PROFILE_DEFAULT`                                                 | `'main_profile'`                    | Default profile name.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `PREMIUM_DEFAULT`               | `OFSC_PREMIUM_DEFAULT`                                                 | `'Premium'`                         | Default category for premium content.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `FFMPEG_DEFAULT`                | `OFSC_FFMPEG_DEFAULT`                                                  | `''`                                | Default path for FFmpeg executable.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `DISCORD_DEFAULT`               | `OFSC_DISCORD_DEFAULT`                                                 | `''`                                | Default Discord webhook URL or related setting.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `THREADS_DEFAULT`               | `OFSC_THREADS_DEFAULT`                                                 | `2`                                 | Default number of threads for operations.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `DOWNLOAD_SEM_DEFAULT`          | `OFSC_DOWNLOAD_SEM_DEFAULT`                                            | `6`                                 | Default semaphore limit for downloads.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `FANSLY_STREAM_SEGMENTS`        | `OFSC_FANSLY_STREAM_SEGMENTS`                                          | `8`                                 | How many files of one Fansly stream (HLS segments, AES-128 keys, DASH segments) are fetched at once before ffmpeg joins them locally; fetched files are kept so a stopped download resumes (`fansly_stream_download.py`). 0 leaves the whole stream to ffmpeg, one segment after another, with no resume. Streams the local path can't handle still go to ffmpeg: HLS that is live (no `#EXT-X-ENDLIST`) or uses encryption other than AES-128, and DASH that is protected, live, has more than one period or uses unsupported addressing. The number of files downloaded at once is still set by `download_sems`. |
| `TEXT_TYPE_DEFAULT`             | `OFSC_TEXT_TYPE_DEFAULT`                                               | `'letter'`                          | Default text type processing.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `TRUNCATION_DEFAULT`            | `OFSC_TRUNCATION_DEFAULT`                                              | `True`                              | Whether truncation is enabled by default.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `FILENAME_COLLISION_DEFAULT`    | `OFSC_FILENAME_COLLISION_DEFAULT`                                      | `'media_id'`                        | What to do when a download's path is already                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `MAX_COUNT_DEFAULT`             | `OFSC_MAX_COUNT_DEFAULT`                                               | `0`                                 | Default maximum count for certain operations.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `TEMP_FOLDER_DEFAULT`           | `OFSC_TEMP_FOLDER_DEFAULT`                                             | `None`                              | Default temporary folder path. Defaults to None.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `ROTATE_DEFAULT`                | `OFSC_ROTATE_DEFAULT`                                                  | `True`                              | Whether to rotate content by default.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `SYSTEM_FREEMIN_DEFAULT`        | `OFSC_SYSTEM_FREEMIN_DEFAULT`                                          | `0`                                 | Minimum free system space required (bytes/MB?).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `AVATAR_DEFAULT`                | `OFSC_AVATAR_DEFAULT`                                                  | `True`                              | Whether avatars are included by default.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `INFINITE_LOOP_DEFAULT`         | `OFSC_INFINITE_LOOP_DEFAULT`                                           | `False`                             | Whether infinite loop mode is enabled by default.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `INCREMENTAL_DOWNLOADS_DEFAULT` | `OFSC_INCREMENTAL_DOWNLOADS_DEFAULT`, `OFSC_ENABLE_AUTO_AFTER_DEFAULT` | `True`                              | Whether auto-after processing is enabled by default.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `DEFAULT_USER_LIST`             | `OFSC_DEFAULT_USER_LIST`                                               | `'main'`                            | Default user list to use.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `DEFAULT_BLACK_LIST`            | `OFSC_DEFAULT_BLACK_LIST`                                              | `''`                                | Default blacklist name.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `HASHED_DEFAULT`                | `OFSC_HASHED_DEFAULT`                                                  | `None`                              | Default hashing setting. Defaults to None.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `BLOCKED_ADS_DEFAULT`           | `OFSC_BLOCKED_ADS_DEFAULT`                                             | `False`                             | Whether ads are blocked by default.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `DEFAULT_LOG_LEVEL`             | `OFSC_DEFAULT_LOG_LEVEL`                                               | `'DEBUG'`                           | Default logging level.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `INCLUDE_LABELS_ALL`            | `OFSC_INCLUDE_LABELS_ALL`                                              | `False`                             | Whether to include all labels by default.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `LABELS_CONCURRENCY`            | `OFSC_LABELS_CONCURRENCY`                                              | `2`                                 | How many labels are paged at the same time.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `DISCORD_THREAD_OVERRIDE`       | `OFSC_DISCORD_THREAD_OVERRIDE`                                         | `False`                             | Whether to override Discord threading.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `DISCORD_ASYNC`                 | `OFSC_DISCORD_ASYNC`                                                   | `False`                             | Whether Discord integration is asynchronous.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `USE_WIV_CACHE_KEY`             | `OFSC_USE_WIV_CACHE_KEY`                                               | `True`                              | Whether to use Widevine cache key.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `AFTER_ACTION_SCRIPT_DEFAULT`   | `OFSC_AFTER_ACTION_SCRIPT_DEFAULT`                                     | `None`                              | Default path for a script to run after download. Defaults to None.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `POST_SCRIPT_DEFAULT`           | `OFSC_POST_SCRIPT_DEFAULT`                                             | `None`                              | Default path for a general post-processing script. Defaults to None.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `SKIP_DOWNLOAD_SCRIPT_DEFAULT`  | `OFSC_SKIP_DOWNLOAD_SCRIPT_DEFAULT`                                    | `None`                              | Default path for a general download-skipping script. Defaults to None.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `AFTER_DOWNLOAD_SCRIPT_DEFAULT` | `OFSC_AFTER_DOWNLOAD_SCRIPT_DEFAULT`                                   | `None`                              | Default path for a script that runs after download. Defaults to None.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `ENV_FILES_DEFAULT`             | `OFSC_ENV_FILES_DEFAULT`                                               | `''`                                | Default path for a file(s) used to import env variables. Defaults to None.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `NAMING_SCRIPT_DEFAULT`         | `OFSC_NAMING_SCRIPT_DEFAULT`                                           | `None`                              | Default path for a general naming-processing script. Defaults to None.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `DOWNLOAD_LIMIT_DEFAULT`        | `OFSC_DOWNLOAD_LIMIT_DEFAULT`                                          | `0`                                 | Default limit for downloads (integer, 0 for no limit).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |

#### Format strings

| Key                   | Environment variable       | Default                                          | Description                             |
| --------------------- | -------------------------- | ------------------------------------------------ | --------------------------------------- |
| `DIR_FORMAT_DEFAULT`  | `OFSC_DIR_FORMAT_DEFAULT`  | `'{model_username}/{responsetype}/{mediatype}/'` | Default directory naming format string. |
| `FILE_FORMAT_DEFAULT` | `OFSC_FILE_FORMAT_DEFAULT` | `'{filename}.{ext}'`                             | Default file naming format string.      |
| `METADATA_DEFAULT`    | `OFSC_METADATA_DEFAULT`    | `'{configpath}/{profile}/.data/{model_id}'`      | Default metadata file path format.      |

#### Fixed values

| Key                      | Environment variable          | Default                              | Description                                                                              |
| ------------------------ | ----------------------------- | ------------------------------------ | ---------------------------------------------------------------------------------------- |
| `RESPONSE_TYPE_DEFAULT`  | `OFSC_RESPONSE_TYPE_DEFAULT`  | a dict of 9 entries (see the source) | Mapping of response types to display names.                                              |
| `EMPTY_MEDIA_DEFAULT`    | `OFSC_EMPTY_MEDIA_DEFAULT`    | `{}`                                 | Default empty media dictionary.                                                          |
| `FILTER_DEFAULT`         | `OFSC_FILTER_DEFAULT`         | `['Images', 'Audios', 'Videos']`     | Default filter list.                                                                     |
| `SSL_VALIDATION_DEFAULT` | `OFSC_SSL_VALIDATION_DEFAULT` | `'custom'`                           | The default for `advanced_options.ssl_verify`, used when the config has no usable value. |

### Dates

Defined in `ofscraper/utils/of_env/values/date.py`.

| Key                  | Environment variable      | Default                 | Description                                   |
| -------------------- | ------------------------- | ----------------------- | --------------------------------------------- |
| `PROMPT_DATE_FORMAT` | `OFSC_PROMPT_DATE_FORMAT` | `'YYYY-MM-DD'`          | Date format used for user prompts or display. |
| `API_DATE_FORMAT`    | `OFSC_API_DATE_FORMAT`    | `'YYYY-MM-DD HH:mm:ss'` | Date format used for API interactions.        |

### Expiry and timeouts

Defined in `ofscraper/utils/of_env/values/time.py`.

| Key                         | Environment variable             | Default   | Description                                                              |
| --------------------------- | -------------------------------- | --------- | ------------------------------------------------------------------------ |
| `HOURLY_EXPIRY`             | `OFSC_HOURLY_EXPIRY`             | `3600`    | Expiry time in seconds for hourly items.                                 |
| `THIRTY_EXPIRY`             | `OFSC_THIRTY_EXPIRY`             | `1800`    | Expiry time in seconds for thirty-minute items.                          |
| `SIZE_TIMEOUT`              | `OFSC_SIZE_TIMEOUT`              | `1209600` | Timeout for size-related data (seconds).                                 |
| `DATABASE_TIMEOUT`          | `OFSC_DATABASE_TIMEOUT`          | `300`     | Timeout for database operations (seconds).                               |
| `KEY_EXPIRY`                | `OFSC_KEY_EXPIRY`                | `None`    | Expiry time for decryption keys (seconds). Defaults to None (no expiry). |
| `RESPONSE_EXPIRY`           | `OFSC_RESPONSE_EXPIRY`           | `5000000` | Expiry time for API responses (seconds).                                 |
| `DBINTERVAL`                | `OFSC_DBINTERVAL`                | `86400`   | Interval for database-related operations (seconds).                      |
| `DAY_SECONDS`               | `OFSC_DAY_SECONDS`               | `86400`   | Number of seconds in a day.                                              |
| `THREE_DAY_SECONDS`         | `OFSC_THREE_DAY_SECONDS`         | `259200`  | Number of seconds in three days.                                         |
| `PROFILE_DATA_EXPIRY`       | `OFSC_PROFILE_DATA_EXPIRY`       | `86400`   | Expiry time for profile data (seconds).                                  |
| `PROFILE_DATA_EXPIRY_ASYNC` | `OFSC_PROFILE_DATA_EXPIRY_ASYNC` | `86400`   | Expiry time for async profile data (seconds).                            |

### Dynamic rules

Defined in `ofscraper/utils/of_env/values/dynamic.py`.

| Key                    | Environment variable        | Default                             | Description                                                       |
| ---------------------- | --------------------------- | ----------------------------------- | ----------------------------------------------------------------- |
| `DYNAMIC_RULE_MANUAL`  | `OFSC_DYNAMIC_RULE_MANUAL`  | `None`                              | The specific manual dynamic rule to use. Defaults to None.        |
| `DYNAMIC_OPTIONS`      | `OFSC_DYNAMIC_OPTIONS`      | a list of 6 items (see the source)  | List of available dynamic rule options.                           |
| `DYNAMIC_OPTIONS_ALL`  | `OFSC_DYNAMIC_OPTIONS_ALL`  | a list of 13 items (see the source) | Comprehensive list of all dynamic rule options including aliases. |
| `DYNAMIC_RULE_DEFAULT` | `OFSC_DYNAMIC_RULE_DEFAULT` | `'digital'`                         | The default dynamic rule when none is specified.                  |

### List names

Defined in `ofscraper/utils/of_env/values/list.py`.

| Key                           | Environment variable          | Default               | Description                             |
| ----------------------------- | ----------------------------- | --------------------- | --------------------------------------- |
| `OFSCRAPER_RESERVED_LIST`     | `OFSCRAPER_RESERVED_LIST`     | `'ofscraper.main'`    | Reserved list identifier for Ofscraper. |
| `OFSCRAPER_RESERVED_LIST_ALT` | `OFSCRAPER_RESERVED_LIST_ALT` | `'main'`              | Alternative reserved list identifier.   |
| `OFSCRAPER_ACTIVE_LIST`       | `OFSCRAPER_ACTIVE_LIST`       | `'ofscraper.active'`  | Active list identifier for Ofscraper.   |
| `OFSCRAPER_ACTIVE_LIST_ALT`   | `OFSCRAPER_ACTIVE_LIST_ALT`   | `'active'`            | Alternative active list identifier.     |
| `OFSCRAPER_EXPIRED_LIST`      | `OFSCRAPER_EXPIRED_LIST`      | `'ofscraper.expired'` | Expired list identifier for Ofscraper.  |
| `OFSCRAPER_EXPIRED_LIST_ALT`  | `OFSCRAPER_EXPIRED_LIST_ALT`  | `'expired'`           | Alternative expired list identifier.    |

### Progress display

Defined in `ofscraper/utils/of_env/values/live.py`.

| Key                            | Environment variable                | Default | Description                                                                                                                                                                                                                                                                                                                                  |
| ------------------------------ | ----------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SUPRESS_API_DISPLAY`          | `OFSC_SUPRESS_API_DISPLAY`          | `None`  | Hides the API progress display when on. The value is read as on/off: `true` or `1` (any case) is on, and anything else is off, which shows the display. This holds for the bare name too, which has no default to take a type from. It applies only while that screen is up. Unset, the display follows `--output` and `--no-rich`.          |
| `SUPRESS_DOWNLOAD_DISPLAY`     | `OFSC_SUPRESS_DOWNLOAD_DISPLAY`     | `None`  | Hides the download progress display when on. The value is read as on/off: `true` or `1` (any case) is on, and anything else is off, which shows the display. This holds for the bare name too, which has no default to take a type from. It applies only while that screen is up. Unset, the display follows `--output` and `--no-rich`.     |
| `SUPRESS_SUBSCRIPTION_DISPLAY` | `OFSC_SUPRESS_SUBSCRIPTION_DISPLAY` | `None`  | Hides the subscription progress display when on. The value is read as on/off: `true` or `1` (any case) is on, and anything else is off, which shows the display. This holds for the bare name too, which has no default to take a type from. It applies only while that screen is up. Unset, the display follows `--output` and `--no-rich`. |
| `SUPRESS_LIKE_DISPLAY`         | `OFSC_SUPRESS_LIKE_DISPLAY`         | `None`  | Hides the like progress display when on. The value is read as on/off: `true` or `1` (any case) is on, and anything else is off, which shows the display. This holds for the bare name too, which has no default to take a type from. It applies only while that screen is up. Unset, the display follows `--output` and `--no-rich`.         |
| `DOWNLOAD_LIVE_DISPLAY`        | `OFSC_DOWNLOAD_LIVE_DISPLAY`        | `True`  | Whether to enable live download progress display.                                                                                                                                                                                                                                                                                            |

### Logging

Defined in `ofscraper/utils/of_env/values/logger.py`.

| Key                     | Environment variable         | Default       | Description                                                 |
| ----------------------- | ---------------------------- | ------------- | ----------------------------------------------------------- |
| `LOGGER_TIMEOUT`        | `OFSC_LOGGER_TIMEOUT`        | `0.4`         | Timeout for logger operations (seconds).                    |
| `LOG_DISPLAY_TIMEOUT`   | `OFSC_LOG_DISPLAY_TIMEOUT`   | `0.8`         | Timeout for log display updates (seconds).                  |
| `FORCED_THREAD_TIMEOUT` | `OFSC_FORCED_THREAD_TIMEOUT` | `5`           | Timeout for forced thread termination in logging (seconds). |
| `logname`               | `OFSC_LOGNAME`               | `'ofscraper'` | Base name for the logger.                                   |

### Subprocess log levels and free-space check

Defined in `ofscraper/utils/of_env/values/system.py`.

| Key                                             | Environment variable                                      | Default | Description                                                                                                                                                                 |
| ----------------------------------------------- | --------------------------------------------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `AFTER_DOWNLOAD_ACTION_SCRIPT_SUBPROCESS_LEVEL` | `OFSC_AFTER_DOWNLOAD_ACTION_SCRIPT_SUBPROCESS_LEVEL`      | `10`    | Log level for the output of this subprocess (the user script, ffmpeg or ffprobe named in the key). 0 turns that output off.                                                 |
| `AFTER_LIKE_ACTION_SCRIPT_SUBPROCESS_LEVEL`     | `OFSC_AFTER_LIKE_ACTION_SCRIPT_SUBPROCESS_LEVEL`          | `10`    | Log level for the output of this subprocess (the user script, ffmpeg or ffprobe named in the key). 0 turns that output off.                                                 |
| `NAMING_SCRIPT_SUBPROCESS_LEVEL`                | `OFSC_NAMING_SCRIPT_SUBPROCESS_LEVEL`                     | `10`    | Log level for the output of this subprocess (the user script, ffmpeg or ffprobe named in the key). 0 turns that output off.                                                 |
| `SKIP_DOWNLOAD_SCRIPT_SUBPROCESS_LEVEL`         | `OFSC_SKIP_DOWNLOAD_SCRIPT_SUBPROCESS_LEVEL`              | `10`    | Log level for the output of this subprocess (the user script, ffmpeg or ffprobe named in the key). 0 turns that output off.                                                 |
| `AFTER_DOWNLOAD_SCRIPT_SUBPROCESS_LEVEL`        | `OFSC_AFTER_DOWNLOAD_SCRIPT_SUBPROCESS_LEVEL`             | `10`    | Log level for the output of this subprocess (the user script, ffmpeg or ffprobe named in the key). 0 turns that output off.                                                 |
| `FINAL_SCRIPT_SUBPROCESS_LEVEL`                 | `OFSC_FINAL_SCRIPT_SUBPROCESS_LEVEL`                      | `10`    | Log level for the output of this subprocess (the user script, ffmpeg or ffprobe named in the key). 0 turns that output off.                                                 |
| `LOG_SUBPROCESS_LEVEL`                          | `OFSC_LOG_SUBPROCESS_LEVEL`, `OFSC_LOG_SUBPROCESS_LEVELL` | `10`    | Log level for subprocess output that has no more specific setting. `OFSC_LOG_SUBPROCESS_LEVELL` is the old misspelled name, and it is still read.                           |
| `FFMPEG_SUBPROCESS_LEVEL`                       | `OFSC_FFMPEG_SUBPROCESS_LEVEL`                            | `10`    | Log level for the output of this subprocess (the user script, ffmpeg or ffprobe named in the key). 0 turns that output off.                                                 |
| `FFPROBE_SUBPROCESS_LEVEL`                      | `OFSC_FFPROBE_SUBPROCESS_LEVEL`                           | `10`    | Log level for the output of this subprocess (the user script, ffmpeg or ffprobe named in the key). 0 turns that output off.                                                 |
| `DISK_SPACE_CHECK_PATH`                         | `OFSC_DISK_SPACE_CHECK_PATH`                              | `'/'`   | The path whose disk free space is compared with `download_options.system_free_min` (`ofscraper/utils/system/free.py`). It is not the save location unless you set it to be. |

### Menu choices

Defined in `ofscraper/utils/of_env/values/prompts.py`.

#### Main Prompt Choices

| Key                 | Environment variable | Default                              | Description                                                               |
| ------------------- | -------------------- | ------------------------------------ | ------------------------------------------------------------------------- |
| `mainPromptChoices` | none (bare key only) | a dict of 6 entries (see the source) | Menu entries of the interactive main menu. Not read from the environment. |

#### Config Prompt Choices

| Key                   | Environment variable | Default                               | Description                                                                   |
| --------------------- | -------------------- | ------------------------------------- | ----------------------------------------------------------------------------- |
| `configPromptChoices` | none (bare key only) | a dict of 12 entries (see the source) | Menu entries of the interactive config editor. Not read from the environment. |

#### Action Prompt Choices

| Key                   | Environment variable | Default                              | Description                                                                    |
| --------------------- | -------------------- | ------------------------------------ | ------------------------------------------------------------------------------ |
| `actionPromptChoices` | none (bare key only) | a dict of 8 entries (see the source) | Menu entries for picking actions interactively. Not read from the environment. |

#### Check Table Prompt Choices: the check command each table runs

| Key                       | Environment variable | Default                              | Description                                                                                      |
| ------------------------- | -------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------------ |
| `checkTablePromptChoices` | none (bare key only) | a dict of 4 entries (see the source) | Menu entries for picking which check table the Action Menu opens. Not read from the environment. |

#### Username or List Choices

| Key                     | Environment variable | Default                              | Description                                                                     |
| ----------------------- | -------------------- | ------------------------------------ | ------------------------------------------------------------------------------- |
| `usernameOrListChoices` | none (bare key only) | a dict of 3 entries (see the source) | Menu entries for picking creators interactively. Not read from the environment. |

#### Profiles Prompt Choices

| Key                     | Environment variable | Default                              | Description                                                                  |
| ----------------------- | -------------------- | ------------------------------------ | ---------------------------------------------------------------------------- |
| `profilesPromptChoices` | none (bare key only) | a dict of 8 entries (see the source) | Menu entries of the interactive profile menu. Not read from the environment. |

#### Model Prompt Choices

| Key           | Environment variable | Default                               | Description                                                                                           |
| ------------- | -------------------- | ------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| `modelPrompt` | none (bare key only) | a dict of 10 entries (see the source) | Menu entries for filtering and sorting the creator list interactively. Not read from the environment. |

### File paths

Defined in `ofscraper/utils/of_env/values/path/files.py`.

| Key            | Environment variable          | Default               | Description                                  |
| -------------- | ----------------------------- | --------------------- | -------------------------------------------- |
| `preferences`  | `OFSC_PREFERENCES_FILE`       | `'pref_config.py'`    | Name of the preferences configuration file   |
| `configPath`   | `OFSC_CONFIG_DIR`             | `'.config/ofscraper'` | Base directory for configuration files       |
| `configFile`   | `OFSC_CONFIG_FILE_NAME`       | `'config.json'`       | Name of the main configuration JSON file     |
| `authFile`     | `OFSC_AUTH_FILE_NAME`         | `'auth.json'`         | Name of the authentication JSON file         |
| `databaseFile` | `OFSC_DATABASE_FILE_NAME`     | `'models.db'`         | Name of the SQLite database file             |
| `mainProfile`  | `OFSC_MAIN_PROFILE_NAME`      | `'main_profile'`      | Name of the main profile directory/file      |
| `requestAuth`  | `OFSC_REQUEST_AUTH_FILE_NAME` | `'request_auth.json'` | Name of the request authentication JSON file |

### Filename generation and temp files

Defined in `ofscraper/utils/of_env/values/path/general.py`.

| Key                      | Environment variable          | Default | Description                              |
| ------------------------ | ----------------------------- | ------- | ---------------------------------------- |
| `SKIP_FILENAME_RETRIVAL` | `OFSC_SKIP_FILENAME_RETRIVAL` | `False` | Flag to skip basefilename retrieval      |
| `SKIP_MEDIADIR_RETRIVAL` | `OFSC_SKIP_MEDIADIR_RETRIVAL` | `False` | Flag to skip media directory retrieval d |

#### Temporary files

| Key                      | Environment variable          | Default | Description                                                      |
| ------------------------ | ----------------------------- | ------- | ---------------------------------------------------------------- |
| `BATCH_TEMPFILE_CLEANUP` | `OFSC_BATCH_TEMPFILE_CLEANUP` | `False` | Flag to enable or disable cleanup of temporary files in batches. |

### Name and path lengths

Defined in `ofscraper/utils/of_env/values/path/length.py`.

| Key                         | Environment variable             | Default | Description                                     |
| --------------------------- | -------------------------------- | ------- | ----------------------------------------------- |
| `MAX_TEXT_LENGTH`           | `OFSC_MAX_TEXT_LENGTH`           | `70`    | Maximum allowed length for certain text fields. |
| `MAX_TEXT_WORKER`           | `OFSC_MAX_TEXT_WORKER`           | `30`    | Maximum number of workers for text processing.  |
| `WINDOWS_MAX_PATH_BYTES`    | `OFSC_WINDOWS_MAX_PATH_BYTES`    | `530`   | Maximum path length in bytes for Windows.       |
| `MAC_MAX_PATH`              | `OFSC_MAC_MAX_PATH`              | `255`   | Maximum path length for macOS (characters).     |
| `LINUX_MAX_FILE_NAME_BYTES` | `OFSC_LINUX_MAX_FILE_NAME_BYTES` | `254`   | Maximum file name length in bytes for Linux.    |

### Character sizes

Defined in `ofscraper/utils/of_env/values/path/bytes.py`.

| Key                         | Environment variable        | Default | Description                                                       |
| --------------------------- | --------------------------- | ------- | ----------------------------------------------------------------- |
| `NORMAL_CHAR_SIZE_WINDOWS`  | `NORMAL_CHAR_SIZE_WINDOWS`  | `2`     | Byte size for normal characters on Windows                        |
| `SPECIAL_CHAR_SIZE_WINDOWS` | `SPECIAL_CHAR_SIZE_WINDOWS` | `4`     | Byte size for special characters on Windows                       |
| `SPECIAL_CHAR_SIZE_UNIX`    | `SPECIAL_CHAR_SIZE_UNIX`    | `4`     | Byte size for special characters on Unix-like systems             |
| `NORMAL_CHAR_SIZE_UNIX`     | `NORMAL_CHAR_SIZE_UNIX`     | `2`     | Byte size for normal characters on Unix-like systems              |
| `UTF`                       | `UTF`                       | `None`  | UTF encoding setting (e.g., "utf-8", "utf-16"). Defaults to None. |

### OnlyFans API addresses

Defined in `ofscraper/utils/of_env/values/url/url.py`.

| Key                       | Environment variable                  | Default                                                                                                                                                        | Description                                          |
| ------------------------- | ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- |
| `initEP`                  | `OFSC_API_INIT_EP`                    | `'https://onlyfans.com/api2/v2/init'`                                                                                                                          | Initial API endpoint for session initialization.     |
| `LICENCE_URL`             | `OFSC_API_LICENCE_URL`                | `'https://onlyfans.com/api2/v2/users/media/{}/drm/{}/{}?type=widevine'`                                                                                        | URL for media DRM license acquisition.               |
| `INDIVIDUAL_TIMELINE`     | `OFSC_API_INDIVIDUAL_TIMELINE`        | `'https://onlyfans.com/api2/v2/posts/{}?skip_users=all'`                                                                                                       | Endpoint for a single timeline post.                 |
| `meEP`                    | `OFSC_API_ME_EP`                      | `'https://onlyfans.com/api2/v2/users/me'`                                                                                                                      | Endpoint for the current user's profile information. |
| `subscriptionsEP`         | `OFSC_API_SUBSCRIPTIONS_EP`           | `'https://onlyfans.com/api2/v2/subscriptions/subscribes?offset={}&limit=10&type=all&format=infinite'`                                                          | Endpoint for all subscriptions.                      |
| `subscriptionsActiveEP`   | `OFSC_API_SUBSCRIPTIONS_ACTIVE_EP`    | `'https://onlyfans.com/api2/v2/subscriptions/subscribes?offset={}&limit=10&type=active&format=infinite'`                                                       | Endpoint for active subscriptions.                   |
| `subscriptionsExpiredEP`  | `OFSC_API_SUBSCRIPTIONS_EXPIRED_EP`   | `'https://onlyfans.com/api2/v2/subscriptions/subscribes?offset={}&limit=10&type=expired&format=infinite'`                                                      | Endpoint for expired subscriptions.                  |
| `subscribeCountEP`        | `OFSC_API_SUBSCRIBE_COUNT_EP`         | `'https://onlyfans.com/api2/v2/subscriptions/count/all'`                                                                                                       | Endpoint for subscription count.                     |
| `sortSubscriptions`       | `OFSC_API_SORT_SUBSCRIPTIONS`         | `'https://onlyfans.com/api2/v2/lists/following/sort'`                                                                                                          | Endpoint for sorting subscriptions.                  |
| `profileEP`               | `OFSC_API_PROFILE_EP`                 | `'https://onlyfans.com/api2/v2/users/{}'`                                                                                                                      | Endpoint for a specific user profile.                |
| `timelineEP`              | `OFSC_API_TIMELINE_EP`                | `'https://onlyfans.com/api2/v2/users/{}/posts?limit=100&order=publish_date_asc&skip_users=all&skip_users_dups=1&pinned=0&format=infinite'`                     | Endpoint for user's timeline posts.                  |
| `timelineNextEP`          | `OFSC_API_TIMELINE_NEXT_EP`           | `'https://onlyfans.com/api2/v2/users/{}/posts?limit=100&order=publish_date_asc&skip_users=all&skip_users_dups=1&afterPublishTime={}&pinned=0&format=infinite'` | Endpoint for next set of timeline posts.             |
| `timelinePinnedEP`        | `OFSC_API_TIMELINE_PINNED_EP`         | `'https://onlyfans.com/api2/v2/users/{}/posts?skip_users=all&pinned=1&counters={}&format=infinite'`                                                            | Endpoint for user's pinned timeline posts.           |
| `streamsEP`               | `OFSC_API_STREAMS_EP`                 | `'https://onlyfans.com/api2/v2/users/{}/posts/streams?limit=100&order=publish_date_asc&skip_users=all&skip_users_dups=1&format=infinite'`                      | Endpoint for user's streams/live content.            |
| `streamsNextEP`           | `OFSC_API_STREAMS_NEXT_EP`            | `'https://onlyfans.com/api2/v2/users/{}/posts/streams?limit=100&order=publish_date_asc&skip_users=all&skip_users_dups=1&afterPublishTime={}&format=infinite'`  | Endpoint for next set of streams/live content.       |
| `archivedEP`              | `OFSC_API_ARCHIVED_EP`                | `'https://onlyfans.com/api2/v2/users/{}/posts/archived?limit=100&order=publish_date_asc&skip_users=all&skip_users_dups=1&format=infinite'`                     | Endpoint for user's archived posts.                  |
| `archivedNextEP`          | `OFSC_API_ARCHIVED_NEXT_EP`           | `'https://onlyfans.com/api2/v2/users/{}/posts/archived?limit=100&order=publish_date_asc&skip_users=all&skip_users_dups=1&afterPublishTime={}&format=infinite'` | Endpoint for next set of archived posts.             |
| `highlightsWithStoriesEP` | `OFSC_API_HIGHLIGHTS_WITH_STORIES_EP` | `'https://onlyfans.com/api2/v2/users/{}/stories/highlights?limit=5&offset={}&unf=1'`                                                                           | Endpoint for highlights with stories.                |
| `highlightsWithAStoryEP`  | `OFSC_API_HIGHLIGHTS_WITH_A_STORY_EP` | `'https://onlyfans.com/api2/v2/users/{}/stories?unf=1'`                                                                                                        | Endpoint for highlights with a single story.         |
| `storyEP`                 | `OFSC_API_STORY_EP`                   | `'https://onlyfans.com/api2/v2/stories/highlights/{}?unf=1'`                                                                                                   | Endpoint for a specific story.                       |
| `messagesEP`              | `OFSC_API_MESSAGES_EP`                | `'https://onlyfans.com/api2/v2/chats/{}/messages?limit=100&order=desc&skip_users=all&skip_users_dups=1'`                                                       | Endpoint for chat messages.                          |
| `messagesNextEP`          | `OFSC_API_MESSAGES_NEXT_EP`           | `'https://onlyfans.com/api2/v2/chats/{}/messages?limit=100&id={}&order=desc&skip_users=all&skip_users_dups=1'`                                                 | Endpoint for next set of chat messages.              |
| `favoriteEP`              | `OFSC_API_FAVORITE_EP`                | `'https://onlyfans.com/api2/v2/posts/{}/favorites/{}'`                                                                                                         | Endpoint for favoriting/unfavoriting a post.         |
| `postURL`                 | `OFSC_POST_URL`                       | `'https://onlyfans.com/{}/{}'`                                                                                                                                 | Base URL for a post on OnlyFans.                     |
| `donateEP`                | `OFSC_DONATE_EP`                      | `'https://www.buymeacoffee.com/excludedBittern'`                                                                                                               | Donation endpoint (Buy Me A Coffee example).         |
| `purchased_contentEP`     | `OFSC_PURCHASED_CONTENT_EP`           | `'https://onlyfans.com/api2/v2/posts/paid/all?limit=100&skip_users=all&format=infinite&offset={}&author={}'`                                                   | Endpoint for purchased content by user ID.           |
| `purchased_contentALL`    | `OFSC_PURCHASED_CONTENT_ALL_EP`       | `'https://onlyfans.com/api2/v2/posts/paid/all?limit=100&skip_users=all&format=infinite&offset={}'`                                                             | Endpoint for all purchased content.                  |
| `highlightSPECIFIC`       | `OFSC_HIGHLIGHT_SPECIFIC_EP`          | `'https://onlyfans.com/api2/v2/stories/highlights/{}'`                                                                                                         | Endpoint for a specific highlight story.             |
| `storiesSPECIFIC`         | `OFSC_STORIES_SPECIFIC_EP`            | `'https://onlyfans.com/api2/v2/stories/{}'`                                                                                                                    | Endpoint for a specific story.                       |
| `messageSPECIFIC`         | `OFSC_MESSAGE_SPECIFIC_EP`            | `'https://onlyfans.com/api2/v2/chats/{}/messages?limit=10&order=desc&skip_users=all&firstId={}'`                                                               | Endpoint for specific chat messages (by first ID).   |
| `messageTableSPECIFIC`    | `OFSC_MESSAGE_TABLE_SPECIFIC_URL`     | `'https://onlyfans.com/my/chats/{}/?id={}'`                                                                                                                    | Web UI URL for specific messages.                    |
| `labelsEP`                | `OFSC_LABELS_EP`                      | `'https://onlyfans.com/api2/v2/users/{}/labels?limit=100&offset={}&order=desc&non-empty=1'`                                                                    | Endpoint for user's labels.                          |
| `labelledPostsEP`         | `OFSC_LABELLED_POSTS_EP`              | `'https://onlyfans.com/api2/v2/users/{}/posts?limit=100&offset={}&order=publish_date_desc&skip_users=all&counters=0&format=infinite&label={}'`                 | Endpoint for posts under a specific label.           |
| `listEP`                  | `OFSC_LIST_EP`                        | `'https://onlyfans.com/api2/v2/lists?offset={}&skip_users=all&limit=100&format=infinite'`                                                                      | Endpoint for user's custom lists.                    |
| `listusersEP`             | `OFSC_LIST_USERS_EP`                  | `'https://onlyfans.com/api2/v2/lists/{}/users?offset={}&limit=100&format=infinite'`                                                                            | Endpoint for users within a specific list.           |

### Dynamic rule addresses

Defined in `ofscraper/utils/of_env/values/url/dynamic.py`.

| Key                   | Environment variable      | Default                                                                                                            | Description                                                                                    |
| --------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------- |
| `XAGLER_URL`          | `OF_XAGLER_URL`           | `'https://raw.githubusercontent.com/xagler/dynamic-rules/main/onlyfans.json'`                                      | "<https://raw.githubusercontent.com/xagler/dynamic-rules/main/onlyfans.json>"                  |
| `RAFA_URL`            | `OF_RAFA_URL`             | `'https://raw.githubusercontent.com/rafa-9/dynamic-rules/main/rules.json'`                                         | "<https://raw.githubusercontent.com/rafa-9/dynamic-rules/main/rules.json>"                     |
| `DIGITALCRIMINALS`    | `OF_DIGITALCRIMINALS_URL` | `'https://raw.githubusercontent.com/DATAHOARDERS/dynamic-rules/main/onlyfans.json'`                                | "<https://raw.githubusercontent.com/DATAHOARDERS/dynamic-rules/main/onlyfans.json>"            |
| `DATAWHORES_URL`      | `OF_DATAWHORES_URL`       | `'https://raw.githubusercontent.com/datawhores/onlyfans-dynamic-rules/main/dynamicRules.json'`                     | "<https://raw.githubusercontent.com/datawhores/onlyfans-dynamic-rules/main/dynamicRules.json>" |
| `DEVIINT_URL`         | `OF_DEVIINT_URL`          | `'https://raw.githubusercontent.com/deviint/onlyfans-dynamic-rules/main/dynamicRules.json'`                        | Dynamic rules URL for Deviint                                                                  |
| `RILEY_URL`           | `OF_RILEY_URL`            | `'https://raw.githubusercontent.com/riley-access-labs/onlyfans-dynamic-rules-1/refs/heads/main/dynamicRules.json'` | Dynamic rules URL for Riley Access Labs                                                        |
| `DYNAMIC_GENERIC_URL` | `OF_DYNAMIC_GENERIC_URL`  | `None`                                                                                                             | None                                                                                           |

### Other addresses

Defined in `ofscraper/utils/of_env/values/url/other_url.py`.

#### CDM URL

| Key    | Environment variable | Default                                  | Description                     |
| ------ | -------------------- | ---------------------------------------- | ------------------------------- |
| `CDRM` | `OFSC_CDRM_URL`      | `'https://cdrm-project.com/api/decrypt'` | URL for the CDM decryption API. |

#### Bad URL Host

| Key            | Environment variable | Default                            | Description                                               |
| -------------- | -------------------- | ---------------------------------- | --------------------------------------------------------- |
| `BAD_URL_HOST` | `OFSC_BAD_URL_HOSTS` | a list of 3 items (see the source) | A set of regular expression patterns for "bad" URL hosts. |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://cloakedkeys.gitbook.io/ofsc/reference/env.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
