Getting started

Quickstart

This guide walks through the minimum sequence required to obtain a compute result from the platform: issuance of an API key, composition of a small computational graph, submission over HTTP, and interpretation of the returned payload. The example below constructs a random square matrix A and returns the symmetric product A⋅A.

§1

Procedure

1Obtain an API key

Register an account on the platform and issue a key from the API keys panel of the dashboard. All requests are authenticated by thex-api-key header. For local testing, the key is customarily exported as an environment variable:

export EURIKLIS_API_KEY="ek_live_…"
2Compose the graph

A request is a JSON document with three principal keys: an entry node name, an array of nodes, and an array of edges. Each node lists an ordered sequence of operations together with the placeholder labels (as) under which their outputs are bound, and a returnarray identifying which of those placeholders are published as the node's output. Save the following as graph.json:

graph.json
{
  "entry": "compute",
  "maxIterations": 100,
  "nodes": [
    {
      "name": "compute",
      "operations": [
        {
          "operation": "math.matrix.random",
          "arguments": { "rows": 3, "columns": 3 },
          "as": "$A"
        },
        {
          "operation": "math.matrix.transpose",
          "arguments": { "x": "$A" },
          "as": "$At"
        },
        {
          "operation": "math.matrix.times",
          "arguments": { "x": "$A", "y": "$At" },
          "as": "$AAt"
        }
      ],
      "return": ["$AAt"]
    }
  ],
  "edges": []
}
Placeholders take the form $name for values scoped to the current node, and $state.name for values that persist across nodes. The precise grammar is set out in the DAG schema reference.
3Submit the request

Submit the graph to the compute endpoint. Any HTTP client suffices; the example uses curl.

curl -X POST https://api.euriklis.com/v1/compute \
  -H "Content-Type: application/json" \
  -H "x-api-key: $EURIKLIS_API_KEY" \
  -d @graph.json
4Interpret the response

A successful response is a JSON object with success: true and a data field containing the result and the ECU consumption. The resultobject maps each placeholder listed in the entry node's return array (with the leading $ removed) to its computed value.

Response
{
  "success": true,
  "data": {
    "result": {
      "AAt": [
        [1.234, 0.421, 0.907],
        [0.421, 0.883, 0.512],
        [0.907, 0.512, 1.106]
      ]
    },
    "ecuUsed": 3
  }
}
§2

Error responses

A request may fail for one of three reasons. Static validation failures — an unrecognised operation, a malformed placeholder, or a shape / arity error — return status 400 with a details array of diagnostic messages, and do not consume ECU. Runtime failures during execution return 422. An expired or absent API key returns 401; an exhausted quota returns 429.

§3

Using the MCP surface

The same computational graph may be submitted through a language-model agent via the Model Context Protocol. Installation and per-host configuration are covered on the MCP page. Once installed, the agent may formulate the graph in natural language and dispatch it without further intervention.