ish · Schema
EnvironmentResponse
A registered environment as the caller sees it.
Artificial IntelligenceSimulationResearchDesignPlatform
Properties
| Name | Type | Description |
|---|---|---|
| address | object | Normalized target identity derived from `config` (scheme, host and path only). A duplicate-registration guard, NOT the environment's identity, since sessions always reference the id. |
| archived_at | object | Set when the environment is archived (DELETE). An archived environment stays readable by id so existing sessions keep resolving, is hidden from the default list, and frees its name for reuse. |
| config | object | |
| created_at | string | |
| example_actions | array | |
| hosting | string | Who computes the next observation for this environment. Derived from kind and config, never client-set. Open union: new values may be added over time; clients must tolerate unknown values rather than |
| id | string | |
| kind | string | What kind of surface this is. Open union: new values may be added over time; clients must tolerate unknown values rather than failing on them. |
| name | string | |
| observation_retention | string | How long sessions on this environment keep their observation frames: `none`, `30d`, `90d`, or `indefinite`. Open union: new values may be added over time; clients must tolerate unknown values rather t |
| operating_notes | object | |
| revision | integer | Increments on every write to this environment's identity or configuration. Usage is aggregated by (id, revision), so a run reports against the configuration it actually ran on. Archiving does not chan |
| slug | object | |
| updated_at | string | |
| workspace_id | string |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/ishlabs-io/json-schema/ishlabs-io-environment-response-schema.json",
"title": "EnvironmentResponse",
"description": "A registered environment as the caller sees it.",
"x-generated": "2026-11-13",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/ishlabs-io-openapi.json#/components/schemas/EnvironmentResponse",
"properties": {
"address": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Normalized target identity derived from `config` (scheme, host and path only). A duplicate-registration guard, NOT the environment's identity, since sessions always reference the id.",
"title": "Address"
},
"archived_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"description": "Set when the environment is archived (DELETE). An archived environment stays readable by id so existing sessions keep resolving, is hidden from the default list, and frees its name for reuse.",
"title": "Archived At"
},
"config": {
"$ref": "#/$defs/StoredEnvironmentConfig"
},
"created_at": {
"format": "date-time",
"title": "Created At",
"type": "string"
},
"example_actions": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Example Actions",
"type": "array"
},
"hosting": {
"description": "Who computes the next observation for this environment. Derived from kind and config, never client-set. Open union: new values may be added over time; clients must tolerate unknown values rather than failing on them.",
"title": "Hosting",
"type": "string"
},
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"kind": {
"description": "What kind of surface this is. Open union: new values may be added over time; clients must tolerate unknown values rather than failing on them.",
"title": "Kind",
"type": "string"
},
"name": {
"title": "Name",
"type": "string"
},
"observation_retention": {
"description": "How long sessions on this environment keep their observation frames: `none`, `30d`, `90d`, or `indefinite`. Open union: new values may be added over time; clients must tolerate unknown values rather than failing on them.",
"title": "Observation Retention",
"type": "string"
},
"operating_notes": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Operating Notes"
},
"revision": {
"description": "Increments on every write to this environment's identity or configuration. Usage is aggregated by (id, revision), so a run reports against the configuration it actually ran on. Archiving does not change it.",
"title": "Revision",
"type": "integer"
},
"slug": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Slug"
},
"updated_at": {
"format": "date-time",
"title": "Updated At",
"type": "string"
},
"workspace_id": {
"format": "uuid",
"title": "Workspace Id",
"type": "string"
}
},
"required": [
"id",
"workspace_id",
"name",
"kind",
"slug",
"config",
"operating_notes",
"observation_retention",
"example_actions",
"hosting",
"address",
"revision",
"archived_at",
"created_at",
"updated_at"
],
"type": "object",
"$defs": {
"StoredEnvironmentConfig": {
"description": "The configuration of an environment as stored, tolerant of unknown keys.\n\nSame fields as the write shape, but a key this client does not know is IGNORED rather than rejected: reads must keep working across server versions, and because a list response parses the whole page, one unfamiliar key would otherwise fail an entire workspace listing rather than its own row. Closed on write, open on read.",
"properties": {
"app_artifact": {
"anyOf": [
{
"maxLength": 2000,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"title": "App Artifact"
},
"origins": {
"anyOf": [
{
"items": {
"type": "string"
},
"maxItems": 50,
"type": "array"
},
{
"type": "null"
}
],
"title": "Origins"
},
"url": {
"anyOf": [
{
"maxLength": 2000,
"type": "string"
},
{
"type": "null"
}
],
"title": "Url"
}
},
"title": "StoredEnvironmentConfig",
"type": "object"
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/ishlabs-io-environment-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.