# Retrieve Company Metadata from LinkedIn — Proxycurl

> Retrieve Company Metadata from LinkedIn URL. Cost: 1 credit/successful request See the documentation.

- Key: `proxycurl-retrieve-company-metadata-from-linkedin`
- Type: Action (Read-only)
- Version: 0.0.3
- App: Proxycurl (`proxycurl`) — https://pipedream.com/apps/proxycurl.md
- This page (HTML): https://pipedream.com/apps/proxycurl/actions/retrieve-company-metadata-from-linkedin
- Hints: read-only · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/proxycurl/actions/retrieve-company-metadata-from-linkedin/retrieve-company-metadata-from-linkedin.mjs

## Description

Retrieve Company Metadata from LinkedIn URL. Cost: 1 credit/successful request [See the documentation](https://nubela.co/proxycurl/docs#company-api-company-profile-endpoint).

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `url` | `string` | Yes | URL of the LinkedIn Company Profile to crawl. |
| `resolveNumericId` | `boolean` | No | Enable support for Company Profile URLs with numerical IDs that you most frequently fetch from Sales Navigator. We achieve this by resolving numerical IDs into vanity IDs with cached company profiles from LinkDB. |
| `categories` | `boolean` | No | Appends categories data of this company. It costs 1 extra credit per request. |
| `fundingData` | `boolean` | No | Returns a list of funding rounds that this company has received. It costs 1 extra credit per request. |
| `extra` | `boolean` | No | Enriches the Company Profile with extra details from external sources. Details include Crunchbase ranking, contact email, phone number, Facebook account, Twitter account, funding rounds and amount, IPO status, investor information, etc... .It costs 1 extra credit per request. |
| `exitData` | `boolean` | No | Returns a list of investment portfolio exits. It costs 1 extra credit per request. |
| `acquisitions` | `boolean` | No | Provides further enriched data on acquisitions made by this company from external sources. It costs 1 extra credit per request. |
| `useCache` | `boolean` | No | Fetches profile from cache regardless of age of profile. If profile is not available in cache, API will attempt to source profile externally. API will make a best effort to return a fresh profile no older than 29 days. Costs an extra 1 credit on top of the cost of the base endpoint. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "proxycurl",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "proxycurl-retrieve-company-metadata-from-linkedin",
  arguments: {
    url: "LinkedIn URL",
    resolveNumericId: true,
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "proxycurl-retrieve-company-metadata-from-linkedin",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    proxycurl: { authProvisionId: "apn_xxxxxxx" },
    url: "LinkedIn URL",
    resolveNumericId: true,
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "proxycurl-retrieve-company-metadata-from-linkedin",
    "configured_props": {
      "proxycurl": { "authProvisionId": "apn_xxxxxxx" },
      "url": "LinkedIn URL",
      "resolveNumericId": true
    }
  }'
```

---

- App: https://pipedream.com/apps/proxycurl.md · All apps: https://pipedream.com/apps
