Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to OpenAlex

Scalekit connector
Open markdown

The OpenAlex connector lets your AI agent act in each user's OpenAlex account. Each user connects their own OpenAlex access token once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 31 tools.

Tools
31
What they doRead · write · destructive
31 · 0 · 031 read0 write0 destructive
Users sign in with

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the OpenAlex connection

    In AgentKit > Connections, create an OpenAlex connection. The name you give it is the connection_name your code passes. See Configure connections.

  4. Authorize a user and make your first call

    quickstart.mts
    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 = 'openalex'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize OpenAlex:', 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: 'openalex_get_rate_limit',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user opens the link once and enters their OpenAlex credentials there. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • openalex_autocompleteSuggest OpenAlex entities of one type whose names match a partial string, for type-ahead look-ups.Read-only

    Autocomplete

    Suggest OpenAlex entities of one type whose names match a partial string, for type-ahead look-ups. Returns up to 10 matches with id, display_name, hint (authors for a work, institution for an author, host for a source, location for an institution), external_id (DOI, ORCID, ROR, ISSN), entity_type, works_count and cited_by_count. Use openalex_autocomplete to turn a name or partial title into an ID quickly, or to match an ID such as an ORCID or DOI. Use the openalex_search_* tools for full ranked results with paging.

    Inputs

    entity_typestringrequired
    Which entity type to suggest: works, authors, sources, institutions, topics, publishers, funders or keywords. Example: institutions.one of worksauthorssourcesinstitutionstopicspublishersfunderskeywords
    qstringrequired
    The partial name, title or ID to complete. External IDs such as an ORCID URL, DOI or OpenAlex ID are matched directly. Example: flori.
    filterstring
    Optional OpenAlex filter string applied before suggesting. Join attribute:value pairs with commas (AND). Use | between values for OR within one attribute (up to 100 values), ! before a value to negate it, > or < for numbers, and a dash for ranges (publication_year:2020-2024). Filter by OpenAlex IDs, not names: resolve a name to an ID with openalex_autocomplete or a search tool first. Example: country_code:us.
    searchstring
    Optional full-text search applied before suggesting, to narrow the candidates. Example: medical.
  • openalex_get_authorFetch one OpenAlex author by ID.Read-only

    Get Author

    Fetch one OpenAlex author by ID. Returns the full author record: id, orcid, display_name and name variants, works_count, cited_by_count, summary stats (h-index, i10-index), last known institutions, affiliations and top topics. Single-record lookups are free. Use openalex_get_author when you have the ID. Use openalex_search_authors to find a author by name or text, and openalex_list_authors to filter many.

    Inputs

    idstringrequired
    The author to fetch: an OpenAlex author ID (A5023888391) or an ORCID as a URL (https://orcid.org/0000-0001-6187-6610). Example: A5023888391.
    selectstring
    Comma-separated list of root-level fields to return instead of the full record. Nested fields such as open_access.is_oa are not allowed; select open_access instead. Example: id,orcid,display_name,works_count,cited_by_count.
  • openalex_get_funderFetch one OpenAlex funder by ID.Read-only

    Get Funder

    Fetch one OpenAlex funder by ID. Returns the full funder record: id, display_name, alternate titles, description, country code, ROR and other IDs, awards_count, works_count, cited_by_count and summary stats. Single-record lookups are free. Use openalex_get_funder when you have the ID. Use openalex_search_funders to find a funder by name or text, and openalex_list_funders to filter many.

    Inputs

    idstringrequired
    The OpenAlex funder ID to fetch. Example: F4320332161.
    selectstring
    Comma-separated list of root-level fields to return instead of the full record. Nested fields such as open_access.is_oa are not allowed; select open_access instead. Example: id,display_name,country_code,works_count.
  • openalex_get_institutionFetch one OpenAlex institution by ID.Read-only

    Get Institution

    Fetch one OpenAlex institution by ID. Returns the full institution record: id, ror, display_name, type, country code and geo location, parent and child institutions, works_count, cited_by_count and summary stats. Single-record lookups are free. Use openalex_get_institution when you have the ID. Use openalex_search_institutions to find a institution by name or text, and openalex_list_institutions to filter many.

    Inputs

    idstringrequired
    The institution to fetch: an OpenAlex institution ID (I136199984) or a ROR ID as a URL (https://ror.org/03vek6s52). Example: I136199984.
    selectstring
    Comma-separated list of root-level fields to return instead of the full record. Nested fields such as open_access.is_oa are not allowed; select open_access instead. Example: id,ror,display_name,country_code,works_count.
  • openalex_get_keywordFetch one OpenAlex keyword by ID.Read-only

    Get Keyword

    Fetch one OpenAlex keyword by ID. Returns the full keyword record: id, display_name, works_count and cited_by_count. Single-record lookups are free. Use openalex_get_keyword when you have the ID. Use openalex_search_keywords to find a keyword by name or text, and openalex_list_keywords to filter many.

    Inputs

    idstringrequired
    The keyword to fetch: its OpenAlex keyword ID, which is a lowercase hyphenated slug (the last part of https://openalex.org/keywords/machine-learning). Example: machine-learning.
    selectstring
    Comma-separated list of root-level fields to return instead of the full record. Nested fields such as open_access.is_oa are not allowed; select open_access instead. Example: id,display_name,works_count.
  • openalex_get_publisherFetch one OpenAlex publisher by ID.Read-only

    Get Publisher

    Fetch one OpenAlex publisher by ID. Returns the full publisher record: id, display_name, alternate titles, hierarchy level and parent publisher, country codes, works_count, cited_by_count and summary stats. Single-record lookups are free. Use openalex_get_publisher when you have the ID. Use openalex_search_publishers to find a publisher by name or text, and openalex_list_publishers to filter many.

    Inputs

    idstringrequired
    The OpenAlex publisher ID to fetch. Example: P4310320595.
    selectstring
    Comma-separated list of root-level fields to return instead of the full record. Nested fields such as open_access.is_oa are not allowed; select open_access instead. Example: id,display_name,hierarchy_level,works_count.
  • openalex_get_rate_limitCheck the connected OpenAlex API key's daily budget and how much of it is left.Read-only

    Get Rate Limit

    Check the connected OpenAlex API key's daily budget and how much of it is left. Returns the key's daily limit, usage so far today, remaining budget and time until the reset at midnight UTC. Free. Use openalex_get_rate_limit before a large batch of list or search calls, or after a 429 error.

    Inputs

    This tool takes no inputs.

  • openalex_get_sourceFetch one OpenAlex source by ID.Read-only

    Get Source

    Fetch one OpenAlex source by ID. Returns the full source record: id, issn_l and issn list, display_name, type, host organization (publisher), is_oa, is_in_doaj, APC prices, works_count, cited_by_count and summary stats. Single-record lookups are free. Use openalex_get_source when you have the ID. Use openalex_search_sources to find a source by name or text, and openalex_list_sources to filter many.

    Inputs

    idstringrequired
    The source to fetch: an OpenAlex source ID (S137773608) or an ISSN with the issn: prefix (issn:0028-0836). Example: S137773608.
    selectstring
    Comma-separated list of root-level fields to return instead of the full record. Nested fields such as open_access.is_oa are not allowed; select open_access instead. Example: id,issn_l,display_name,type,works_count.