# setMultiParameters **Endpoint:** `POST https://firesim.cs.gsu.edu/api/setMultiParameters` Sets multiple simulation parameters in a single request, replacing individual calls to `setCellResolution`, `setCellSpaceLocation`, `setWindCondition`, and `setPointIgnition`. All parameters except `userToken` are optional. ## Parameters | Name | Type | Required | Default | Description | |------|------|----------|---------|-------------| | `userToken` | string | yes | — | Your simulation token. | | `x` | integer | no | — | Row of the ignition point. | | `y` | integer | no | — | Column of the ignition point. | | `lat` | number (double) | no | — | Center the simulation map on this latitude. | | `lng` | number (double) | no | — | Center the simulation map on this longitude. | | `windSpeed` | number (double) | no | 0 | Wind speed. Default 0. | | `windDirection` | number (double) | no | 0 | Wind direction in degrees (south=0, clockwise). Default 0. | | `cellResolution` | integer | no | 30 | Cubic area of each cell. Default 30. | | `cellDimension` | integer | no | 200 | Number of cells per column (x-axis). Default 200. | | `cellDimensionY` | integer | no | — | Number of cells per row (y-axis). Defaults to `cellDimension` when omitted. | ## Responses ### HTTP 200 Parameters set successfully. **Example:** ```json "Updated Settings: " ``` ### HTTP 500 Internal server error (Spring JSON). Returned when `userToken` is missing or invalid — the server cannot locate the simulation instance for that token. **Example:** ```json { "timestamp": "2026-05-20T16:42:11.088+00:00", "status": 500, "error": "Internal Server Error", "path": "/api/setMultiParameters" } ``` ## Examples ### Python ```python import requests base_url: str = "https://firesim.cs.gsu.edu/api/setMultiParameters/" params: dict[str, float | int | str] = { "userToken": "abc123xyz", "x": 100, # optional "y": 100, # optional "lat": 33.749, # optional "lng": -84.388, # optional "windSpeed": 5.0, # optional, default 0 "windDirection": 180.0, # optional, default 0 "cellResolution": 30, # optional, default 30 "cellDimension": 200, # optional, default 200 "cellDimensionY": 200, # optional } response = requests.post(base_url, params=params) print(response.text) ``` ### JavaScript ```javascript /** @type {string} */ const BASE_URL = "https://firesim.cs.gsu.edu/api/setMultiParameters/"; const params = { userToken: "abc123xyz", x: 100, // optional y: 100, // optional lat: 33.749, // optional lng: -84.388, // optional windSpeed: 5.0, // optional, default 0 windDirection: 180.0, // optional, default 0 cellResolution: 30, // optional, default 30 cellDimension: 200, // optional, default 200 cellDimensionY: 200, // optional }; const url = new URL(BASE_URL); Object.entries(params).forEach(([k, v]) => url.searchParams.set(k, v)); fetch(url.toString(), { method: "POST" }) .then(res => res.text()) .then(console.log); ``` ### cURL ```bash BASE_URL="https://firesim.cs.gsu.edu/api/setMultiParameters/" curl -s -X POST \ -G --data-urlencode "userToken=abc123xyz" \ -G --data-urlencode "x=100" \ # optional -G --data-urlencode "y=100" \ # optional -G --data-urlencode "lat=33.749" \ # optional -G --data-urlencode "lng=-84.388" \ # optional -G --data-urlencode "windSpeed=5.0" \ # optional, default 0 -G --data-urlencode "windDirection=180.0" \ # optional, default 0 -G --data-urlencode "cellResolution=30" \ # optional, default 30 -G --data-urlencode "cellDimension=200" \ # optional, default 200 -G --data-urlencode "cellDimensionY=200" \ # optional "$BASE_URL" ``` ### Java ```java import java.net.URI; import java.net.http.*; String BASE_URL = "https://firesim.cs.gsu.edu/api/setMultiParameters/"; String queryString = "userToken=abc123xyz" + "&" + "x=100" + "&" + // optional "y=100" + "&" + // optional "lat=33.749" + "&" + // optional "lng=-84.388" + "&" + // optional "windSpeed=5.0" + "&" + // optional, default 0 "windDirection=180.0" + "&" + // optional, default 0 "cellResolution=30" + "&" + // optional, default 30 "cellDimension=200" + "&" + // optional, default 200 "cellDimensionY=200"; // optional HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(BASE_URL + "?" + queryString)) .POST(HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); ``` ### Go ```go import ( "fmt" "io" "net/http" "net/url" ) baseURL := "https://firesim.cs.gsu.edu/api/setMultiParameters/" params := url.Values{} params.Set("userToken", "abc123xyz") params.Set("x", "100") // optional params.Set("y", "100") // optional params.Set("lat", "33.749") // optional params.Set("lng", "-84.388") // optional params.Set("windSpeed", "5.0") // optional, default 0 params.Set("windDirection", "180.0") // optional, default 0 params.Set("cellResolution", "30") // optional, default 30 params.Set("cellDimension", "200") // optional, default 200 params.Set("cellDimensionY", "200") // optional resp, _ := http.PostForm(baseURL, params) defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) ``` ### Rust ```rust use reqwest::blocking::Client; let base_url = "https://firesim.cs.gsu.edu/api/setMultiParameters/"; let params = vec![ ("userToken", "abc123xyz"), ("x", "100"), // optional ("y", "100"), // optional ("lat", "33.749"), // optional ("lng", "-84.388"), // optional ("windSpeed", "5.0"), // optional, default 0 ("windDirection", "180.0"), // optional, default 0 ("cellResolution", "30"), // optional, default 30 ("cellDimension", "200"), // optional, default 200 ("cellDimensionY", "200"), // optional ]; let client = Client::new(); let response = client.post(base_url).query(¶ms).send().unwrap(); println!("{}", response.text().unwrap()); ```