> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.islo.dev/api-reference/factory/list-factory-lines/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.islo.dev/_mcp/server. # List factory lines GET https://api.islo.dev/factory/lines Reference: https://docs.islo.dev/api-reference/factory/list-factory-lines ## Authentication - `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer `, where token is your auth token. ## Request ### Query parameters - `limit` (integer, optional, default: 50) - `offset` (integer, optional, default: 0) ## Response ### 200 Successful Response - `list of LineResponse` ## Errors ### 422 Unprocessable Entity Error Validation Error - `detail` (list of ValidationError, optional) ## Types ### LineResponse - `id` (string, required) - `name` (string, required) - `description` (string, required, nullable) - `status` (string, required) - `latest_version_number` (integer, required, nullable) - `created_at` (datetime, required) - `latest_version` (LineVersionResponse, required, nullable) - `category` (string, optional, nullable) - `stage_count` (integer, optional, default: 0) - `trigger_type` (string, optional, nullable) - `resolved_stages` (list of ResolvedStage, optional) ### ValidationError - `loc` (list of ValidationErrorLocItems, required) - `msg` (string, required) - `type` (string, required) - `input` (any, optional) - `ctx` (ValidationErrorCtx, optional) ### LineVersionResponse - `id` (string, required) - `version_number` (integer, required) - `content_hash` (string, required) - `deployed_at` (datetime, required) - `manifest` (LineManifest-Output, required) — Full line.toml manifest (TOML or JSON authoring; stored as JSON). - `input_params` (list of JobParamDefinition, optional) ### ResolvedStage Stage metadata with job-derived kind and agent info. - `id` (string, required) - `job` (string, required) - `description` (string, optional, nullable) - `kind` (enum, optional, default: deterministic) - Allowed values: `agent`, `deterministic` - `harness` (enum, optional, nullable) - Allowed values: `codex`, `cursor`, `claude`, `opencode`, `custom` - `agent_model` (string, optional, nullable) - `agent_role` (string, optional, nullable) - `runtime` (string, optional, nullable) - `params` (list of JobParamDefinition, optional) ### ValidationErrorLocItems ### ValidationErrorCtx ### LineManifest-Output Full line.toml manifest (TOML or JSON authoring; stored as JSON). - `line` (LineSection, required) - `trigger` (LineManifestOutputTrigger, required) - `stages` (list of LineStage, required) - `transitions` (list of LineManifestOutputTransitionsItems, optional) - `agent` (LineAgentConfig, optional, nullable) - `limits` (LineLimits-Output, optional) ### JobParamDefinition - `name` (string, required) - `type` (enum, required) - Allowed values: `string`, `integer`, `number`, `boolean`, `array` - `items` (enum, optional, nullable) - Allowed values: `string`, `integer`, `number`, `boolean` - `required` (boolean, optional, default: false) - `description` (string, optional, nullable) - `pattern` (string, optional, nullable) - `prefix` (string, optional, nullable) - `enum` (list of any, optional, nullable) ### LineSection - `name` (string, required) - `description` (string, optional, nullable) - `category` (string, optional, nullable) ### LineManifestOutputTrigger - `type`: `integration_trigger` (IntegrationTriggerSection) - `name` (string, required) - `provider` (string, required) - `selector` (LineManifestOutputTriggerDiscriminatorMappingIntegrationTriggerSelector, required) - `filters` (list of LineCondition-Output, optional) - `outputs` (map from string to TriggerPathBinding, optional) - `type`: `manual` (ManualTriggerSection) - `type`: `schedule` (ScheduleTriggerSection) - `cron` (string, required) - `inputs` (map from string to any, optional) - `timezone` (string, optional, default: UTC) - `type`: `webhook` (WebhookTriggerSection) - `path` (string, required) ### LineStage A node in the line graph that runs one job per visit. - `id` (string, required) - `job` (string, required) - `job_version_id` (string, optional, nullable) - `description` (string, optional, nullable) - `max_attempts` (integer, optional, nullable) ### LineManifestOutputTransitionsItems - `type`: `agentic` (AgenticTransition) - `from` (string, required) - `id` (string, required) - `instructions` (LineManifestOutputTransitionsItemsDiscriminatorMappingAgenticInstructions, required) - `label` (string, optional, nullable) - `options` (list of AgenticTransitionOption, optional) - `type`: `conditional` (ConditionalTransition) - `from` (string, required) - `id` (string, required) - `to` (string, required) - `when` (LineCondition-Output, required) - `label` (string, optional, nullable) - `max_iterations` (integer, optional, nullable) - `params` (map from string to LineManifestOutputTransitionsItemsDiscriminatorMappingConditionalParams, optional) ### LineAgentConfig - `instructions` (LineAgentConfigInstructions, optional, nullable) ### LineLimits-Output - `max_iterations` (integer, optional, nullable) - `budget_usd` (string, optional, nullable) - `timeout` (string, optional, nullable) ### LineManifestOutputTriggerDiscriminatorMappingIntegrationTriggerSelector - `provider`: `github` (GitHubRepositorySelector) - `kind` ("repository", optional, default: repository) - `repositories` (list of string, optional) - `scope` (enum, optional) - Allowed values: `all`, `selected` - `provider`: `linear` (LinearIssueSelector) - `kind` ("issue", optional, default: issue) - `labels` (list of string, optional) - `project_ids` (list of string, optional) - `scope` (enum, optional) - Allowed values: `all`, `selected` - `states` (list of string, optional) - `team_ids` (list of string, optional) - `provider`: `slack` (SlackChannelSelector) - `channels` (list of string, optional) - `kind` ("channel", optional, default: channel) - `scope` (enum, optional) - Allowed values: `all`, `selected` ### LineCondition-Output - `op`: `all` (CompoundCondition) - `conditions` (list of LineCondition-Output, required) - `op`: `always` (AlwaysCondition) - `op`: `any` (CompoundCondition) - `conditions` (list of LineCondition-Output, required) - `op`: `contains` (BinaryCondition) - `left` (ConditionOperand, required) - `right` (ConditionOperand, required) - `op`: `eq` (BinaryCondition) - `left` (ConditionOperand, required) - `right` (ConditionOperand, required) - `op`: `exists` (UnaryCondition) - `operand` (ConditionOperand, required) - `op`: `falsy` (UnaryCondition) - `operand` (ConditionOperand, required) - `op`: `missing` (UnaryCondition) - `operand` (ConditionOperand, required) - `op`: `ne` (BinaryCondition) - `left` (ConditionOperand, required) - `right` (ConditionOperand, required) - `op`: `not` (NotCondition) - `condition` (LineCondition-Output, required) - `op`: `not_contains` (BinaryCondition) - `left` (ConditionOperand, required) - `right` (ConditionOperand, required) - `op`: `truthy` (UnaryCondition) - `operand` (ConditionOperand, required) ### TriggerPathBinding - `type` ("trigger_path", required) - `path` (string, required) ### LineManifestOutputTransitionsItemsDiscriminatorMappingAgenticInstructions - `type`: `knowledge` (KnowledgeBinding) - `slug` (string, required) - `type`: `literal` (LiteralBinding) - `value` (any, required) ### AgenticTransitionOption - `name` (string, required) - `to` (string, required) - `label` (string, optional, nullable) - `params` (map from string to AgenticTransitionOptionParams, optional) ### LineManifestOutputTransitionsItemsDiscriminatorMappingConditionalParams - `type`: `input` (InputBinding) - `name` (string, required) - `type`: `literal` (LiteralBinding) - `value` (any, required) - `type`: `output` (OutputBinding) - `name` (string, required) - `stage` (string, required) ### LineAgentConfigInstructions - `type`: `knowledge` (KnowledgeBinding) - `slug` (string, required) - `type`: `literal` (LiteralBinding) - `value` (any, required) ### ConditionOperand - `type`: `literal` (LiteralBinding) - `value` (any, required) - `type`: `stage` (StageOperand) - `path` (string, required) - `stage` (string, optional, nullable) - `type`: `transition` (TransitionOperand) - `id` (string, required) - `path` (string, required) - `type`: `trigger` (TriggerOperand) - `path` (string, required) ### AgenticTransitionOptionParams - `type`: `input` (InputBinding) - `name` (string, required) - `type`: `literal` (LiteralBinding) - `value` (any, required) - `type`: `output` (OutputBinding) - `name` (string, required) - `stage` (string, required) ## Examples **Response** ```json [ { "id": "string", "name": "string", "description": "string", "status": "string", "latest_version_number": 1, "created_at": "2024-01-15T09:30:00Z", "latest_version": { "id": "string", "version_number": 1, "content_hash": "string", "deployed_at": "2024-01-15T09:30:00Z", "manifest": { "line": { "name": "string", "description": "string", "category": "string" }, "trigger": { "type": "manual" }, "stages": [ { "id": "string", "job": "string", "job_version_id": "string", "description": "string", "max_attempts": 1 } ], "transitions": [ { "type": "string", "id": "string", "from": "string", "to": "string", "when": { "op": "string" }, "label": "string", "max_iterations": 1, "params": {} } ], "agent": { "instructions": { "type": "string", "value": null } }, "limits": { "max_iterations": 1, "budget_usd": "string", "timeout": "string" } }, "input_params": [ { "name": "string", "type": "string", "items": "string", "required": false, "description": "string", "pattern": "string", "prefix": "string", "enum": [ null ] } ] }, "category": "string", "stage_count": 0, "trigger_type": "string", "resolved_stages": [ { "id": "string", "job": "string", "description": "string", "kind": "deterministic", "harness": "codex", "agent_model": "string", "agent_role": "string", "runtime": "string", "params": [ { "name": "string", "type": "string", "items": "string", "required": false, "description": "string", "pattern": "string", "prefix": "string", "enum": [ null ] } ] } ] } ] ``` **SDK Code** ```python import requests url = "https://api.islo.dev/factory/lines" headers = {"Authorization": "Bearer "} response = requests.get(url, headers=headers) print(response.json()) ``` ```javascript const url = 'https://api.islo.dev/factory/lines'; const options = {method: 'GET', headers: {Authorization: 'Bearer '}}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.islo.dev/factory/lines" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Authorization", "Bearer ") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.islo.dev/factory/lines") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["Authorization"] = 'Bearer ' response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://api.islo.dev/factory/lines") .header("Authorization", "Bearer ") .asString(); ``` ```php request('GET', 'https://api.islo.dev/factory/lines', [ 'headers' => [ 'Authorization' => 'Bearer ', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://api.islo.dev/factory/lines"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer "); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = ["Authorization": "Bearer "] let request = NSMutableURLRequest(url: NSURL(string: "https://api.islo.dev/factory/lines")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```