Docs
Dashboard
Guides / AccountBeta

Project settings

Settings for your whole project: the CAPTCHA default and the default model that new sessions and agent runs get when they do not choose, and your choice about the Trajectories program.

Project settings apply to your whole project. There are three: the CAPTCHA default (what new sessions and agent runs do when a CAPTCHA waits for a person and they did not say), the default model, and your choice about the Trajectories program.

In the console, only an owner or an admin of the organization can change them. An API key has no role: it can change them, which is one more reason to keep keys safe. See Organizations, projects and team members.

Read the settings

curl https://api.boxline.dev/v1/project/settings \  -H "x-api-key: $BOXLINE_API_KEY"
Response (shape)
{  "captchaDefault": "ask",  "captchaDefaultEffective": "ask",  "defaultModel": null,  "trajectories": { "enabled": true, "noticeSeenAt": null, "decidedBy": null },  "updatedAt": null,  "updatedBy": null,  "updatedVia": null}
FieldMeaning
captchaDefaultWhat new sessions and agent runs do about CAPTCHAs when they do not set captcha themselves: "ask" (the default), "ignore" or "solve".
captchaDefaultEffectiveWhat they get now. It is "ask" when the setting is "solve" but your plan no longer includes automatic solving.
defaultModelThe model used when a request names none: { provider, model }, or null. See "The default model" below.
trajectoriesWhether your project takes part in the Trajectories program: { enabled, noticeSeenAt, decidedBy }. See "Trajectories" below.
updatedAtWhen it last changed, or null if never.
updatedByYour project's own user who changed it in the console, or null (a change with an API key or by support).
updatedViaHow it last changed: "console", "api_key" or "support" (the platform's support staff), or null if never.

Change the CAPTCHA default

PUT /v1/project/settings changes only the fields you send; an unknown field is a 400, and every field is checked before any is written. In the console, “Solve CAPTCHAs automatically” is captchaDefault: "solve".

curl -X PUT https://api.boxline.dev/v1/project/settings \  -H "x-api-key: $BOXLINE_API_KEY" \  -H "content-type: application/json" \  -d '{"captchaDefault": "solve"}'
  • "solve" needs a plan with automatic CAPTCHA solving; without it the answer is 402 feature_not_in_plan. If your plan loses it later, the setting stays, but new sessions get "ask": captchaDefaultEffective shows what they get now.
  • Every change is logged with who made it and how. A change made by support also goes to the admin audit log.

The default model

defaultModel is the model used when a request names no provider and no model. The order is: the request, then this, then Boxline’s default. Send null to clear it. It does not need a key when you save it. Keys and billing are on Your own model keys.

curl -X PUT https://api.boxline.dev/v1/project/settings \  -H "x-api-key: $BOXLINE_API_KEY" \  -H "content-type: application/json" \  -d '{"defaultModel": {"provider": "openai", "model": "gpt-6-luna"}}'

How the CAPTCHA default is used

WhatUses the default?
A new session without captcha (or with null)Yes
A new agent run without captcha, in its own sessionYes
An agent run in an existing session (sessionId)No: that session’s own setting applies
A session or run that sets captcha itselfNo: an explicit option always wins, and is checked against your plan as before
Sessions already runningNo: they keep the setting they started with
Crawls, and fetch, screenshot, PDF and extractNo: they cannot wait for a person or solve, so they report the CAPTCHA’s kind instead

See CAPTCHAs for what "ask", "ignore" and "solve" do.

Trajectories

The Trajectories program is on by default. It decides whether sessions your project starts are eligible for datasets of agent trajectories. The choice is part of the project settings, so you read and change it with the same two calls. What the program is, and which sessions are eligible, is on Trajectories.

GET /v1/project/settings returns trajectories with three fields. To change it, send trajectories to PUT /v1/project/settings.

curl -X PUT https://api.boxline.dev/v1/project/settings \  -H "x-api-key: $BOXLINE_API_KEY" \  -H "content-type: application/json" \  -d '{"trajectories": {"enabled": false}}'
FieldMeaning
enabledRead and send. true or false: whether the program is on for your project.
noticeSeenAtRead only. When your project was shown the notice, or first made a choice. null means not yet, and until then no session is eligible.
decidedByRead only. The user who made the last choice, or null when it was made with an API key.
sourceSend only, optional. Where the choice was made: "settings" (the default) or "notice" (an answer to the first-use notice).
  • The choice is logged (who, how and when) and marks the notice as seen.
  • A change applies to sessions that start after it. A session keeps the trajectoriesEligible it started with.
  • In the console, only an owner or an admin can change it. An API key can too, so keep keys safe, and read the setting back (trajectories.enabled) when your program must never take part.
  • See Update project settings for every field.

These docs describe a beta API. Endpoints, fields and SDK methods may change before general availability; breaking changes will be listed in the changelog.