# sUNC Data

{% hint style="info" %}
**Reminder:** You can access these endpoints on **any** of our domains without restrictions. If you hit our **rate limit**, reduce the **interval** at which you are fetching our services.

The user-agent **`WEAO-3PService`** is required to access any of WEAO's resources.

**Main Domains:**

* weao.xyz
* whatexpsare.online

**Alternatives:**

* whatexploitsaretra.sh
* weao.gg
  {% endhint %}

## Retrieving sUNC API Data

Returns executor test metadata and function compatibility results.

You can obtain all sUNC data via this route:&#x20;

<mark style="color:green;">`GET`</mark>  `https://weao.xyz/api/sunc?scrap=[suncScrap]&key=[suncKey]`&#x20;

{% hint style="info" %}
You can obtain `suncScrap` , `suncKey` from our [exploits](https://docs.weao.xyz/weao-api-reference/exploits "mention") API for any executor
{% endhint %}

| Query Params | Type   | What it is              |
| ------------ | ------ | ----------------------- |
| `scrap`      | string | suncScrap id            |
| `key`        | string | Key to access suncScrap |

Example Response:&#x20;

{% tabs %}
{% tab title="200 (OK)" %}

```json
{
  "timestamp": 1769572300.476,
  "version": "2.1.5",
  "bibip": false,
  "timeTaken": 28.81,
  "executor": "Exec",
  "outdated": false,
  "tests": {
    "passed": [],
    "failed": []
  }
}
```

{% endtab %}

{% tab title="429 (Rate limit)" %}

```json
This is only an example, your response might be different!
{
    "error": "Too Many Requests",
    "rateLimitInfo": {
        "remainingTime": 120,
        "requestsRemaining": 0,
        "resetTime": 1753410630360
    }
}
```

{% endtab %}
{% endtabs %}

## Top level fields

| Field       | Type      | What it is                                            |
| ----------- | --------- | ----------------------------------------------------- |
| `timestamp` | `number`  | Unix timestamp of when the sUNC result was generated  |
| `version`   | `string`  | Version of the executor/build being tested            |
| `bibip`     | `boolean` | Boolean flag returned by the API                      |
| `timeTaken` | `number`  | Total time taken to complete the test run, in seconds |
| `executor`  | `string`  | Name of the executor being tested                     |
| `outdated`  | `boolean` | Whether the executor/build is outdated                |
| `tests`     | `object`  | Contains categorized test results                     |

## Tests object

| Field    | Type    | What it is                |
| -------- | ------- | ------------------------- |
| `passed` | `array` | List of tests that passed |
| `failed` | `array` | List of tests that failed |

## Passed test object

Each entry inside `tests.passed` uses this structure:

| Field         | Type     | What it is                                  |
| ------------- | -------- | ------------------------------------------- |
| `name`        | `string` | Name of the tested function or feature      |
| `description` | `string` | Short explanation of what the function does |
| `library`     | `string` | Library/category the function belongs to    |
| `status`      | `string` | Test result, always `passed` for this array |

Example:&#x20;

```json
{
"name": "getrawmetatable",
"description": "Returns the metatable of an object, bypassing the __metatable field.",
"library": "Metatable",
"status": "passed"
}
```

## Failed Test Object

Each entry inside `tests.failed` uses this structure:

| Field         | Type     | What it is                                            |
| ------------- | -------- | ----------------------------------------------------- |
| `name`        | `string` | Name of the tested function or feature                |
| `description` | `string` | Short explanation of what the function does           |
| `library`     | `string` | Library/category the function belongs to              |
| `status`      | `string` | Test result, always `failed` for this array           |
| `reason`      | `string` | Explains why the test failed or could not be verified |

Example:&#x20;

```json
{
"name": "gethiddenproperty",
"description": "Returns the value of a hidden property of an object, which cannot be indexed normally.",
"library": "Instances",
"status": "failed",
"reason": "This is so FIRE 🔥🔥🔥"
}
```

## Notes

* `tests.passed` and `tests.failed` are separated into different arrays.
* Failed test objects include a `reason` field.
* `library` can be used to group functions in your frontend or documentation.
* `timestamp` is returned as a Unix timestamp with fractional precision.
