UrslyDevelopersBack to experienceExperience

Reference · Written for agents

The fine print.

Generated from the registered Rust handlers and schema types on every build. Point your agent here. You can skip it.

Endpoints

Versioned intent routes are public and stateless; contact routes have independent consent and origin rules. The live specification identifies the deployed contract.

GET /api/health

health

200
D1 available
503
Response schema
{
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}

POST /api/inquiries

contact

Request schema
{
  "additionalProperties": false,
  "properties": {
    "capitalRange": {
      "type": [
        "string",
        "null"
      ]
    },
    "consent": {
      "type": "boolean"
    },
    "email": {
      "type": "string"
    },
    "kind": {
      "description": "Contact intent: investor, partner, or career.",
      "type": "string"
    },
    "language": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "organization": {
      "type": "string"
    }
  },
  "required": [
    "name",
    "email",
    "kind",
    "language",
    "consent"
  ],
  "type": "object"
}
202
Response schema
{
  "properties": {
    "status": {
      "type": "string"
    }
  },
  "required": [
    "status"
  ],
  "type": "object"
}
400
Response schema
{
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
403
Response schema
{
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
413
Response schema
{
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
415
Response schema
{
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
429
Response schema
{
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
503
Response schema
{
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}

POST /api/newsletter

newsletter

Request schema
{
  "additionalProperties": false,
  "properties": {
    "consent": {
      "type": "boolean"
    },
    "email": {
      "type": "string"
    },
    "language": {
      "type": "string"
    }
  },
  "required": [
    "email",
    "language",
    "consent"
  ],
  "type": "object"
}
202
Response schema
{
  "properties": {
    "status": {
      "type": "string"
    }
  },
  "required": [
    "status"
  ],
  "type": "object"
}
400
Response schema
{
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
403
Response schema
{
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
413
Response schema
{
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
415
Response schema
{
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
429
Response schema
{
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
503
Response schema
{
  "properties": {
    "error": {
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}

GET /api/openapi.json

openapi

200
OpenAPI derived from the registered handlers

GET /api/v1/actions

get_actions

200
Response schema
{
  "properties": {
    "actions": {
      "items": {
        "$ref": "#/components/schemas/ActionDefinition"
      },
      "type": "array"
    },
    "version": {
      "type": "string"
    }
  },
  "required": [
    "version",
    "actions"
  ],
  "type": "object"
}

GET /api/v1/capabilities

get_capabilities

200
Response schema
{
  "properties": {
    "capabilities": {
      "items": {
        "$ref": "#/components/schemas/Capability"
      },
      "type": "array"
    },
    "version": {
      "type": "string"
    }
  },
  "required": [
    "version",
    "capabilities"
  ],
  "type": "object"
}

POST /api/v1/resolve

post_resolve

Request schema
{
  "additionalProperties": false,
  "properties": {
    "input": {
      "$ref": "#/components/schemas/Input"
    },
    "rules": {
      "items": {
        "$ref": "#/components/schemas/Rule"
      },
      "maxItems": 32,
      "type": "array"
    }
  },
  "required": [
    "input",
    "rules"
  ],
  "type": "object"
}
200
Response schema
{
  "properties": {
    "execution": {
      "type": "string"
    },
    "intents": {
      "items": {
        "$ref": "#/components/schemas/Intent"
      },
      "type": "array"
    },
    "status": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "intents",
    "execution"
  ],
  "type": "object"
}
400
Response schema
{
  "properties": {
    "error": {
      "$ref": "#/components/schemas/ErrorDetail"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
413
Response schema
{
  "properties": {
    "error": {
      "$ref": "#/components/schemas/ErrorDetail"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
415
Response schema
{
  "properties": {
    "error": {
      "$ref": "#/components/schemas/ErrorDetail"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
422
Response schema
{
  "properties": {
    "error": {
      "$ref": "#/components/schemas/ErrorDetail"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
429
Response schema
{
  "properties": {
    "error": {
      "$ref": "#/components/schemas/ErrorDetail"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
503
Response schema
{
  "properties": {
    "error": {
      "$ref": "#/components/schemas/ErrorDetail"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}

GET /api/v1/templates

get_templates

200
Response schema
{
  "properties": {
    "templates": {
      "items": {
        "$ref": "#/components/schemas/Template"
      },
      "type": "array"
    },
    "version": {
      "type": "string"
    }
  },
  "required": [
    "version",
    "templates"
  ],
  "type": "object"
}

POST /api/v1/validate

post_validate

Request schema
{
  "additionalProperties": false,
  "properties": {
    "input": {
      "$ref": "#/components/schemas/Input"
    },
    "rules": {
      "items": {
        "$ref": "#/components/schemas/Rule"
      },
      "maxItems": 32,
      "type": "array"
    }
  },
  "required": [
    "input",
    "rules"
  ],
  "type": "object"
}
200
Response schema
{
  "properties": {
    "valid": {
      "type": "boolean"
    }
  },
  "required": [
    "valid"
  ],
  "type": "object"
}
400
Response schema
{
  "properties": {
    "error": {
      "$ref": "#/components/schemas/ErrorDetail"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
413
Response schema
{
  "properties": {
    "error": {
      "$ref": "#/components/schemas/ErrorDetail"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
415
Response schema
{
  "properties": {
    "error": {
      "$ref": "#/components/schemas/ErrorDetail"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
422
Response schema
{
  "properties": {
    "error": {
      "$ref": "#/components/schemas/ErrorDetail"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
429
Response schema
{
  "properties": {
    "error": {
      "$ref": "#/components/schemas/ErrorDetail"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
503
Response schema
{
  "properties": {
    "error": {
      "$ref": "#/components/schemas/ErrorDetail"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
All generated schema types
{
  "Accepted": {
    "properties": {
      "status": {
        "type": "string"
      }
    },
    "required": [
      "status"
    ],
    "type": "object"
  },
  "Action": {
    "oneOf": [
      {
        "additionalProperties": false,
        "properties": {
          "target": {
            "type": "string"
          },
          "type": {
            "enum": [
              "navigation.open"
            ],
            "type": "string"
          }
        },
        "required": [
          "target",
          "type"
        ],
        "type": "object"
      },
      {
        "additionalProperties": false,
        "properties": {
          "text": {
            "type": "string"
          },
          "type": {
            "enum": [
              "text.insert"
            ],
            "type": "string"
          }
        },
        "required": [
          "text",
          "type"
        ],
        "type": "object"
      },
      {
        "additionalProperties": false,
        "properties": {
          "target": {
            "type": "string"
          },
          "type": {
            "enum": [
              "media.play"
            ],
            "type": "string"
          }
        },
        "required": [
          "target",
          "type"
        ],
        "type": "object"
      },
      {
        "additionalProperties": false,
        "properties": {
          "target": {
            "type": "string"
          },
          "type": {
            "enum": [
              "media.pause"
            ],
            "type": "string"
          }
        },
        "required": [
          "target",
          "type"
        ],
        "type": "object"
      },
      {
        "additionalProperties": false,
        "properties": {
          "target": {
            "type": "string"
          },
          "type": {
            "enum": [
              "scene.focus"
            ],
            "type": "string"
          }
        },
        "required": [
          "target",
          "type"
        ],
        "type": "object"
      },
      {
        "additionalProperties": false,
        "properties": {
          "parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          },
          "target": {
            "type": "string"
          },
          "type": {
            "enum": [
              "workflow.trigger"
            ],
            "type": "string"
          }
        },
        "required": [
          "target",
          "type"
        ],
        "type": "object"
      }
    ]
  },
  "ActionDefinition": {
    "properties": {
      "execution": {
        "type": "string"
      },
      "payload": {
        "type": "string"
      },
      "type": {
        "type": "string"
      }
    },
    "required": [
      "type",
      "payload",
      "execution"
    ],
    "type": "object"
  },
  "Actions": {
    "properties": {
      "actions": {
        "items": {
          "$ref": "#/components/schemas/ActionDefinition"
        },
        "type": "array"
      },
      "version": {
        "type": "string"
      }
    },
    "required": [
      "version",
      "actions"
    ],
    "type": "object"
  },
  "ApiError": {
    "properties": {
      "error": {
        "$ref": "#/components/schemas/ErrorDetail"
      }
    },
    "required": [
      "error"
    ],
    "type": "object"
  },
  "Capabilities": {
    "properties": {
      "capabilities": {
        "items": {
          "$ref": "#/components/schemas/Capability"
        },
        "type": "array"
      },
      "version": {
        "type": "string"
      }
    },
    "required": [
      "version",
      "capabilities"
    ],
    "type": "object"
  },
  "Capability": {
    "properties": {
      "acquisition": {
        "type": "string"
      },
      "apiAvailable": {
        "type": "boolean"
      },
      "note": {
        "type": "string"
      },
      "productStage": {
        "type": "string"
      },
      "sense": {
        "type": "string"
      }
    },
    "required": [
      "sense",
      "productStage",
      "apiAvailable",
      "acquisition",
      "note"
    ],
    "type": "object"
  },
  "ContactApiError": {
    "properties": {
      "error": {
        "type": "string"
      }
    },
    "required": [
      "error"
    ],
    "type": "object"
  },
  "ErrorDetail": {
    "properties": {
      "code": {
        "type": "string"
      },
      "message": {
        "type": "string"
      }
    },
    "required": [
      "code",
      "message"
    ],
    "type": "object"
  },
  "Input": {
    "oneOf": [
      {
        "additionalProperties": false,
        "properties": {
          "confidence": {
            "format": "double",
            "maximum": 1,
            "minimum": 0,
            "type": [
              "number",
              "null"
            ]
          },
          "sense": {
            "enum": [
              "voice"
            ],
            "type": "string"
          },
          "transcript": {
            "type": "string"
          }
        },
        "required": [
          "transcript",
          "sense"
        ],
        "type": "object"
      },
      {
        "additionalProperties": false,
        "properties": {
          "confidence": {
            "format": "double",
            "maximum": 1,
            "minimum": 0,
            "type": [
              "number",
              "null"
            ]
          },
          "gesture": {
            "type": "string"
          },
          "sense": {
            "enum": [
              "motion"
            ],
            "type": "string"
          }
        },
        "required": [
          "gesture",
          "sense"
        ],
        "type": "object"
      },
      {
        "additionalProperties": false,
        "properties": {
          "sense": {
            "enum": [
              "smell"
            ],
            "type": "string"
          }
        },
        "required": [
          "sense"
        ],
        "type": "object"
      },
      {
        "additionalProperties": false,
        "properties": {
          "sense": {
            "enum": [
              "taste"
            ],
            "type": "string"
          }
        },
        "required": [
          "sense"
        ],
        "type": "object"
      },
      {
        "additionalProperties": false,
        "properties": {
          "sense": {
            "enum": [
              "view"
            ],
            "type": "string"
          }
        },
        "required": [
          "sense"
        ],
        "type": "object"
      },
      {
        "additionalProperties": false,
        "properties": {
          "sense": {
            "enum": [
              "touch"
            ],
            "type": "string"
          }
        },
        "required": [
          "sense"
        ],
        "type": "object"
      }
    ]
  },
  "InquiryRequest": {
    "additionalProperties": false,
    "properties": {
      "capitalRange": {
        "type": [
          "string",
          "null"
        ]
      },
      "consent": {
        "type": "boolean"
      },
      "email": {
        "type": "string"
      },
      "kind": {
        "description": "Contact intent: investor, partner, or career.",
        "type": "string"
      },
      "language": {
        "type": "string"
      },
      "message": {
        "type": "string"
      },
      "name": {
        "type": "string"
      },
      "organization": {
        "type": "string"
      }
    },
    "required": [
      "name",
      "email",
      "kind",
      "language",
      "consent"
    ],
    "type": "object"
  },
  "Intent": {
    "properties": {
      "action": {
        "$ref": "#/components/schemas/Action"
      },
      "ruleId": {
        "type": "string"
      }
    },
    "required": [
      "ruleId",
      "action"
    ],
    "type": "object"
  },
  "ResolveRequest": {
    "additionalProperties": false,
    "properties": {
      "input": {
        "$ref": "#/components/schemas/Input"
      },
      "rules": {
        "items": {
          "$ref": "#/components/schemas/Rule"
        },
        "maxItems": 32,
        "type": "array"
      }
    },
    "required": [
      "input",
      "rules"
    ],
    "type": "object"
  },
  "ResolveResponse": {
    "properties": {
      "execution": {
        "type": "string"
      },
      "intents": {
        "items": {
          "$ref": "#/components/schemas/Intent"
        },
        "type": "array"
      },
      "status": {
        "type": "string"
      }
    },
    "required": [
      "status",
      "intents",
      "execution"
    ],
    "type": "object"
  },
  "Rule": {
    "additionalProperties": false,
    "properties": {
      "action": {
        "$ref": "#/components/schemas/Action"
      },
      "enabled": {
        "type": "boolean"
      },
      "id": {
        "type": "string"
      },
      "match": {
        "type": "string"
      },
      "minConfidence": {
        "format": "double",
        "maximum": 1,
        "minimum": 0,
        "type": [
          "number",
          "null"
        ]
      }
    },
    "required": [
      "id",
      "match",
      "action"
    ],
    "type": "object"
  },
  "SignupRequest": {
    "additionalProperties": false,
    "properties": {
      "consent": {
        "type": "boolean"
      },
      "email": {
        "type": "string"
      },
      "language": {
        "type": "string"
      }
    },
    "required": [
      "email",
      "language",
      "consent"
    ],
    "type": "object"
  },
  "Template": {
    "properties": {
      "id": {
        "type": "string"
      },
      "name": {
        "type": "string"
      },
      "request": {
        "$ref": "#/components/schemas/ResolveRequest"
      }
    },
    "required": [
      "id",
      "name",
      "request"
    ],
    "type": "object"
  },
  "Templates": {
    "properties": {
      "templates": {
        "items": {
          "$ref": "#/components/schemas/Template"
        },
        "type": "array"
      },
      "version": {
        "type": "string"
      }
    },
    "required": [
      "version",
      "templates"
    ],
    "type": "object"
  },
  "ValidationResponse": {
    "properties": {
      "valid": {
        "type": "boolean"
      }
    },
    "required": [
      "valid"
    ],
    "type": "object"
  }
}

Actions

Matching is case-insensitive with normalized whitespace; every matching enabled rule emits an intent in the order supplied. A confidence threshold requires a confidence score from your input adapter. The server never evaluates code, runs shell commands or calls arbitrary webhooks.

navigation.open

target: application-relative path

client_handler_required

text.insert

text: plain text

client_handler_required

media.play

target: registered media identifier

client_handler_required

media.pause

target: registered media identifier

client_handler_required

scene.focus

target: registered scene identifier

client_handler_required

workflow.trigger

target: registered workflow identifier; parameters: string map

client_handler_required

Limits and errors

Intent requests accept JSON only, up to 32 KiB and 32 rules. Invalid requests return a structured error, future senses return sense_unavailable (HTTP 422), and rate limiting returns 429. Avoid automatic retries for action-producing calls; applications decide whether a repeated input is safe. A timeout never proves that a request was not processed.

Every SDK exposes both the HTTP status and the server error code. Public intent requests are not persisted by the resolver; infrastructure may retain operational request metadata. Do not submit protected health information.

Sense guides: Ursly Voice ↓ · Ursly Motion ↓ · Ursly Smell ↓ · Ursly Taste ↓ · Ursly Sight ↓ · Ursly Touch ↓

Assurance, by design

These are readiness targets, not current certifications or audit results. Health deployments remain out of scope until their obligations and safeguards are established.

Roadmap target · no report issued

SOC 2 Type II

Q4 2026: scope systems, owners and controls. Q1 2027 onward: collect operating evidence, review access, incidents and vendors. Engage an independent CPA for a Type II examination only after readiness and an agreed observation period.

Release gate: An issued independent report covering the stated system and period; no certification badge before evidence.

Roadmap target · not certified

ISO/IEC 27001:2022

Establish an information security management system, risk treatment plan, statement of applicability, internal audit and management review. Include the 2024 amendment in the standards review.

Release gate: Independent certification for a defined scope, after internal readiness; schedule is not yet committed.

Applicability review · no PHI service offered

HIPAA readiness

Determine covered-entity/business-associate roles before health deployments. Assess risks and safeguards, retention, incident response and eligible providers; execute required business associate agreements before handling protected health information.

Release gate: A scoped legal and security readiness review with operational safeguards and required agreements. HHS does not require or recognize a blanket Security Rule certification.

Official standards and guidance · reviewed 2026-09-30

Architecture & decisions ↓