Skip to main content
POST
/
v1
/
models
/
{model_id}
/
patterns
/
fit
Fit Patterns
curl --request POST \
  --url https://api.example.com/v1/models/{model_id}/patterns/fit \
  --header 'Content-Type: application/json' \
  --data '
{
  "target_range": [
    123,
    123
  ],
  "dataset_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "mode": "discovery",
  "max_patterns": 25,
  "coverage_target": 0.95,
  "min_pattern_support": 0.005,
  "min_precision": 0.5,
  "max_pattern_size": 3,
  "threshold_n_bins": 10,
  "ensure_coverage": true,
  "min_wracc": 0,
  "diversity_threshold": 0.5,
  "drop_redundant": true,
  "child_overlap_threshold": 0.9,
  "explained_lift_threshold": 1.1,
  "min_pattern_samples": 0.05,
  "rule_sample_size": 5000,
  "random_state": 0,
  "rule_kwargs": {},
  "label_column": "<string>"
}
'
{
  "job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "model_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "tracker_id": "<string>",
  "message": "<string>"
}

Headers

authorization
string | null
refresh-token
string | null

Path Parameters

model_id
string<uuid>
required

Body

application/json

POST /v1/models/{model_id}/patterns/fit — submit a pattern-tracker fit job.

Carries the fit hyperparameters plus a dataset_id reference. Register the dataset first via POST /v1/datasets (the SDK Dataset(...) constructor does this automatically).

target_range
Target Range · tuple
required

(lo, hi) bounds defining the 'rejected' band of predictions. Either side may be null for an open bound; at least one must be set.

dataset_id
required

Identifier of a dataset previously created via POST /v1/datasets.

mode
enum<string>
default:discovery
Available options:
cover,
discovery
max_patterns
integer
default:25
coverage_target
number
default:0.95
min_pattern_support
number
default:0.005
min_precision
number
default:0.5
max_pattern_size
integer
default:3
threshold_n_bins
integer
default:10
ensure_coverage
boolean
default:true
min_wracc
number
default:0
diversity_threshold
number
default:0.5
drop_redundant
boolean
default:true
child_overlap_threshold
number
default:0.9
explained_lift_threshold
number
default:1.1
min_pattern_samples
number
default:0.05
rule_sample_size
integer | null
default:5000

Maximum number of target-band rows used to derive patterns. Bounds the per-row rule-extraction step so large datasets stay tractable; null uses every target-band row. Metrics (precision, support, lift, coverage) are always computed over the full dataset.

random_state
integer | null
default:0

Seed for the rule-extraction subsample, for reproducible patterns. Only used when the target-band cohort exceeds rule_sample_size.

rule_kwargs
Rule Kwargs · object
label_column
string | null

Optional label column name to drop from the dataset before fitting.

Response

Successful Response

Returned immediately by POST /patterns/fit; the actual artifact is retrieved via GET /patterns/{tracker_id} once the job completes.

job_id is the canonical handle — poll GET /v1/results/{job_id} for terminal status. model_id + tracker_id are echoed back so the SDK can subsequently fetch the typed artifact via GET /v1/models/{model_id}/patterns/{tracker_id}.

job_id
required
model_id
required
tracker_id
string
required
status
enum<string>
required
Available options:
pending,
running,
completed,
failed
message
string | null