Keys
Send your key in the Authorization header. Create one on API keys. Every answer is JSON: success, then response or error.
curl "https://alion.io/api/company.match?domain=stripe.com" \ -H "Authorization: Bearer YOUR_KEY"
Prices, limits and errors
Every response says what it cost in meta.credits_charged and what is left in meta.credits_left. 1 credit = $0.10.
| A company with basic info | 0.02 credit |
| Each extra slice of a company | +0.05 credit |
| A job | 0.02 credit |
| A market slice | 1 credit |
| Finding a company, counting results | free |
| HTTP | What happened |
|---|---|
| 401 | No key, or the key was deleted |
| 402 | Not enough credits: the error says how many the call needs and how many are left |
| 404 | No company or job matches |
| 422 | A parameter is wrong: the error names it and suggests the closest value |
| 429 | A limit is reached: wait the seconds in Retry-After |
| Limit | How much |
|---|---|
| Requests | 60 a minute and 1,000 a day per key |
| Rows a day per account | 10,000 companies and 20,000 jobs, all keys and AI apps together; resets at 00:00 UTC |
| Depth of one query | 1,000 companies or 2,000 jobs; narrow the filters to read further |
Need more for a product or a data deal? Write to [email protected].
One company
Send a website or a name and the slices you need. Basic info 0.02 credit, each slice with data in it +0.05. A slice we know nothing about is left out and not paid for.
curl "https://alion.io/api/company.get?domain=stripe.com&slices=tech,funding,hiring" \ -H "Authorization: Bearer YOUR_KEY"
| You send | What it is |
|---|---|
| domain | The company website, like stripe.com. Or name, or id from an earlier answer |
| slices | Any of products, tech, funding, hiring, offices, pay, visa, legal_entity, or all |
| You get | What it is |
|---|---|
| id, name, domain, logo, description | Who they are; the logo is a 256 px image url |
| industry, segment, size, founded, hq, links | The basics; unknown fields are null |
| products, tech, funding | What they sell, what their jobs ask for, the money raised |
| hiring, offices, pay, visa | Open jobs and the trend, where they work, what they pay, visa sponsorship by country |
| legal_entity | The registered name, country, status and registration numbers |
List of companies
Companies of a niche, 0.02 credit each. Counting is free: add count_only=1. Rows can carry the products, tech, funding and hiring slices (+0.05 each).
curl "https://alion.io/api/company.getList?industry=fintech&country=DE&size=201-500,501-1000&limit=25" \ -H "Authorization: Bearer YOUR_KEY"
| You send | What it is |
|---|---|
| industry | One or more, comma separated: fintech, healthcare, gaming… |
| country | ISO codes or names, comma separated |
| size | 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5000+ |
| founded_from, founded_to | Years |
| technology | A technology the company requires in its job postings, named as it is usually written: Snowflake, Kubernetes, React (comma separated for any of several) |
| hiring | true: only companies with open jobs |
| slices | products, tech, funding, hiring |
| limit, cursor | Up to 50 rows; pass next_cursor back for the next page, up to 20 pages (1,000 companies) for one set of filters |
Jobs
Live jobs with their company, filtered like the jobs page. 0.02 credit each, up to 100 a request.
curl "https://alion.io/api/job.getList?locations=germany,poland&technologies=python&work_mode=remote" \ -H "Authorization: Bearer YOUR_KEY"
{
"success": true,
"response": {
"items": [
{
"id": 1048040,
"url": "https://alion.io/job/openai-senior-backend-engineer-go",
"title": "Senior Backend Engineer (Go)",
"description": "We are looking for a backend engineer to build ...",
"company": {"id": 2, "name": "OpenAI", "domain": "openai.com", "logo": "https://alion.io/storage/...webp"},
"seniority": "senior",
"work_mode": "hybrid",
"countries": ["US"],
"salary": {"min": 250000, "max": 380000, "currency": "USD", "period": "year"},
"technologies": ["Go", "Kubernetes", "PostgreSQL"],
"first_seen_at": "2026-09-13T20:12:28Z"
}
],
"has_more": true,
"next_cursor": "MTc4OTMzMDM0ODoxMDQ4MDQw"
}
}Next page: send the same request with cursor set to next_cursor, until has_more is false. One query goes up to 20 pages (2,000 jobs); for more, narrow it, for example with posted_since. Link people to the job's url.
| You send | Example |
|---|---|
| Country or city | locations=germany,poland · locations=berlin · locations=de |
| Role | roles=backend,frontend |
| Technology | technologies=python,react |
| Seniority | seniority=senior,lead |
| Work mode | work_mode=remote (or office) |
| Employment | employment=full-time |
| Industry | industries=fintech,ai |
| Company | company=stripe.com |
| Pay from, USD a year | salary_min=80000 |
| Words in the title or text | search=kubernetes |
| New since | posted_since=24h · posted_since=2026-10-01 |
| Only trusted jobs | trust=verified drops jobs we score as likely ghost; the default all keeps them with their trust.level |
| Rows | limit=50 (default and max 100) |
| Description | description_format=html · description_format=none |
Also: languages, english_level, education, benefits, remote_locations. Case does not matter. A name we do not know returns 422 saying which one. The names we accept, free:
curl "https://alion.io/api/dict.getList?name=roles" \ -H "Authorization: Bearer YOUR_KEY"
Other lists: countries, technologies&q=py, seniority, markets. One job by its id or url:
curl "https://alion.io/api/job.get?id=1048040" \ -H "Authorization: Bearer YOUR_KEY"
Job fields
A field is null when we do not know it. Times are UTC (ISO 8601), pay is in the posted currency plus USD.
| Field | What it is |
|---|---|
| id, url, title | The job id, its page on Alion (send people here) and its title |
| description | The full text: plain, or HTML with description_format=html |
| company | id, name, domain, url, logo, description, industry, industry_segment, size_band, headquarters (city, country), is_staffing_agency, ats_vendor (Greenhouse, Lever, Workday…), open_jobs |
| role, role_family | Backend, Data Engineering… (dict.getList?name=roles) |
| seniority | intern, junior, middle, senior, staff, lead, head |
| employment_type | full_time, part_time, contractor, cofounder, freelance, internship |
| work_mode | on_site, hybrid, remote |
| remote_scope | For remote jobs: unspecified, stated_countries, stated_regions, worldwide |
| remote_scope_basis | Where the zone came from: board_field and posting_text are the employer's words; inferred_payroll_markers, inferred_company_offices, inferred_city, inferred_board_market, inferred_posting_language are our reading; board_flag_no_place and conflicting leave it unspecified |
| remote_working_hours | The working clock a remote job asks for: label, utc_offset_min, utc_offset_max (hours) |
| hiring_geo_confidence | explicit, structured, inferred |
| locations, countries | Offices ("Berlin, Germany") and their ISO codes ("DE") |
| hiring_countries | For remote jobs: ISO codes of the countries the company can hire in |
| salary | min, max, currency, period (year, month, week, day, hour), gross, usd_annual; null when not posted |
| salary_estimate | When no pay is posted: min_usd, max_usd, period, method, sample_n (jobs it is based on) |
| experience_years_min | Years of experience asked for |
| visa_sponsorship, relocation_package, has_equity | true when the job offers it |
| technologies | What the job asks for: "Python", "PostgreSQL"… |
| status, closed_at, days_open | live or closed, when it closed, days it has been open |
| first_seen_at | When we found it; the list is sorted by it |
| employer_posted_date | The date on the employer's board |
| last_verified_at, board_verified | When it was last confirmed; true when the employer's board confirmed it in the last two days |
| trust.level, trust.repost_count | ok, stale (open unusually long) or ghost (reposted many times without hiring); how many times it was reposted |
| ids | role_id, seniority_id, employment_id, remote_id: the same values as ids, for the *_ids filters |
AI agents (MCP)
The same data as tools for Claude, ChatGPT, Cursor and Codex at https://alion.io/mcp, at the same prices. How to connect: AI agents.
