FF Solver

Constraint Solving API

Define constraints.
Get solutions.

Send your optimization problem as JSON. We pick the right solver, run it sandboxed, and return results in milliseconds.

Assign three workers to different shifts. Alice can't take morning, Bob must be before Carol, maximize Carol's shift.

$ curl -X POST https://solver.fastflowtech.ai/solve

Request
{
  "variables": [
    {"name": "alice", "type": "int",
     "domain": {"min": 0, "max": 4}},
    {"name": "bob", "type": "int",
     "domain": {"min": 0, "max": 4}},
    {"name": "carol", "type": "int",
     "domain": {"min": 0, "max": 4}}
  ],
  "constraints": [
    {"type": "all_different",
     "vars": ["alice", "bob", "carol"]},
    {"type": "expression",
     "expression": "alice != 0"},
    {"type": "expression",
     "expression": "bob < carol"}
  ],
  "objective": {
    "target": "carol", "goal": "maximize"
  }
}
Response
{
  "status": "optimal",
  "solution": {
    "alice": 1,
    "bob": 3,
    "carol": 4
  },
  "stats": {
    "solver": "cpsat",
    "solve_time_us": 583,
    "routing_reason": "all_different"
  }
}

Built for developers

Send JSON in, get solutions back. We handle solver selection, sandboxing, and scaling.

Auto-routing

Your problem is analyzed and sent to the best engine. SCIP for linear, CP-SAT for constraints, Z3 for nonlinear.

Sandboxed execution

Every solve runs isolated with memory limits and timeouts. Ship to production without worrying about runaway computations.

Rich constraints

Expressions, all_different, implications, cardinality, table constraints, enums, and floats. Model real business rules directly.

Sub-millisecond

SCIP solves linear problems in under 1ms. Preprocessing tightens domains and breaks symmetry before solving.

Pure JSON

No solver libraries to install. Define variables, constraints, and objectives in JSON your team already understands.

Usage Dashboard

Track your solves, solver distribution, and quota usage in real time. Monthly quotas per tier keep usage predictable.

Continuous Variables

Float/real variable support for LP relaxation problems. Use int, bool, enum, or float types.

Monthly Solve Quotas

Predictable usage with per-tier monthly quotas. Demo: 100, Starter: 1,000, Pro: 5,000, Enterprise: unlimited.

Three steps. That's it.

1

Define your problem

Declare variables with domains, add constraints as expressions or built-in types, set an optional objective.

2

POST to /solve

Send your JSON. The API preprocesses, picks the best solver, and runs it in an isolated process.

3

Get your solution

Receive assignments, status, solve stats, and preprocessing details. Typically under 1ms.

What you can build

Anywhere you need the best assignment under constraints.

Scheduling

Workers to shifts, rooms to events, tasks to machines — conflict-free.

Resource allocation

Optimize budgets, portfolios, or inventory across your constraints.

Configuration

Valid product configs, layouts, or parameter sets under business rules.

Planning

Route vehicles, sequence production, or schedule within capacity.

Start solving in minutes

Free tier available — no credit card required.