> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to Artificial Analysis

The Artificial Analysis connector lets your AI agent act in each user's Artificial Analysis account. Each user connects their own Artificial Analysis API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 6 tools.

**Authentication:** API Key
**Categories:** AI, Analytics
**Tools:** 6: 6 read, 0 write, 0 destructive
**Users sign in with:** API key
**Built by:** Scalekit connector
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=ARTIFICIALANALYSIS)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the Artificial Analysis connection

   In **AgentKit > Connections**, create an Artificial Analysis connection. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

4. ### Authorize a user and make your first call

   **Node.js** (`quickstart.mts`)

   ```typescript
   import { ScalekitClient } from '@scalekit-sdk/node'
   import 'dotenv/config'
   import { createInterface } from 'node:readline/promises'

   const scalekit = new ScalekitClient(
     process.env.SCALEKIT_ENVIRONMENT_URL,
     process.env.SCALEKIT_CLIENT_ID,
     process.env.SCALEKIT_CLIENT_SECRET,
   )
   const actions = scalekit.actions

   const connector = 'artificialanalysis'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize Artificial Analysis:', link)
   const rl = createInterface({ input: process.stdin, output: process.stdout })
   await rl.question('Press Enter after authorizing...')
   rl.close()

   // Make your first call
   const result = await actions.executeTool({
     connector,
     identifier,
     toolName: 'artificialanalysis_get_image_editing_leaderboard',
     toolInput: {},
   })
   console.log(result)
   ```

   ```bash
   npx tsx quickstart.mts
   ```

   **Python** (`quickstart.py`)

   ```python
   import os
   from scalekit import ScalekitClient
   from dotenv import load_dotenv
   load_dotenv()

   scalekit_client = ScalekitClient(
       env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),
       client_id=os.getenv("SCALEKIT_CLIENT_ID"),
       client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
   )
   actions = scalekit_client.actions

   connection_name = "artificialanalysis"
   identifier = "user_123"

   # Generate an authorization link for the user
   link_response = actions.get_authorization_link(
       connection_name=connection_name,
       identifier=identifier,
   )
   print("Authorize Artificial Analysis:", link_response.link)
   input("Press Enter after authorizing...")

   # Make your first call
   result = actions.execute_tool(
       tool_input={},
       tool_name="artificialanalysis_get_image_editing_leaderboard",
       connection_name=connection_name,
       identifier=identifier,
   )
   print(result)
   ```

   ```bash
   python quickstart.py
   ```

   Each user opens the link once and enters their Artificial Analysis credentials there. See [Authorize a user](/agentkit/tools/authorize/) for the full flow and statuses.

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'artificialanalysis_get_image_editing_leaderboard',
  toolInput: {},
  connector: 'artificialanalysis',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="artificialanalysis_get_image_editing_leaderboard",
    tool_input={},
    connection_name="artificialanalysis",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `artificialanalysis_get_image_editing_leaderboard`

Get Image Editing Leaderboard · Read-only

Get the Artificial Analysis image editing leaderboard: Elo ratings for models that edit an existing image from an instruction, from the Artificial Analysis arena.
Returns ranked models with id, name, slug, creator, Elo, rank, 95% confidence interval, arena appearances and release date. Only current models with at least 500 arena appearances are listed.
Use this to compare image editing models. Use artificialanalysis_get_text_to_image_leaderboard for models that generate new images from a text prompt.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `artificialanalysis_get_image_to_video_leaderboard`

Get Image-to-Video Leaderboard · Read-only

Get the Artificial Analysis image-to-video leaderboard: Elo ratings for models that turn a starting image into a video, from the Artificial Analysis arena.
Returns ranked models with id, name, slug, creator, Elo, rank, 95% confidence interval, arena appearances and release date. With include_categories=true, each model also has Elo broken down by style, subject-matter and format category. Only current models with at least 1,000 arena appearances are listed.
Use this to compare image animation models. Use artificialanalysis_get_text_to_video_leaderboard for models that generate video from a text prompt alone.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `include_categories` (`boolean`, optional): Set to true to add a categories list to each model, giving its Elo, 95% confidence interval and arena appearances for each combination of style, subject-matter and format category (for example Photorealistic, Nature, Moving camera). False or omitted returns overall ratings only. Example: true

Example input: `{}`

### `artificialanalysis_get_text_to_image_leaderboard`

Get Text-to-Image Leaderboard · Read-only

Get the Artificial Analysis text-to-image leaderboard: Elo ratings for models that generate images from a text prompt, from the Artificial Analysis arena.
Returns ranked models with id, name, slug, creator, Elo, rank, 95% confidence interval, arena appearances and release date. With include_categories=true, each model also has Elo broken down by style and subject-matter category. Only current models with at least 500 arena appearances are listed.
Use this to compare image generation models. Use artificialanalysis_get_image_editing_leaderboard for models that edit an existing image, and artificialanalysis_list_llm_models for language models.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `include_categories` (`boolean`, optional): Set to true to add a categories list to each model, giving its Elo, 95% confidence interval and arena appearances for each style and subject-matter category (for example General & Photorealistic, People: Portraits). False or omitted returns overall ratings only. Example: true

Example input: `{}`

### `artificialanalysis_get_text_to_speech_leaderboard`

Get Text-to-Speech Leaderboard · Read-only

Get the Artificial Analysis text-to-speech leaderboard: Elo ratings for models that turn text into spoken audio.
Returns the text-to-speech models with their Elo ratings.
Use this to compare speech generation models. Use artificialanalysis_get_text_to_video_leaderboard for video models and artificialanalysis_list_llm_models for language models.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `artificialanalysis_get_text_to_video_leaderboard`

Get Text-to-Video Leaderboard · Read-only

Get the Artificial Analysis text-to-video leaderboard: Elo ratings for models that generate video from a text prompt, from the Artificial Analysis arena.
Returns ranked models with id, name, slug, creator, Elo, rank, 95% confidence interval, arena appearances and release date. With include_categories=true, each model also has Elo broken down by style, subject-matter and format category. Only current models with at least 1,000 arena appearances are listed.
Use this to compare video generation from text. Use artificialanalysis_get_image_to_video_leaderboard for models that animate a starting image.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `include_categories` (`boolean`, optional): Set to true to add a categories list to each model, giving its Elo, 95% confidence interval and arena appearances for each combination of style, subject-matter and format category (for example Photorealistic, People, Moving camera). False or omitted returns overall ratings only. Example: true

Example input: `{}`

### `artificialanalysis_list_llm_models`

List LLM Models · Read-only

List the large language models that Artificial Analysis benchmarks, with their intelligence scores, token prices and speed.
Returns each model's stable id, name, slug and creator (id, name, slug); its evaluation scores, including the Artificial Analysis Intelligence, Coding and Math indexes and benchmarks such as MMLU-Pro, GPQA, HLE, LiveCodeBench, SciCode, MATH-500 and AIME; price per million input, output and blended (3:1) tokens in USD; median output tokens per second; and median time to first token in seconds. Speed and latency are measured with a medium (about 1k input token) prompt.
Use this to compare or choose language models. Use the media leaderboard tools, such as artificialanalysis_get_text_to_image_leaderboard, for image, speech and video models.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

## Related

Other AI connectors ([all 148](/agentkit/connectors/?category=ai)):

- [Chorus](/agentkit/connectors/chorus/): Scalekit connector, Username and password, 9 tools
- [Gong](/agentkit/connectors/gong/): Scalekit connector, OAuth, 69 tools
- [Jiminny](/agentkit/connectors/jiminny/): Scalekit connector, Access token, 27 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
