# Up2Data API ({legacy}) > The API allows you to programmatically enrich LinkedIn profiles and companies. This documentation covers the Open API endpoints available for external integrations: enqueue profiles, companies, posts and Sales Navigator searches for bulk enrichment, or enrich a single profile or company synchronously. Authenticate with an API key exchanged for a short-lived JWT, then read results back by polling the queue endpoints or by webhook. Authenticate by exchanging an API key for an access token with `POST /api-auth/authenticate`, then send `Authorization: YOUR_ACCESS_TOKEN` on every other call. The base URL is `https://api.up2data.ai/api`. ## Guides - [Quickstart](https://up2data.ai/docs/legacy/guides/quickstart.md): Authenticate, enqueue a bulk enrichment, then poll for results - the full flow in one example. - [Authentication](https://up2data.ai/docs/legacy/guides/authentication.md): Exchange an API key for a JWT access token and use it on every request. - [Credits](https://up2data.ai/docs/legacy/guides/credits.md): How enrichment, activity and search rates work, plus reserve and refund rules. - [Queues and polling](https://up2data.ai/docs/legacy/guides/queues-and-polling.md): Track a queue with list and status, and poll until it completes. - [Webhooks](https://up2data.ai/docs/legacy/guides/webhooks.md): Receive enrichment results automatically instead of polling, with tags, retries and the callback item shape. - [Errors](https://up2data.ai/docs/legacy/guides/errors.md): Every error shape and status code the API returns, and which ones are billed. ## API reference - [All operations](https://up2data.ai/docs/legacy/index.md): Every operation, its method, path, credit cost and mode. - [Authenticate](https://up2data.ai/docs/legacy/api/auth-authenticate.md): Exchange an API key for a JWT access token. - [Enrich a profile (sync)](https://up2data.ai/docs/legacy/api/profiles-sync.md): Enrich a single LinkedIn profile right now and return the result directly. - [Enqueue profiles](https://up2data.ai/docs/legacy/api/profiles-bulk.md): Enqueue LinkedIn profiles for enrichment in bulk. - [Enqueue activity](https://up2data.ai/docs/legacy/api/profiles-activity.md): Enqueue LinkedIn profiles for activity enrichment. - [Enqueue posts](https://up2data.ai/docs/legacy/api/profiles-posts.md): Enqueue LinkedIn profiles and get back only the posts each one published. - [Enqueue comments](https://up2data.ai/docs/legacy/api/profiles-comments.md): Enqueue LinkedIn profiles and get back only the comments each one left. - [Enqueue reactions](https://up2data.ai/docs/legacy/api/profiles-reactions.md): Enqueue LinkedIn profiles and get back only the posts each one reacted to. - [Enqueue latest post](https://up2data.ai/docs/legacy/api/profiles-latest-post.md): Enqueue LinkedIn profiles for latest post enrichment. - [Enrich a company (sync)](https://up2data.ai/docs/legacy/api/companies-sync.md): Enrich a single LinkedIn company right now and return the result directly. - [Enqueue companies](https://up2data.ai/docs/legacy/api/companies-bulk.md): Enqueue LinkedIn companies for enrichment in bulk. - [Enqueue posts by URL](https://up2data.ai/docs/legacy/api/posts-by-url.md): Scrape individual LinkedIn posts from their own permalinks. - [Search and enrich](https://up2data.ai/docs/legacy/api/sales-search.md): Discover and enrich profiles and companies from Sales Navigator search URLs. - [List queue results](https://up2data.ai/docs/legacy/api/queues-list.md): List the enriched results of a queue. - [Check queue status](https://up2data.ai/docs/legacy/api/queues-status.md): Check the status of an enrichment queue. ## Schemas - [Profile](https://up2data.ai/docs/legacy/schemas/profile.md): The enriched LinkedIn profile object, returned directly by profiles-sync or found in result when a callback's type is "Profile". - [Company](https://up2data.ai/docs/legacy/schemas/company.md): The enriched company object, returned directly by companies-sync or found in result when a callback's type is "Company". Includes LinkedIn data and Crunchbase data when available. - [Activity](https://up2data.ai/docs/legacy/schemas/activity.md): One document per profile from profiles-activity, holding the posts it published, the comments it left and the posts it reacted to. A repost is not a separate list - it is a post with isRepost set and the original in repostedPost. - [Post](https://up2data.ai/docs/legacy/schemas/post.md): The most recent item a profile has published, returned by profiles-latest-post: one document per profile holding a single post, repost, reaction or comment. In a webhook callback the post fields sit under result.post next to result.profile. - [PostByUrl](https://up2data.ai/docs/legacy/schemas/post-by-url.md): A single LinkedIn post scraped from its own permalink by posts-by-url, keyed by the post's own URN. There is no profile field - the author arrives embedded in post.author. - [CallbackItem](https://up2data.ai/docs/legacy/schemas/callback-item.md): The envelope every webhook POST body item carries. type says what kind of record result holds.