Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Ocean.io

Scalekit connector
Open markdown

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

Tools
32
What they doRead · write · destructive
24 · 7 · 124 read7 write1 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 Ocean.io connection

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

    Each user opens the link once and enters their Ocean.io 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
  • ocean_attribute_segmentation_domainsAssign each input domain to the closest segment of a segmentation with a 0-1 match score.Read-only

    Attribute Domains to Segments

    Assign each input domain to the closest segment of a segmentation with a 0-1 match score. Returns one result per input domain in input order, the number requested and the number attributed. Use this tool to place new accounts into segments. The segmentation must have status SUCCESSFUL first. Requires a segmentationId from ocean_create_segmentation.

    Inputs

    domainsarrayrequired
    Domains to attribute (max 1000).
    segmentation_idintegerrequired
    Numeric id of the segmentation, returned by Create Segmentation.
  • ocean_autocomplete_companiesSuggest companies from the start of a name or domain.Read-only

    Autocomplete Companies

    Suggest companies from the start of a name or domain. Returns matching companies with domain, name and logo. Use this tool to turn a typed company name into a domain for lookalike searches or lookups.

    Inputs

    namestringrequired
    Beginning of the name or the domain of a company
    countryFiltersarray
    List of countries to filter for the autocompletion
    excludeDomainsarray
    List of domains to exclude from the results
    forLookalikeSearchboolean
    When `false`, returns all matching companies without domain validation or status filters. WARNING: Do not set this parameter to `false` if the autocomplete results will be used as input for a lookalike search.
  • ocean_autocomplete_job_titlesSuggest job titles from the start of a title.Read-only

    Autocomplete Job Titles

    Suggest job titles from the start of a title. Returns an array of matching job titles. Use this tool to find job title values for people filters.

    Inputs

    querystringrequired
    Beginning of the job title
    limitinteger
    Number of job titles to return. Default is 5 if not specified, maximum is 15.
  • ocean_autocomplete_keywordsSuggest keywords from the start of a keyword.Read-only

    Autocomplete Keywords

    Suggest keywords from the start of a keyword. Returns an array of matching keywords. Use this tool to find valid keyword values for company filters.

    Inputs

    querystringrequired
    Beginning of the keyword
    limitinteger
    Number of keywords to return. Default is 5 if not specified, maximum is 15.
  • ocean_autocomplete_locationsSuggest locations from the start of a place name.Read-only

    Autocomplete Locations

    Suggest locations from the start of a place name. Returns matching locations with name, country code, filter code and parent location. Use this tool to find valid location values for company or people filters.

    Inputs

    querystringrequired
    Beginning of the location
    limitinteger
    Number of locations to return. Default is 5 if not specified, maximum is 15.
    locationTypestring
    Whether to suggest locations for company searches or people searches.one of companiespeople
  • ocean_autocomplete_skillsSuggest skills from the start of a skill name.Read-only

    Autocomplete Skills

    Suggest skills from the start of a skill name. Returns an array of matching skills. Use this tool to find skill values for people filters.

    Inputs

    querystringrequired
    Beginning of the skill name
    limitinteger
    Number of skills to return. Default is 5 if not specified, maximum is 15.
  • ocean_enrich_companyMatch one company against Ocean.io's database and return its enriched profile.Read-only

    Enrich Company

    Match one company against Ocean.io's database and return its enriched profile. Returns the company's domain, name, size, industries, technologies, locations, contact details, and credits used. Use this tool for a single company described by a domain, name or other known details. Use ocean_lookup_companies for many domains at once. Consumes Ocean.io credits.

    Inputs

    companyobject
    Known details about the company to match, as a JSON object. Provide at least a domain or a name; more fields (city, countryCode, linkedin, phone) improve matching. Example: {"domain": "stripe.com"}.
    fieldsarray
    Company fields to return. If omitted, Ocean.io returns its default field set.
    peoplearray
    Known details about people at the company to help match it, as a list of JSON objects with fields such as name, jobTitle, email and linkedin. Example: [{"name": "Jane Doe", "jobTitle": "CEO"}].
  • ocean_enrich_personMatch one person against Ocean.io's database and return their enriched profile.Read-only

    Enrich Person

    Match one person against Ocean.io's database and return their enriched profile. Returns the person's name, job title, LinkedIn URL, location, seniorities, departments, experience, and credits used. Use this tool for a single contact described by a name, LinkedIn URL, email or Ocean id. Use ocean_lookup_people for many LinkedIn handles at once. Consumes Ocean.io credits.

    Inputs

    personobjectrequired
    Known details about the person to match, as a JSON object. Provide an Ocean id, a LinkedIn URL, an email, or a name together with company details. Example: {"linkedin": "https://www.linkedin.com/in/jane-doe"}.
    companyobject
    Known details about the person's employer to help match, as a JSON object with fields such as domain or name. Example: {"domain": "stripe.com"}.
    revealEmailsobject
    Set to include emails in the result as a JSON object with includeEmails true. One email credit is charged per verified email. An optional webhookUrl receives emails that need background verification. Example: {"includeEmails": true}.
    revealPhonesobject
    Set to include phone numbers in the result as a JSON object with includePhones true. One phone credit is charged per verified phone. An optional webhookUrl receives phones that need background verification. Example: {"includePhones": true}.