> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://api.alsona.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://api.alsona.com/_mcp/server.

# List available signals

GET https://alsona.com/rest/accounts/{account_id}/signals

List the signal sources available to the account and the bundles they belong to.

Use a source `id` as a key in a campaign `settings.signal_sources` to enable it for that campaign.

Reference: https://api.alsona.com/api-reference/signals/list-available-signals

## Authentication

- `X-API-KEY` header (required) — API Key authentication via header

## Request

### Path parameters

- `account_id` (string, required)

## Response

### 200

Successful response

- `success` (boolean, required)
- `signal_bundles` (list of RestAccountsAccountIdSignalsGetResponsesContentApplicationJsonSchemaSignalBundlesItems, required) — Groups that signal sources belong to.
- `signal_sources` (list of RestAccountsAccountIdSignalsGetResponsesContentApplicationJsonSchemaSignalSourcesItems, required) — Signal sources available to the account.

## Types

### RestAccountsAccountIdSignalsGetResponsesContentApplicationJsonSchemaSignalBundlesItems

- `id` (string, required)
- `name` (string, required)

### RestAccountsAccountIdSignalsGetResponsesContentApplicationJsonSchemaSignalSourcesItems

- `id` (string, required) — Signal source key, as used in a campaign `settings.signal_sources` and in the `signal` field of campaign signals.
- `name` (string, required)
- `description` (string, required)
- `bundle` (string, required) — ID of the bundle (from `signal_bundles`) this source belongs to.
- `credits` (integer, required) — Credits used by this signal source.
- `options` (list of RestAccountsAccountIdSignalsGetResponsesContentApplicationJsonSchemaSignalSourcesItemsOptionsItems, optional) — Options the source can be configured with. Omitted when the source has none.
- `requires_keywords` (boolean, optional) — When `true`, the source needs `keywords` to be set in the campaign settings.
- `audiences` (list of RestAccountsAccountIdSignalsGetResponsesContentApplicationJsonSchemaSignalSourcesItemsAudiencesItems, optional) — Audiences the source can target (LinkedIn engagement only).

### RestAccountsAccountIdSignalsGetResponsesContentApplicationJsonSchemaSignalSourcesItemsOptionsItems

- `id` (string, required)
- `label` (string, required)
- `input` (RestAccountsAccountIdSignalsGetResponsesContentApplicationJsonSchemaSignalSourcesItemsOptionsItemsInput, optional) — Present when the option takes a user-provided value.

### RestAccountsAccountIdSignalsGetResponsesContentApplicationJsonSchemaSignalSourcesItemsAudiencesItems

- `id` (string, required)
- `label` (string, required)
- `description` (string, optional)

### RestAccountsAccountIdSignalsGetResponsesContentApplicationJsonSchemaSignalSourcesItemsOptionsItemsInput

Present when the option takes a user-provided value.

- `kind` (string, required) — `text` or `number`.
- `placeholder` (string, optional)
- `suffix` (string, optional)
- `default_value` (string, optional)

## Examples

**Response**

```json
{
  "success": true,
  "signal_bundles": [
    {
      "id": "high-intent",
      "name": "Hiring & Workforce"
    },
    {
      "id": "digital-social",
      "name": "Digital & Social"
    },
    {
      "id": "advertising",
      "name": "Ads & Demand Gen"
    },
    {
      "id": "reviews",
      "name": "Reviews"
    },
    {
      "id": "news-media",
      "name": "News & Media"
    },
    {
      "id": "thought-leadership",
      "name": "Events & Talks"
    },
    {
      "id": "technical",
      "name": "Tech & Dev Intel"
    },
    {
      "id": "financial",
      "name": "Financial"
    },
    {
      "id": "physical",
      "name": "Alt-Data"
    }
  ],
  "signal_sources": [
    {
      "id": "signal_hiring_headcount_momentum",
      "name": "Hiring & Headcount Momentum",
      "description": "Tracks workforce size and recent employee growth to spot sustained hiring and organizational expansion.",
      "bundle": "high-intent",
      "credits": 1,
      "options": [
        {
          "id": "current-headcount",
          "label": "Current Headcount"
        },
        {
          "id": "6m-growth",
          "label": "6M Growth"
        },
        {
          "id": "12m-growth",
          "label": "12M Growth"
        }
      ]
    },
    {
      "id": "signal_hiring_demand_momentum",
      "name": "Hiring Demand Momentum",
      "description": "Tracks current job openings and their recent growth to detect accelerating hiring demand.",
      "bundle": "high-intent",
      "credits": 1,
      "options": [
        {
          "id": "current-openings",
          "label": "Current Openings"
        },
        {
          "id": "3m-growth",
          "label": "3M Growth"
        },
        {
          "id": "6m-growth",
          "label": "6M Growth"
        }
      ]
    },
    {
      "id": "signal_hiring_velocity",
      "name": "Hiring Velocity",
      "description": "Tracks recent hires and 6-month hiring trends to identify companies actively accelerating workforce growth.",
      "bundle": "high-intent",
      "credits": 1
    },
    {
      "id": "signal_function_growth_momentum",
      "name": "Function Growth Momentum",
      "description": "Tracks hiring and employee growth by business function to show where a company is expanding.",
      "bundle": "high-intent",
      "credits": 1,
      "options": [
        {
          "id": "icp-functions",
          "label": "ICP-Relevant Functions"
        },
        {
          "id": "all-functions",
          "label": "All Functions"
        }
      ]
    },
    {
      "id": "signal_workforce_stability",
      "name": "Workforce Stability",
      "description": "Measures median employee tenure to indicate how established and stable the company's workforce is.",
      "bundle": "high-intent",
      "credits": 1,
      "options": [
        {
          "id": "greater-than",
          "label": "Greater than",
          "input": {
            "kind": "number",
            "suffix": "years",
            "default_value": "3"
          }
        },
        {
          "id": "less-than",
          "label": "Less than",
          "input": {
            "kind": "number",
            "suffix": "years",
            "default_value": "2"
          }
        }
      ]
    },
    {
      "id": "signal_interpreted_job_postings",
      "name": "Interpreted Job Postings",
      "description": "Searches and interprets recent job postings to uncover buying intent relevant to your ICP and offering.",
      "bundle": "high-intent",
      "credits": 4,
      "options": [
        {
          "id": "all-postings",
          "label": "All Relevant Job Postings"
        },
        {
          "id": "custom-role",
          "label": "Custom Role or Keyword",
          "input": {
            "kind": "text",
            "placeholder": "e.g. Head of RevOps"
          }
        }
      ]
    },
    {
      "id": "signal_comp_insights",
      "name": "Website Change Intelligence",
      "description": "Detects buying-relevant website changes, such as new products, pricing updates, or market expansion.",
      "bundle": "digital-social",
      "credits": 1,
      "options": [
        {
          "id": "all-changes",
          "label": "All Relevant Changes"
        },
        {
          "id": "product-changes",
          "label": "Product or Service Changes"
        },
        {
          "id": "pricing-changes",
          "label": "Pricing Changes"
        },
        {
          "id": "expansion-changes",
          "label": "Expansion Changes"
        },
        {
          "id": "custom-change",
          "label": "Custom Change",
          "input": {
            "kind": "text",
            "placeholder": "e.g. new integrations page"
          }
        }
      ]
    },
    {
      "id": "signal_linkedin_engagement",
      "name": "LinkedIn Audience Engagement",
      "description": "Finds people engaging with your market or solution topics on LinkedIn, as posters, commenters, or reactors.",
      "bundle": "digital-social",
      "credits": 1,
      "requires_keywords": true,
      "audiences": [
        {
          "id": "posters",
          "label": "Posters",
          "description": "People publishing about your topics"
        },
        {
          "id": "commenters",
          "label": "Commenters",
          "description": "People commenting on those posts"
        },
        {
          "id": "reactors",
          "label": "Reactors",
          "description": "People reacting to those posts"
        }
      ]
    },
    {
      "id": "signal_linkedin_competitor_engagement",
      "name": "LinkedIn Competitor Engagement",
      "description": "Finds prospects engaging with your competitors on LinkedIn through likes, comments, and shares.",
      "bundle": "digital-social",
      "credits": 1,
      "options": [
        {
          "id": "ai-competitors",
          "label": "AI-Detected Competitors"
        },
        {
          "id": "custom-competitors",
          "label": "Custom Competitors",
          "input": {
            "kind": "text",
            "placeholder": "e.g. Outreach, Salesloft"
          }
        }
      ]
    },
    {
      "id": "signal_linkedin_expert_engagement",
      "name": "LinkedIn Expert Engagement",
      "description": "Finds prospects engaging with relevant industry experts on LinkedIn through likes, comments, and shares.",
      "bundle": "digital-social",
      "credits": 1,
      "options": [
        {
          "id": "ai-experts",
          "label": "AI-Detected Experts"
        },
        {
          "id": "custom-experts",
          "label": "Custom Experts",
          "input": {
            "kind": "text",
            "placeholder": "e.g. Jason Lemkin, April Dunford"
          }
        }
      ]
    },
    {
      "id": "signal_social_surge_linkedin",
      "name": "Social Activity Surge on LinkedIn",
      "description": "Detects an unusual spike in company posting and engagement on LinkedIn versus its usual baseline.",
      "bundle": "digital-social",
      "credits": 1,
      "options": [
        {
          "id": "all-activity",
          "label": "All Activity"
        },
        {
          "id": "posting-surge",
          "label": "Posting Surge"
        },
        {
          "id": "engagement-surge",
          "label": "Engagement Surge"
        }
      ]
    },
    {
      "id": "signal_social_surge_x",
      "name": "Social Activity Surge on X",
      "description": "Detects an unusual spike in company posting and engagement on X versus its usual baseline.",
      "bundle": "digital-social",
      "credits": 1,
      "options": [
        {
          "id": "all-activity",
          "label": "All Activity"
        },
        {
          "id": "posting-surge",
          "label": "Posting Surge"
        },
        {
          "id": "engagement-surge",
          "label": "Engagement Surge"
        }
      ]
    },
    {
      "id": "signal_social_reactivation_linkedin",
      "name": "Social Reactivation on LinkedIn",
      "description": "Detects when a company resumes posting on LinkedIn after an extended period of inactivity.",
      "bundle": "digital-social",
      "credits": 1,
      "options": [
        {
          "id": "all-reactivations",
          "label": "All Reactivations"
        },
        {
          "id": "30-days",
          "label": "30+ Days Inactive"
        },
        {
          "id": "90-days",
          "label": "90+ Days Inactive"
        },
        {
          "id": "6-months",
          "label": "6+ Months Inactive"
        }
      ]
    },
    {
      "id": "signal_social_reactivation_x",
      "name": "Social Reactivation on X",
      "description": "Detects when a company resumes posting on X after an extended period of inactivity.",
      "bundle": "digital-social",
      "credits": 1,
      "options": [
        {
          "id": "all-reactivations",
          "label": "All Reactivations"
        },
        {
          "id": "30-days",
          "label": "30+ Days Inactive"
        },
        {
          "id": "90-days",
          "label": "90+ Days Inactive"
        },
        {
          "id": "6-months",
          "label": "6+ Months Inactive"
        }
      ]
    },
    {
      "id": "signal_recent_ads_google",
      "name": "Recent Google Ad Activity",
      "description": "Detects companies recently running Google Ads, signaling investment in paid acquisition.",
      "bundle": "advertising",
      "credits": 1,
      "options": [
        {
          "id": "currently-active",
          "label": "Currently Active"
        },
        {
          "id": "last-30-days",
          "label": "Active in Last 30 Days"
        },
        {
          "id": "last-90-days",
          "label": "Active in Last 90 Days"
        }
      ]
    },
    {
      "id": "signal_recent_ads_linkedin",
      "name": "Recent LinkedIn Ad Activity",
      "description": "Detects companies recently running LinkedIn Ads, signaling investment in demand generation.",
      "bundle": "advertising",
      "credits": 1,
      "options": [
        {
          "id": "currently-active",
          "label": "Currently Active"
        },
        {
          "id": "last-30-days",
          "label": "Active in Last 30 Days"
        },
        {
          "id": "last-90-days",
          "label": "Active in Last 90 Days"
        }
      ]
    },
    {
      "id": "signal_recent_ads_meta",
      "name": "Recent Meta Ad Activity",
      "description": "Detects companies recently running ads on Meta platforms, signaling investment in paid social.",
      "bundle": "advertising",
      "credits": 1,
      "options": [
        {
          "id": "currently-active",
          "label": "Currently Active"
        },
        {
          "id": "last-30-days",
          "label": "Active in Last 30 Days"
        },
        {
          "id": "last-90-days",
          "label": "Active in Last 90 Days"
        }
      ]
    },
    {
      "id": "signal_recent_ads_apple",
      "name": "Recent Apple Ad Activity",
      "description": "Detects companies recently running Apple Search Ads, signaling investment in paid acquisition.",
      "bundle": "advertising",
      "credits": 1,
      "options": [
        {
          "id": "currently-active",
          "label": "Currently Active"
        },
        {
          "id": "last-30-days",
          "label": "Active in Last 30 Days"
        },
        {
          "id": "last-90-days",
          "label": "Active in Last 90 Days"
        }
      ]
    },
    {
      "id": "signal_review_g2",
      "name": "G2 Review Velocity Spike",
      "description": "Detects an unusual spike in G2 review volume, across positive, negative, or all reviews.",
      "bundle": "reviews",
      "credits": 2,
      "options": [
        {
          "id": "all-reviews",
          "label": "All Reviews"
        },
        {
          "id": "positive-reviews",
          "label": "Positive Reviews"
        },
        {
          "id": "negative-reviews",
          "label": "Negative Reviews"
        }
      ]
    },
    {
      "id": "signal_review_trustpilot",
      "name": "Trustpilot Review Velocity Spike",
      "description": "Detects an unusual spike in Trustpilot review volume, across positive, negative, or all reviews.",
      "bundle": "reviews",
      "credits": 2,
      "options": [
        {
          "id": "all-reviews",
          "label": "All Reviews"
        },
        {
          "id": "positive-reviews",
          "label": "Positive Reviews"
        },
        {
          "id": "negative-reviews",
          "label": "Negative Reviews"
        }
      ]
    },
    {
      "id": "signal_review_capterra",
      "name": "Capterra Review Velocity Spike",
      "description": "Detects an unusual spike in Capterra review volume, across positive, negative, or all reviews.",
      "bundle": "reviews",
      "credits": 2,
      "options": [
        {
          "id": "all-reviews",
          "label": "All Reviews"
        },
        {
          "id": "positive-reviews",
          "label": "Positive Reviews"
        },
        {
          "id": "negative-reviews",
          "label": "Negative Reviews"
        }
      ]
    },
    {
      "id": "signal_review_google_maps",
      "name": "Google Maps Review Velocity Spike",
      "description": "Detects an unusual spike in Google Maps review volume, across positive, negative, or all reviews.",
      "bundle": "reviews",
      "credits": 2,
      "options": [
        {
          "id": "all-reviews",
          "label": "All Reviews"
        },
        {
          "id": "positive-reviews",
          "label": "Positive Reviews"
        },
        {
          "id": "negative-reviews",
          "label": "Negative Reviews"
        }
      ]
    },
    {
      "id": "signal_relevant_news_activity",
      "name": "Relevant News Activity",
      "description": "Finds buying-relevant news, such as expansions, investments, partnerships, leadership changes, and launches.",
      "bundle": "news-media",
      "credits": 6,
      "options": [
        {
          "id": "all-news",
          "label": "All Relevant News"
        },
        {
          "id": "expansion-investment",
          "label": "Expansion & Investment"
        },
        {
          "id": "partnerships-launches",
          "label": "Partnerships & Launches"
        },
        {
          "id": "custom-topic",
          "label": "Custom Topic",
          "input": {
            "kind": "text",
            "placeholder": "e.g. supply chain"
          }
        }
      ]
    },
    {
      "id": "signal_youtube",
      "name": "Podcast Signal Extractor",
      "description": "Interprets recent podcast conversations on YouTube, Spotify, and Apple Podcasts to uncover buying intent.",
      "bundle": "thought-leadership",
      "credits": 4,
      "options": [
        {
          "id": "all-platforms",
          "label": "All Platforms"
        },
        {
          "id": "youtube",
          "label": "YouTube"
        },
        {
          "id": "spotify",
          "label": "Spotify"
        },
        {
          "id": "apple-podcasts",
          "label": "Apple Podcasts"
        }
      ]
    },
    {
      "id": "signal_in_person_event_activity",
      "name": "In-Person Event Activity",
      "description": "Finds recent in-person company events relevant to what you sell, such as conferences, workshops, or meetups.",
      "bundle": "thought-leadership",
      "credits": 1
    },
    {
      "id": "signal_virtual_event_activity",
      "name": "Virtual Event Activity",
      "description": "Finds recent company-hosted webinars and virtual events relevant to what you sell.",
      "bundle": "thought-leadership",
      "credits": 1
    },
    {
      "id": "signal_tech_change",
      "name": "Technology Stack Changes",
      "description": "Detects tech stack additions, removals, or replacements that may signal migrations or new buying needs.",
      "bundle": "technical",
      "credits": 1,
      "options": [
        {
          "id": "icp-changes",
          "label": "ICP-Relevant Changes"
        },
        {
          "id": "added",
          "label": "Added"
        },
        {
          "id": "removed",
          "label": "Removed"
        },
        {
          "id": "replaced",
          "label": "Replaced"
        }
      ]
    },
    {
      "id": "signal_current_tech",
      "name": "Technology Fit",
      "description": "Analyzes the current tech stack to find product fit, competitive displacement, and technology gaps.",
      "bundle": "technical",
      "credits": 1,
      "options": [
        {
          "id": "all-technologies",
          "label": "All Relevant Technologies"
        },
        {
          "id": "custom-technology",
          "label": "Custom Technology",
          "input": {
            "kind": "text",
            "placeholder": "e.g. Snowflake"
          }
        }
      ]
    },
    {
      "id": "signal_github",
      "name": "GitHub Activity Intelligence",
      "description": "Reads public GitHub repositories for intent such as technology adoption, migrations, and integrations.",
      "bundle": "technical",
      "credits": 1,
      "options": [
        {
          "id": "all-activity",
          "label": "All Relevant Activity"
        },
        {
          "id": "technology-adoption",
          "label": "Technology Adoption"
        },
        {
          "id": "integrations-migrations",
          "label": "Integrations & Migrations"
        },
        {
          "id": "infrastructure-changes",
          "label": "Infrastructure Changes"
        }
      ]
    },
    {
      "id": "signal_sec_filings",
      "name": "SEC Filing Intelligence",
      "description": "Finds buying signals in SEC filings, such as expansion plans, new initiatives, and investment priorities.",
      "bundle": "financial",
      "credits": 1,
      "options": [
        {
          "id": "all-filings",
          "label": "All Relevant Filings"
        },
        {
          "id": "expansion-investment",
          "label": "Expansion & Investment"
        },
        {
          "id": "strategic-changes",
          "label": "Strategic Changes"
        },
        {
          "id": "emerging-needs",
          "label": "Emerging Needs"
        }
      ]
    },
    {
      "id": "signal_funding_activity",
      "name": "Funding Activity",
      "description": "Detects recent funding rounds and financing events using LinkedIn and Crunchbase company data.",
      "bundle": "financial",
      "credits": 1,
      "options": [
        {
          "id": "all-funding",
          "label": "All Funding Activity"
        },
        {
          "id": "recent-round",
          "label": "Recent Funding Round"
        },
        {
          "id": "capital-raised",
          "label": "Capital Raised"
        }
      ]
    },
    {
      "id": "signal_foot_traffic_spike",
      "name": "Foot Traffic Spike",
      "description": "Detects an unusual increase in visits to a company location compared with typical traffic levels.",
      "bundle": "physical",
      "credits": 2,
      "options": [
        {
          "id": "all-locations",
          "label": "All Relevant Locations"
        },
        {
          "id": "custom-location",
          "label": "Custom Location",
          "input": {
            "kind": "text",
            "placeholder": "e.g. Austin, TX"
          }
        }
      ]
    }
  ]
}
```

**SDK Code**

```python Response
import requests

url = "https://alsona.com/rest/accounts/account_id/signals"

headers = {"X-API-KEY": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript Response
const url = 'https://alsona.com/rest/accounts/account_id/signals';
const options = {method: 'GET', headers: {'X-API-KEY': '<apiKey>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Response
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://alsona.com/rest/accounts/account_id/signals"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("X-API-KEY", "<apiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Response
require 'uri'
require 'net/http'

url = URI("https://alsona.com/rest/accounts/account_id/signals")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<apiKey>'

response = http.request(request)
puts response.read_body
```

```java Response
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://alsona.com/rest/accounts/account_id/signals")
  .header("X-API-KEY", "<apiKey>")
  .asString();
```

```php Response
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://alsona.com/rest/accounts/account_id/signals', [
  'headers' => [
    'X-API-KEY' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp Response
using RestSharp;

var client = new RestClient("https://alsona.com/rest/accounts/account_id/signals");
var request = new RestRequest(Method.GET);
request.AddHeader("X-API-KEY", "<apiKey>");
IRestResponse response = client.Execute(request);
```

```swift Response
import Foundation

let headers = ["X-API-KEY": "<apiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://alsona.com/rest/accounts/account_id/signals")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```