> For the complete documentation index, see [llms.txt](https://docs.coherent.global/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coherent.global/spark-apis/spark-openapi-specification/web-assembly-module-apis.md).

# Web Assembly Module APIs

Get the WebAssembly module (Wasm) `ZIP` bundle for a Spark service. This can be used to run Spark services locally.

## Reference by folder and service

> If using an API key, the API key group must contain user groups that are also assigned to \`Spark.GetNodegenZip.json\` or \`Spark.AllEncompassingProxy.json\`.

```json
{"openapi":"3.1.0","info":{"title":"Spark OpenAPI specification","version":"0.1.0"},"tags":[{"name":"WebAssembly module APIs","description":"Get the WebAssembly module (Wasm) `ZIP` bundle for a Spark service. This can be used to run Spark services locally."}],"servers":[{"url":"https://excel.{environment}.coherent.global","variables":{"environment":{"default":"myenvironment"}}}],"security":[{"bearerAuth":[]},{"tenantName":[],"apiKeyAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer token can be accessed from the user menu."},"tenantName":{"type":"apiKey","in":"header","name":"x-tenant-name","description":"Tenant name header required when using API key authentication."}},"parameters":{"tenant":{"name":"tenant","in":"path","required":true,"description":"Tenant is part of your sign-in URL and also available in the user menu.","schema":{"type":"string"}},"folder":{"name":"folder","in":"path","required":true,"description":"Folder associated with the API call.","schema":{"type":"string"}},"service":{"name":"service","in":"path","required":true,"description":"Service associated with the API call.","schema":{"type":"string"}}}},"paths":{"/{tenant}/api/v3/nodegen/getnodegenzipbyId/folders/{folder}/services/{service}":{"post":{"tags":["WebAssembly module APIs"],"summary":"Reference by folder and service","description":"If using an API key, the API key group must contain user groups that are also assigned to `Spark.GetNodegenZip.json` or `Spark.AllEncompassingProxy.json`.","operationId":"getNodegenZipByIdFoldersServices","parameters":[{"$ref":"#/components/parameters/tenant"},{"$ref":"#/components/parameters/folder"},{"$ref":"#/components/parameters/service"}],"responses":{"200":{"description":"OK","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}}}}}}}
```

## Reference by service\_id

> If using an API key, the API key group must contain user groups that are also assigned to \`Spark.GetNodegenZip.json\` or \`Spark.AllEncompassingProxy.json\`.

```json
{"openapi":"3.1.0","info":{"title":"Spark OpenAPI specification","version":"0.1.0"},"tags":[{"name":"WebAssembly module APIs","description":"Get the WebAssembly module (Wasm) `ZIP` bundle for a Spark service. This can be used to run Spark services locally."}],"servers":[{"url":"https://excel.{environment}.coherent.global","variables":{"environment":{"default":"myenvironment"}}}],"security":[{"bearerAuth":[]},{"tenantName":[],"apiKeyAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer token can be accessed from the user menu."},"tenantName":{"type":"apiKey","in":"header","name":"x-tenant-name","description":"Tenant name header required when using API key authentication."}},"parameters":{"tenant":{"name":"tenant","in":"path","required":true,"description":"Tenant is part of your sign-in URL and also available in the user menu.","schema":{"type":"string"}},"serviceId":{"name":"serviceId","in":"path","required":true,"description":"`service_id` of the requested service.","schema":{"type":"string","format":"uuid"}}}},"paths":{"/{tenant}/api/v3/nodegen/getnodegenzipbyId/service/{serviceId}":{"post":{"tags":["WebAssembly module APIs"],"summary":"Reference by service_id","description":"If using an API key, the API key group must contain user groups that are also assigned to `Spark.GetNodegenZip.json` or `Spark.AllEncompassingProxy.json`.","operationId":"getNodegenZipByService","parameters":[{"$ref":"#/components/parameters/tenant"},{"$ref":"#/components/parameters/serviceId"}],"responses":{"200":{"description":"OK","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}}}}}}}
```

## Reference by version\_id

> If using an API key, the API key group must contain user groups that are also assigned to \`Spark.GetNodegenZip.json\` or \`Spark.AllEncompassingProxy.json\`.

```json
{"openapi":"3.1.0","info":{"title":"Spark OpenAPI specification","version":"0.1.0"},"tags":[{"name":"WebAssembly module APIs","description":"Get the WebAssembly module (Wasm) `ZIP` bundle for a Spark service. This can be used to run Spark services locally."}],"servers":[{"url":"https://excel.{environment}.coherent.global","variables":{"environment":{"default":"myenvironment"}}}],"security":[{"bearerAuth":[]},{"tenantName":[],"apiKeyAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer token can be accessed from the user menu."},"tenantName":{"type":"apiKey","in":"header","name":"x-tenant-name","description":"Tenant name header required when using API key authentication."}},"parameters":{"tenant":{"name":"tenant","in":"path","required":true,"description":"Tenant is part of your sign-in URL and also available in the user menu.","schema":{"type":"string"}},"versionId":{"name":"versionId","in":"path","required":true,"description":"`version_id` of the requested service.","schema":{"type":"string","format":"uuid"}}}},"paths":{"/{tenant}/api/v3/nodegen/getnodegenzipbyId/version/{versionId}":{"post":{"tags":["WebAssembly module APIs"],"summary":"Reference by version_id","description":"If using an API key, the API key group must contain user groups that are also assigned to `Spark.GetNodegenZip.json` or `Spark.AllEncompassingProxy.json`.","operationId":"getNodegenZipByVersion","parameters":[{"$ref":"#/components/parameters/tenant"},{"$ref":"#/components/parameters/versionId"}],"responses":{"200":{"description":"OK","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}}}}}}}
```
