# API Integration

## Sonoran JS - NPM Library

Sonoran CMS offers a complete Node API library from NPM!

`npm i @sonoransoftware/sonoran.js`

[Learn more about our NPM library](https://www.npmjs.com/package/@sonoransoftware/sonoran.js)!

## How are API calls sent?

All API calls are sent via an HTTP POST with a JSON formatted body.

## Can I integrate this with my gamemode/framework?

Yes, our API calls can be integrationed into nearly any gamemode with nearly any programming language.

We provide several drag-and-drop resources written in JS/TS.

You can also write your own script using our API endpoints:

{% content-ref url="/pages/ZNAF62QB8L0hhVHc33wp" %}
[API Endpoints](/cms/developer-api-documentation/api-integration/api-endpoints.md)
{% endcontent-ref %}

The newer REST-style v2 surface is documented here, with one page per endpoint:

{% content-ref url="/pages/qfkBKS3IncaC8Z8Ca7fn" %}
[API Endpoints V2](/cms/developer-api-documentation/api-integration/api-endpoints-v2.md)
{% endcontent-ref %}

## Are there rate limits?

Yes, Sonoran CMS will automatically block any malicious or spammed traffic. While we don't publicly publish these limits, it's not best to not make more than one call per second for an extended period of time.

{% content-ref url="/pages/meAjTqMmI3tZpJCR1fPV" %}
[Getting Started](/cms/developer-api-documentation/api-integration/getting-started.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sonoransoftware.com/cms/developer-api-documentation/api-integration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
