Skip to main content
POST
/
api
/
v1
/
llm
/
evals
/
schedules
Python (SDK)
from meetkai_mka1 import SDK, models


with SDK(
    bearer_auth="<YOUR_BEARER_TOKEN_HERE>",
) as sdk:

    res = sdk.llm.evals.create_schedule(name="Nightly MMLU regression", suite_id="eval_suite_aa87e2b1112a455b8deabed784372198", run=models.EvalScheduleRunConfig(
        models=[
            "meetkai/model-a",
        ],
    ), cron="0 3 * * *", timezone="US/Pacific", overlap_policy="skip", enabled=True, webhook_url="https://example.com/hooks/evals", webhook_secret="whsec_example_signing_secret", metadata={
        "team": "eval-ops",
    })

    # Handle response
    print(res)
{
  "id": "eval_sched_aa87e2b1112a455b8deabed784372198",
  "object": "eval.schedule",
  "name": "Nightly MMLU regression",
  "description": null,
  "suite_id": "eval_suite_aa87e2b1112a455b8deabed784372198",
  "suite_version": null,
  "cron": "0 3 * * *",
  "interval_seconds": null,
  "timezone": "US/Pacific",
  "overlap_policy": "skip",
  "enabled": true,
  "webhook_url": "https://example.com/hooks/evals",
  "webhook_configured": true,
  "run": {
    "models": [
      "meetkai/model-a"
    ],
    "generation": {}
  },
  "metadata": {
    "team": "eval-ops"
  },
  "last_run_id": null,
  "last_run_at": null,
  "last_run_status": null,
  "next_run_at": 1751328000,
  "created_at": 1751241600,
  "updated_at": 1751241600
}

Authorizations

Authorization
string
header
required

Gateway auth: send Authorization: Bearer <mka1-api-key>. For multi-user server-side integrations, you can also send X-On-Behalf-Of: <external-user-id>.

Headers

X-On-Behalf-Of
string

Optional external end-user identifier forwarded by the API gateway.

Body

application/json
name
string
required
Required string length: 1 - 255
suite_id
string
required
run
object
required
description
string
Maximum string length: 10000
suite_version
integer

Pin a suite version. Omit to resolve the active version on each fire.

Required range: 1 <= x <= 9007199254740991
cron
string

5-field cron expression. Provide exactly one of cron or interval_seconds.

Required string length: 1 - 255
interval_seconds
integer

Fixed interval between fires, in seconds. Provide exactly one of cron or interval_seconds.

Required range: 60 <= x <= 31536000
timezone
string
default:UTC

IANA timezone applied to cron expressions, for example US/Pacific.

Required string length: 1 - 64
overlap_policy
enum<string>
default:skip
Available options:
skip,
buffer_one,
allow_all
enabled
boolean
default:true

When false, the schedule is created paused.

webhook_url
string<uri>

HTTPS endpoint notified of run status transitions.

Maximum string length: 2048
webhook_secret
string

Secret used to HMAC-SHA256 sign webhook payloads.

Required string length: 16 - 256
metadata
object

Response

200 - application/json

OK

id
string
required
object
any
required
name
string
required
description
string | null
required
suite_id
string
required
suite_version
integer | null
required
Required range: -9007199254740991 <= x <= 9007199254740991
cron
string | null
required
interval_seconds
integer | null
required
Required range: -9007199254740991 <= x <= 9007199254740991
timezone
string
required
overlap_policy
enum<string>
required
Available options:
skip,
buffer_one,
allow_all
enabled
boolean
required
webhook_url
string | null
required
webhook_configured
boolean
required

True when a signing secret is stored. The secret itself is never returned.

run
object
required
metadata
object
required
last_run_id
string | null
required
last_run_at
integer | null
required
Required range: -9007199254740991 <= x <= 9007199254740991
last_run_status
string | null
required
next_run_at
integer | null
required

Next scheduled fire time from Temporal, when resolvable.

Required range: -9007199254740991 <= x <= 9007199254740991
created_at
integer
required
Required range: -9007199254740991 <= x <= 9007199254740991
updated_at
integer
required
Required range: -9007199254740991 <= x <= 9007199254740991