# SAS Portal API API

> SAS Portal API API on Apizie: 24 endpoints (Returns a requested node., Updates an existing node., Deletes a node., Returns a list of requested customers., …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://apizie.tech/v1/analytics:googleapis-sasportal/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `analytics:googleapis-sasportal`
- Category: Analytics
- Status: byok
- Source: https://developers.google.com/spectrum-access-system/
- Page: https://apizie.tech/api/analytics/googleapis-sasportal
- OpenAPI: https://apizie.tech/api/analytics/googleapis-sasportal/openapi.json



## Endpoints

### Returns a requested node.
`GET https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-nodes-nodes-get` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Required. The name of the node. |

### Updates an existing node.
`POST https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-nodes-nodes-patch` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Output only. Resource name. |
| updateMask | string | no | Fields to be updated. |
| body | object | yes | JSON request body |

### Deletes a node.
`POST https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-nodes-nodes-delete` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Required. The name of the node. |

### Returns a list of requested customers.
`GET https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-customers-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| pageSize | integer | no | The maximum number of customers to return in the response. |
| pageToken | string | no | A pagination token returned from a previous call to ListCustomers that indicates where this listing should continue from. |

### Returns a list of SAS deployments associated with current GCP project. Includes whether SAS analytics has…
`GET https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-customers-list-gcp-project-deployments` (byok)

### Returns a list of legacy organizations.
`GET https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-customers-list-legacy-organizations` (byok)

### Migrates a SAS organization to the cloud. This will create GCP projects for each deployment and associate…
`POST https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-customers-migrate-organization` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Creates a new SAS deployment through the GCP workflow. Creates a SAS organization if an organization match…
`POST https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-customers-provision-deployment` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Setups the a GCP Project to receive SAS Analytics messages via GCP Pub/Sub with a subscription to BigQuery.…
`POST https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-customers-setup-sas-analytics` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Lists deployments.
`GET https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-nodes-nodes-deployments-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | string | no | The filter expression. The filter should have the following format: "DIRECT_CHILDREN" or format: "direct_children". The filter is case… |
| pageSize | integer | no | The maximum number of deployments to return in the response. |
| pageToken | string | no | A pagination token returned from a previous call to ListDeployments that indicates where this listing should continue from. |
| parent | string | yes | Required. The parent resource name, for example, "nodes/1", customer/1/nodes/2. |

### Creates a new deployment.
`POST https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-nodes-nodes-deployments-create` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| parent | string | yes | Required. The parent resource name where the deployment is to be created. |
| body | object | yes | JSON request body |

### Moves a node under another node or customer.
`POST https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-nodes-nodes-move` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Required. The name of the node to move. |
| body | object | yes | JSON request body |

### Lists devices under a node or customer.
`GET https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-nodes-nodes-devices-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | string | no | The filter expression. The filter should have one of the following formats: "sn=123454" or "display_name=MyDevice". sn corresponds to… |
| pageSize | integer | no | The maximum number of devices to return in the response. If empty or zero, all devices will be listed. Must be in the range [0, 1000]. |
| pageToken | string | no | A pagination token returned from a previous call to ListDevices that indicates where this listing should continue from. |
| parent | string | yes | Required. The name of the parent resource. |

### Creates a device under a node or customer.
`POST https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-nodes-nodes-devices-create` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| parent | string | yes | Required. The name of the parent resource. |
| body | object | yes | JSON request body |

### Creates a signed device under a node or customer.
`POST https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-nodes-nodes-devices-create-signed` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| parent | string | yes | Required. The name of the parent resource. |
| body | object | yes | JSON request body |

### Signs a device.
`POST https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-nodes-devices-sign-device` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Output only. The resource path name. |
| body | object | yes | JSON request body |

### Updates a signed device.
`POST https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-nodes-devices-update-signed` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Required. The name of the device to update. |
| body | object | yes | JSON request body |

### Lists nodes.
`GET https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-nodes-nodes-nodes-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | string | no | The filter expression. The filter should have the following format: "DIRECT_CHILDREN" or format: "direct_children". The filter is case… |
| pageSize | integer | no | The maximum number of nodes to return in the response. |
| pageToken | string | no | A pagination token returned from a previous call to ListNodes that indicates where this listing should continue from. |
| parent | string | yes | Required. The parent resource name, for example, "nodes/1". |

### Creates a new node.
`POST https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-nodes-nodes-nodes-create` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| parent | string | yes | Required. The parent resource name where the node is to be created. |
| body | object | yes | JSON request body |

### Generates a secret to be used with the ValidateInstaller.
`POST https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-installer-generate-secret` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Validates the identity of a Certified Professional Installer (CPI).
`POST https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-installer-validate` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not…
`POST https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-policies-get` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Sets the access control policy on the specified resource. Replaces any existing policy.
`POST https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-policies-set` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Returns permissions that a caller has on the specified resource.
`POST https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-policies-test` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

## Example
```
curl "https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-nodes-nodes-get" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the SAS Portal API API?
Create a free Apizie key, then send GET https://apizie.tech/v1/analytics:googleapis-sasportal/sasportal-nodes-nodes-get with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the SAS Portal API API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. SAS Portal API itself also needs your own key from googleapis.com.

### Can AI agents use the SAS Portal API API?
Yes. Add the Apizie MCP server (https://apizie.tech/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key analytics:googleapis-sasportal.

### What is the status of the SAS Portal API API?
Needs your own provider key (bring your own key)
