Install the FERS Python package

One pip command gets you the Python modelling layer and the compiled Rust solver. Local analysis needs no account, no key and no network — a key only unlocks Pro limits, cloud model storage and the hosted endpoints.

1. Install the package

The package is published on PyPI as FERS. It ships the Python model-building layer plus the compiled solver wheel, so there is nothing else to build.

pip install FERS

Requires Python 3.11 or newer. Wheels are published for Windows, macOS and Linux — no Rust toolchain is needed to install.

2. Verify the installation

Import the core objects and construct an empty model. If this runs without raising, the compiled solver loaded correctly.

from fers_core import FERS, Node, Member, Section, Material, NodalSupport, NodalLoad

# Quick smoke-test
model = FERS()
print("FERS installed successfully")

3. Authenticate with the cloud (optional)

You only need this for Pro limits, saving models to your account, and the hosted REST and MCP endpoints. There are two ways to authenticate, depending on how you signed up.

  1. Option A — email and password account — Exchange your credentials for a 1-hour Bearer token via POST /api/sdk/token. Only works for accounts created with an email and password.
  2. Option B — Google or GitHub account (recommended for everyone) — Create a permanent API key from your Profile page → API Keys. No password required, it works for any sign-in method, and you can revoke it at any time.

Option A: short-lived Bearer token

The token lasts one hour. Fetch a fresh one when it expires rather than storing it.

import requests

resp = requests.post("https://ferscloud.com/api/sdk/token", json={
    "email": "you@example.com",
    "password": "your_password",
})
token = resp.json()["token"]

Option B: persistent API key

An API key has the shape <keyId>.<secret> and is shown once, at creation. Store it in an environment variable and keep it server-side — never in browser code or a committed file.

import os
os.environ["FERS_API_KEY"] = "<keyId>.<secret>"

Cloud authentication is only needed for Pro limits, saving models and the hosted endpoints. Local analysis with run_analysis() works without any credentials.

What you get without paying

The free tier is for non-commercial use: it solves models up to 100 members, with no account and no key. Pro covers commercial use, raises the limit to 10,000 members and adds cloud model storage.

There is no solve quota and no per-solve price on any channel: the package, the fers command and the local MCP server solve on your machine, and FERS Studio solves in your browser. Pro is €19.95/month.

FreePro
Members per model10010,000
Commercial useNoYes
Local solvingUnlimitedUnlimited
Account requiredNoYes
Cloud model storageNoYes

Next steps

Related pages

See also

Frequently asked questions

What is the pip package called?

pip install FERS. The import name is fers_core — for example from fers_core import FERS, Node, Member.

Do I need an API key to run an analysis?

No. run_analysis() solves locally with no credentials and no network access. Keys are only for Pro limits, cloud model storage and the hosted REST and MCP endpoints.

Which Python versions are supported?

Python 3.11 and newer, on Windows, macOS and Linux. The solver ships as a prebuilt wheel, so installing does not require a Rust toolchain.

Where do I create an API key?

On your Profile page under API Keys. The key is displayed once at creation — store it then, because it cannot be shown again. You can revoke it at any time.

Can I use the solver from JavaScript instead?

Yes. The same engine is published as a WebAssembly npm package that runs in the browser or in Node with no server round-trip — see using FERS from JavaScript.

Is my model uploaded anywhere when I solve locally?

No. Local solving runs entirely in your process. Your model is never sent to FERS Cloud unless you explicitly save it or call one of the REST endpoints.