> **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 Akta Pro

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

**Authentication:** API Key
**Categories:** Analytics, Search
**Tools:** 1: 1 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=AKTAPRO)

## 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 Akta Pro connection

   In **AgentKit > Connections**, create an Akta Pro 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 = 'aktapro'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize Akta Pro:', 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: 'aktapro_search_news',
     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 = "aktapro"
   identifier = "user_123"

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

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

   ```bash
   python quickstart.py
   ```

   Each user opens the link once and enters their Akta Pro 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: 'aktapro_search_news',
  toolInput: {},
  connector: 'aktapro',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="aktapro_search_news",
    tool_input={},
    connection_name="aktapro",
    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.

### `aktapro_search_news`

Search News Signals · Read-only

Search company news signals with filters for company, industry, sentiment, entities, and date range. Returns article title, URL, publisher, sentiment, AI summary, and classification metadata.

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

Inputs:

- `blacklisted` (`string`, optional): Comma-separated publisher domains to exclude.
- `company` (`string`, optional): Company website URL or company UUID to filter news for. Mutually exclusive with primary_company.
- `countries` (`string`, optional): Comma-separated 3-letter ISO country codes to filter by.
- `end_date` (`string`, optional): End date filter, format YYYY-MM-DD. Defaults to today.
- `entity_event_list` (`string`, optional): Comma-separated events to filter by.
- `entity_location_list` (`string`, optional): Comma-separated locations to filter by.
- `entity_person_list` (`string`, optional): Comma-separated person names to filter by.
- `entity_product_list` (`string`, optional): Comma-separated products to filter by.
- `iab_code_list` (`string`, optional): Comma-separated IAB codes to filter by.
- `industry` (`string`, optional): Comma-separated industry codes to filter by.
- `iptc_code_list` (`string`, optional): Comma-separated IPTC codes to filter by.
- `limit` (`integer`, optional): Number of results to return. Default 10, max 1000.
- `naics_code_list` (`string`, optional): Comma-separated NAICS codes to filter by.
- `news_score_list` (`string`, optional): Filter by newsworthiness score: High, Medium, Low, or all (default). One of: `High`, `Medium`, `Low`, `all`.
- `offset` (`integer`, optional): Offset for pagination. Default 0.
- `primary_company` (`string`, optional): Company website URL or UUID where the company is the primary subject of the article. Mutually exclusive with company.
- `query` (`string`, optional): Topic or keyword search. Mutually exclusive with title.
- `sentiment_list` (`string`, optional): Comma-separated sentiment filters: positive, negative, neutral, or all.
- `sic_code_list` (`string`, optional): Comma-separated SIC codes to filter by.
- `start_date` (`string`, optional): Start date filter, format YYYY-MM-DD.
- `title` (`string`, optional): Search by article title. Mutually exclusive with query.
- `type_list` (`string`, optional): Comma-separated news category filters.
- `unique_article` (`boolean`, optional): Group similar articles together.

Example input: `{}`

## Related

Other ways to connect Akta Pro:

- [MCP server](/agentkit/connectors/aktapromcp/): Vendor MCP, API key, 17 tools

Other Analytics connectors ([all 94](/agentkit/connectors/?category=analytics)):

- [Microsoft 365](/agentkit/connectors/microsoft365/): Scalekit connector, OAuth, 317 tools
- [HubSpot](/agentkit/connectors/hubspot/): Scalekit connector, OAuth, 457 tools
- [Snowflake](/agentkit/connectors/snowflake/): Scalekit connector, OAuth, 42 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 |
