Metadata-Version: 2.4
Name: aixai-labs
Version: 1.0.0
Summary: Official Python SDK for the AIxAI API — browse the service catalog and submit project inquiries. No API key required.
Project-URL: Homepage, https://www.aixai.co.in
Project-URL: Documentation, https://www.aixai.co.in/developers
Project-URL: API Specification, https://www.aixai.co.in/openapi.json
Project-URL: Agent Guidance, https://www.aixai.co.in/llms.txt
Project-URL: Source, https://github.com/vineetyad/AIxAI
Project-URL: Bug Tracker, https://github.com/vineetyad/AIxAI/issues
Author-email: AIxAI <HQ@aixai.co.in>
Maintainer-email: AIxAI <HQ@aixai.co.in>
License-Expression: MIT
License-File: LICENSE
Keywords: ai-agency,aixai,aixai-labs,api-client,india,mcp,sdk
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.8
Description-Content-Type: text/markdown

# aixai-labs

Official Python SDK for the [AIxAI](https://www.aixai.co.in) API.

AIxAI is an AI agency in Jaipur, India that builds and runs production AI systems: chatbots grounded in your own documents, workflow automation, data intelligence, and the pipelines underneath them.

The API is public and unauthenticated — there is no key to configure — and this package has **no runtime dependencies**.

```bash
pip install aixai-labs
```

The distribution is `aixai-labs`; the import is `aixai`.

## Browse the service catalog

```python
from aixai import AIxAI

client = AIxAI()

for service in client.iter_services():        # follows pagination for you
    print(service["slug"], "—", service["title"])

chatbots = client.get_service("custom-ai-chatbots")
print(chatbots["longDescription"])
print(chatbots["useCases"])
```

## Find the right service for a need

```python
for match in client.search("chatbot over our internal handbook"):
    print(match["score"], match["name"], match["url"])
```

## Submit a project inquiry

Every non-dry-run call delivers a real email to the AIxAI team. Only send one with the end user's consent, using their own reply-to address.

```python
# Rehearse first — validates the request without sending anything.
client.submit_inquiry(
    name="Ada Lovelace",
    email="ada@example.com",
    message="We want a RAG chatbot over our internal docs.",
    dry_run=True,
)

# Send for real.
result = client.submit_inquiry(
    name="Ada Lovelace",
    email="ada@example.com",
    message="We want a RAG chatbot over our internal docs.",
)
print(result["message"])
```

An `Idempotency-Key` is generated for you, so a retried request after a network failure replays the original response instead of delivering a second email. Pass `idempotency_key=...` to control it yourself.

There is also a dedicated sandbox that never delivers, whatever you pass:

```python
client.sandbox_inquiry(name="Ada", email="ada@example.com", message="testing")
```

## Errors

Every failure raises an exception carrying the API's structured error fields:

```python
from aixai import AIxAI, RateLimitError, ValidationError, AIxAIError

try:
    client.submit_inquiry(name="Ada", email="not-an-email", message="hi")
except ValidationError as exc:
    print(exc.code, exc.message, exc.hint)     # validation_error ...
except RateLimitError as exc:
    print("wait", exc.retry_after, "seconds")
except AIxAIError as exc:
    print(exc.status, exc.code)
```

Rate limits are 10 requests/minute for inquiries and 60 for the catalog, per IP.

## Command line

```bash
aixai services
aixai service custom-ai-chatbots
aixai search "automate invoice processing"
aixai contact --name "Ada Lovelace" --email ada@example.com --message "..." --dry-run
```

## Other ways in

- **MCP server** — `https://www.aixai.co.in/api/mcp` (Streamable HTTP, no auth), plus a documentation server at `/api/mcp-docs`
- **REST** — [OpenAPI specification](https://www.aixai.co.in/openapi.json)
- **Node CLI** — [`aixai-cli`](https://www.npmjs.com/package/aixai-cli)
- **Agent guidance** — [llms.txt](https://www.aixai.co.in/llms.txt)

## License

MIT. Contact: HQ@aixai.co.in
