This writes to your real CRM and spends one credit per URL found, out of 500 a month. It can read LinkedIn live through your account. It only fills empty fields and never overwrites a URL.
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Groovin","colors":{"primary":"#f37546","light":"#d64baf","dark":"#040404"},"logo":{"light":"https://media.brand.dev/8a452a89-9e16-46a4-97fb-c1afa22cee62.svg","dark":"https://media.brand.dev/8a452a89-9e16-46a4-97fb-c1afa22cee62.svg"},"favicon":"https://media.brand.dev/f810fcbb-2382-4110-80c2-f249d1f9f172.png","api":{"playground":{"display":"interactive","proxy":false}},"navbar":{"links":[],"primary":{"type":"button","label":"Get Started","href":"https://groovin.ai"}},"fonts":{"heading":{"family":"Inter","weight":900},"body":{"family":"Inter","weight":400}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"groovin","hasAudioNarration":false,"actualSubdomain":"groovin","customDomains":["docs.groovin.ai"],"gitSource":{"type":"github","owner":"groovin-ai","repo":"groovin-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"","_id":"6aec7b9eb09eb89604ce751a"},"chroma":{"collectionId":"8246c8fd-0dd2-48d9-bcf0-bbf6abdc2cf3","liveDeploymentHistoryId":"6aecaa4b8029e5fb8e3f0b21","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aecaa4b8029e5fb8e3f0b21"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aeceeecd9f359d347c57fe3","clientVersion":"0.0.4071","searchFilterCounts":[{"language":"default","tag":"MCP and API","count":42},{"language":"default","tag":"REST API","count":19},{"language":"default","tag":"MCP Server","count":9},{"language":"default","tag":"LinkedIn","count":8},{"language":"default","tag":"Webhooks","count":7},{"language":"default","tag":"CRM contacts and companies","count":6},{"language":"default","tag":"Get started","count":5},{"language":"default","tag":"Safety and limits","count":5},{"language":"default","tag":"MCP","count":5},{"language":"default","tag":"Get Started","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"reference/api/find-linkedin-urls","slug":"/reference/api/find-linkedin-urls","pageMetadata":{"title":"Find missing LinkedIn URLs","description":"Find the LinkedIn URL of CRM contacts that have none, and save it on the contact. Groovin only saves a URL when the evidence is clear.","openapi":"reference/openapi.json POST /crm/contacts/find-linkedin-url","href":"/reference/api/find-linkedin-urls"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Find the LinkedIn URL of CRM contacts that have none, and save it on the contact. Groovin only saves a URL when the evidence is clear.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Danger,Heading,Table}=_components;if(!Danger)_missingMdxReference(`Danger`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(Danger,{children:_jsx(_components.p,{children:`This writes to your real CRM and spends one credit per URL found, out of 500 a month. It can read LinkedIn live through your account. It only fills empty fields and never overwrites a URL.`})}),`\n`,_jsx(Heading,{level:`2`,id:`what-this-call-does`,children:`What this call does`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`LinkedIn`})}),_jsx(_components.td,{children:`Live reads, within daily limits`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Your CRM`})}),_jsx(_components.td,{children:`Fills empty LinkedIn URL fields only`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Also`})}),_jsx(_components.td,{children:`1 credit per URL found, 500 credits a month`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Repeating it`})}),_jsxs(_components.td,{children:[`Resend only what is in `,_jsx(_components.code,{children:`not_processed`}),`, never the whole list. A second batch at the same time answers 409.`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`good-to-know`,children:`Good to know`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`not_found`}),` or `,_jsx(_components.code,{children:`ambiguous`}),` with an `,_jsx(_components.code,{children:`error`}),` means the search could not run in full. It does not prove the person is not on LinkedIn.`]}),`\n`,_jsx(_components.li,{children:`This route can run for more than a minute. A failure shown by your tool does not prove the batch stopped: check your contacts before running it again.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Your AI assistant reaches the same action through the MCP tool `,_jsx(_components.code,{children:`find_linkedin_profile_url`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Find missing LinkedIn URLs","description":"Find the LinkedIn URL of CRM contacts that have none, and save it on the contact. Groovin only saves a URL when the evidence is clear.","openapi":"reference/openapi.json POST /crm/contacts/find-linkedin-url","href":"/reference/api/find-linkedin-urls"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What this call does","slug":"what-this-call-does","depth":2,"children":[]},{"title":"Good to know","slug":"good-to-know","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"find_linkedin_profile_url","summary":"Find missing LinkedIn URLs","description":"Find the LinkedIn URL of CRM contacts that have none, and save it on the contact. Groovin only saves a URL when the evidence is clear.","tags":["CRM contacts and companies"],"requestBody":"4686c84b-cf23-41de-a983-7269f735157d","responses":{"200":"46e97f8d-e184-463b-8afa-01846f74e461","400":"17309a7a-f27d-489d-ab90-6c83c28bfe2c","401":"f8493f87-8c71-413d-be17-daa8c0390eb2","402":"5cf0749a-506b-4b40-b3a2-ab90e7f543b7","403":"60b2a38a-eadf-4c53-bca8-d28e8ea321eb","404":"8cb4981c-a10d-48a5-925f-1adf07d0ef63","409":"dceb83eb-3b1a-4d97-8ec9-4827ca04328a","429":"02c9b6d4-eb3b-434f-abab-cdd42648d840","500":"7918f368-d2b4-47be-bc27-cc0bb0906534","502":"a2bcb903-06c9-4867-8b3b-216e2ebf041f"},"method":"post","type":"path","servers":["a0487c26-68da-4177-9726-8d6498ae07a4"],"security":["3ed4ef1e-3328-437b-84d1-83f04b15cfea"],"path":"/crm/contacts/find-linkedin-url","baseUrlOptions":["https://api.groovin.ai/functions/v1/api/v1"],"title":"Find missing LinkedIn URLs","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","disableProxy":true},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"crm_contact_ids":{"type":"array","items":{"type":"string","uniqueKey":"crm_contact_ids.items.[INDEX]","typeLabel":"string"},"minItems":1,"maxItems":25,"description":"The CRM contacts, up to 25 per call, as text. 5 to 10 is the practical size.","isRequired":true,"uniqueKey":"crm_contact_ids","typeLabel":"string[]"}},"required":["crm_contact_ids"],"uniqueKey":"","typeLabel":"object"},"examples":{"placeholder":{"title":"placeholder","value":{"crm_contact_ids":["REPLACE_WITH_CRM_CONTACT_ID"]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"46e97f8d-e184-463b-8afa-01846f74e461":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","description":"The result of a batch. The batch can stop early: send what is in `not_processed` again.","required":["total","processed","found","failed","not_processed","not_processed_reason","remaining_credits","retry_guidance","results"],"properties":{"total":{"type":"integer","description":"Contacts asked for, without duplicates.","isRequired":true,"uniqueKey":"total","typeLabel":"integer"},"processed":{"type":"integer","description":"Contacts actually searched.","isRequired":true,"uniqueKey":"processed","typeLabel":"integer"},"found":{"type":"integer","description":"URLs found.","isRequired":true,"uniqueKey":"found","typeLabel":"integer"},"failed":{"type":"integer","description":"Searches that failed.","isRequired":true,"uniqueKey":"failed","typeLabel":"integer"},"not_processed":{"type":"array","items":{"type":"string","uniqueKey":"not_processed.items.[INDEX]","typeLabel":"string"},"description":"Contacts this call did not search. Nothing was spent for them. Send only these again, never the whole list.","isRequired":true,"uniqueKey":"not_processed","typeLabel":"string[]"},"not_processed_reason":{"oneOf":[{"type":"string","enum":["time_budget_exhausted","credits_exhausted","upstream_blocked",null],"description":"Why the batch stopped early. `upstream_blocked` usually means your CRM must be reconnected.","isRequired":true,"uniqueKey":"not_processed_reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["time_budget_exhausted","credits_exhausted","upstream_blocked",null],"description":"Why the batch stopped early. `upstream_blocked` usually means your CRM must be reconnected.","isRequired":true,"uniqueKey":"not_processed_reason.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"not_processed_reason","typeLabel":"enum\u003cstring> | null"},"remaining_credits":{"type":"integer","description":"Your finder credits after this call.","isRequired":true,"uniqueKey":"remaining_credits","typeLabel":"integer"},"retry_guidance":{"oneOf":[{"type":"string","description":"Plain-text advice when some items failed for a temporary reason, otherwise `null`. Follow it: it says when to retry, and which items.","isRequired":true,"uniqueKey":"retry_guidance.oneOf.0","typeLabel":"string"},{"type":"null","description":"Plain-text advice when some items failed for a temporary reason, otherwise `null`. Follow it: it says when to retry, and which items.","isRequired":true,"uniqueKey":"retry_guidance.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"retry_guidance","typeLabel":"string | null"},"results":{"type":"array","items":{"type":"object","description":"What happened for one contact.","required":["crm_contact_id","status","linkedin_profile_url","error","error_status"],"properties":{"crm_contact_id":{"type":"string","description":"The contact.","isRequired":true,"uniqueKey":"results.items.[INDEX].crm_contact_id","typeLabel":"string"},"status":{"type":"string","enum":["found","already_present","not_found","ambiguous","error"],"description":"`found`: saved on the contact, and one credit spent. `already_present`, `not_found` and `ambiguous` spend nothing.","isRequired":true,"uniqueKey":"results.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"linkedin_profile_url":{"oneOf":[{"type":"string","description":"The URL, when there is one.","isRequired":true,"uniqueKey":"results.items.[INDEX].linkedin_profile_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"The URL, when there is one.","isRequired":true,"uniqueKey":"results.items.[INDEX].linkedin_profile_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].linkedin_profile_url","typeLabel":"string | null"},"error":{"oneOf":[{"type":"string","description":"Read it on every status. On `found`, it means the URL could not be saved: add it by hand. On `not_found` or `ambiguous`, it means the search could not run in full, so the result proves nothing.","isRequired":true,"uniqueKey":"results.items.[INDEX].error.oneOf.0","typeLabel":"string"},{"type":"null","description":"Read it on every status. On `found`, it means the URL could not be saved: add it by hand. On `not_found` or `ambiguous`, it means the search could not run in full, so the result proves nothing.","isRequired":true,"uniqueKey":"results.items.[INDEX].error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].error","typeLabel":"string | null"},"error_status":{"oneOf":[{"type":"integer","description":"HTTP status behind `error`. `429` means rate limited and `5xx` usually means temporary: retry later. `null` when there is no error.","isRequired":true,"uniqueKey":"results.items.[INDEX].error_status.oneOf.0","typeLabel":"integer"},{"type":"null","description":"HTTP status behind `error`. `429` means rate limited and `5xx` usually means temporary: retry later. `null` when there is no error.","isRequired":true,"uniqueKey":"results.items.[INDEX].error_status.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"results.items.[INDEX].error_status","typeLabel":"integer | null"}},"uniqueKey":"results.items.[INDEX]","typeLabel":"object"},"description":"One item per contact searched.","isRequired":true,"uniqueKey":"results","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"total":1,"processed":1,"found":1,"failed":0,"not_processed":[],"not_processed_reason":null,"remaining_credits":499,"retry_guidance":null,"results":[{"crm_contact_id":"example-crm-contact-id","status":"found","linkedin_profile_url":"https://www.linkedin.com/in/john-smith","error":null,"error_status":null}]},"examples":{"Example":{"title":"Example","value":{"total":1,"processed":1,"found":1,"failed":0,"not_processed":[],"not_processed_reason":null,"remaining_credits":499,"retry_guidance":null,"results":[{"crm_contact_id":"example-crm-contact-id","status":"found","linkedin_profile_url":"https://www.linkedin.com/in/john-smith","error":null,"error_status":null}]}}},"exampleType":"examples"}},"exampleType":"examples"},"17309a7a-f27d-489d-ab90-6c83c28bfe2c":{"description":"Something in the request is wrong: `error` says what.","content":{"application/json":{"schema":{"type":"object","description":"What every failed request answers, with an HTTP status. The text can change: decide what to do from the status, and show the text to a person.","required":["error"],"properties":{"error":{"type":"string","description":"What went wrong, and sometimes what to do next.","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"f8493f87-8c71-413d-be17-daa8c0390eb2":{"description":"The API key is missing, wrong or revoked.","content":{"application/json":{"schema":{"type":"object","description":"What every failed request answers, with an HTTP status. The text can change: decide what to do from the status, and show the text to a person.","required":["error"],"properties":{"error":{"type":"string","description":"What went wrong, and sometimes what to do next.","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"5cf0749a-506b-4b40-b3a2-ab90e7f543b7":{"description":"You have no finder credits left.","content":{"application/json":{"schema":{"type":"object","description":"What every failed request answers, with an HTTP status. The text can change: decide what to do from the status, and show the text to a person.","required":["error"],"properties":{"error":{"type":"string","description":"What went wrong, and sometimes what to do next.","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"60b2a38a-eadf-4c53-bca8-d28e8ea321eb":{"description":"Your account cannot do this: no CRM connected, inactive subscription, Billing admin role, or a teammate's LinkedIn account.","content":{"application/json":{"schema":{"type":"object","description":"What every failed request answers, with an HTTP status. The text can change: decide what to do from the status, and show the text to a person.","required":["error"],"properties":{"error":{"type":"string","description":"What went wrong, and sometimes what to do next.","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"8cb4981c-a10d-48a5-925f-1adf07d0ef63":{"description":"What you asked for does not exist, or your LinkedIn account is not connected.","content":{"application/json":{"schema":{"type":"object","description":"What every failed request answers, with an HTTP status. The text can change: decide what to do from the status, and show the text to a person.","required":["error"],"properties":{"error":{"type":"string","description":"What went wrong, and sometimes what to do next.","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"dceb83eb-3b1a-4d97-8ec9-4827ca04328a":{"description":"Another batch of yours is already running.","content":{"application/json":{"schema":{"type":"object","description":"What every failed request answers, with an HTTP status. The text can change: decide what to do from the status, and show the text to a person.","required":["error"],"properties":{"error":{"type":"string","description":"What went wrong, and sometimes what to do next.","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"02c9b6d4-eb3b-434f-abab-cdd42648d840":{"description":"LinkedIn or your CRM is slowing you down. Wait at least 5 minutes.","content":{"application/json":{"schema":{"type":"object","description":"What every failed request answers, with an HTTP status. The text can change: decide what to do from the status, and show the text to a person.","required":["error"],"properties":{"error":{"type":"string","description":"What went wrong, and sometimes what to do next.","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"7918f368-d2b4-47be-bc27-cc0bb0906534":{"description":"Something failed on our side.","content":{"application/json":{"schema":{"type":"object","description":"What every failed request answers, with an HTTP status. The text can change: decide what to do from the status, and show the text to a person.","required":["error"],"properties":{"error":{"type":"string","description":"What went wrong, and sometimes what to do next.","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"a2bcb903-06c9-4867-8b3b-216e2ebf041f":{"description":"LinkedIn or your CRM could not be reached or gave an unreadable answer.","content":{"application/json":{"schema":{"type":"object","description":"What every failed request answers, with an HTTP status. The text can change: decide what to do from the status, and show the text to a person.","required":["error"],"properties":{"error":{"type":"string","description":"What went wrong, and sometimes what to do next.","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"3ed4ef1e-3328-437b-84d1-83f04b15cfea":{"apiKey":{"type":"http","scheme":"bearer","description":"Your Groovin API key (`gv_live_…`), created in the extension under Settings, MCP and API.","scopes":[],"schemeName":"apiKey"}}},"servers":{"a0487c26-68da-4177-9726-8d6498ae07a4":{"url":"https://api.groovin.ai/functions/v1/api/v1"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Your Groovin API key (`gv_live_…`), created in the extension under Settings, MCP and API.","scopes":[],"schemeName":"apiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Your Groovin API key (`gv_live_…`), created in the extension under Settings, MCP and API.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"apiKey","name":"Authorization"}],"title":"apiKey"}]},"originalFileLocation":"reference/openapi.json"},"subdomain":"groovin","siteName":"Groovin","title":"Find missing LinkedIn URLs - Groovin","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-05T19:46:01.588Z","originalFileLocation":"reference/api/find-linkedin-urls.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Find the LinkedIn URL of CRM contacts that have none, and save it on the contact. Groovin only saves a URL when the evidence is clear.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Groovin\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://media.brand.dev/f810fcbb-2382-4110-80c2-f249d1f9f172.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://media.brand.dev/f810fcbb-2382-4110-80c2-f249d1f9f172.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://media.brand.dev/f810fcbb-2382-4110-80c2-f249d1f9f172.png\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/png\" href=\"https://media.brand.dev/f810fcbb-2382-4110-80c2-f249d1f9f172.png\">\u003cmeta data-mint-head property=\"og:title\" content=\"Find missing LinkedIn URLs - Groovin\">\u003cmeta data-mint-head property=\"og:description\" content=\"Find the LinkedIn URL of CRM contacts that have none, and save it on the contact. Groovin only saves a URL when the evidence is clear.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Groovin\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.groovin.ai/reference/api/find-linkedin-urls\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://groovin.mintlify.app/_mintlify/api/og/v2?division=CRM+contacts+and+companies\u0026amp;title=Find+missing+LinkedIn+URLs\u0026amp;description=Find+the+LinkedIn+URL+of+CRM+contacts+that+have+none%2C+and+save+it+on+the+contact.+Groovin+only+saves+a+URL+when+the+evidence+is+clear.\u0026amp;theme=2fb27e555653d3152d4427c9\u0026amp;signature=1c818da7044f1d470e7b5f07de9f5039407ab75de12d389797de006ea8e2c054\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Find missing LinkedIn URLs - Groovin\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Find the LinkedIn URL of CRM contacts that have none, and save it on the contact. Groovin only saves a URL when the evidence is clear.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://groovin.mintlify.app/_mintlify/api/og/v2?division=CRM+contacts+and+companies\u0026amp;title=Find+missing+LinkedIn+URLs\u0026amp;description=Find+the+LinkedIn+URL+of+CRM+contacts+that+have+none%2C+and+save+it+on+the+contact.+Groovin+only+saves+a+URL+when+the+evidence+is+clear.\u0026amp;theme=2fb27e555653d3152d4427c9\u0026amp;signature=1c818da7044f1d470e7b5f07de9f5039407ab75de12d389797de006ea8e2c054\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/groovin/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Groovin\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#f37546\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.groovin.ai/reference/api/find-linkedin-urls\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/reference/api/find-linkedin-urls.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.groovin.ai/#organization\",\"name\":\"Groovin\",\"url\":\"https://docs.groovin.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://media.brand.dev/8a452a89-9e16-46a4-97fb-c1afa22cee62.svg\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.groovin.ai#website\",\"name\":\"Groovin\",\"url\":\"https://docs.groovin.ai\",\"publisher\":{\"@id\":\"https://docs.groovin.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.groovin.ai/reference/api/find-linkedin-urls#webpage\",\"url\":\"https://docs.groovin.ai/reference/api/find-linkedin-urls\",\"name\":\"Find missing LinkedIn URLs\",\"description\":\"Find the LinkedIn URL of CRM contacts that have none, and save it on the contact. Groovin only saves a URL when the evidence is clear.\",\"dateModified\":\"2026-11-05T19:46:01.588Z\",\"isPartOf\":{\"@id\":\"https://docs.groovin.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.groovin.ai/reference/api/find-linkedin-urls#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.groovin.ai/reference/api/find-linkedin-urls#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"REST API\",\"item\":\"https://docs.groovin.ai/reference/api/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CRM contacts and companies\",\"item\":\"https://docs.groovin.ai/reference/api/lookup-contacts\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Find missing LinkedIn URLs\",\"item\":\"https://docs.groovin.ai/reference/api/find-linkedin-urls\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.groovin.ai/reference/api/find-linkedin-urls#apireference\",\"headline\":\"Find missing LinkedIn URLs\",\"name\":\"Find missing LinkedIn URLs\",\"description\":\"Find the LinkedIn URL of CRM contacts that have none, and save it on the contact. Groovin only saves a URL when the evidence is clear.\",\"url\":\"https://docs.groovin.ai/reference/api/find-linkedin-urls\",\"mainEntityOfPage\":{\"@id\":\"https://docs.groovin.ai/reference/api/find-linkedin-urls#webpage\"},\"dateModified\":\"2026-11-05T19:46:01.588Z\",\"publisher\":{\"@id\":\"https://docs.groovin.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.groovin.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Groovin\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Groovin","nav":{"global":null,"tabs":[{"tab":"Getting started","icon":"home","hidden":true},{"tab":"MCP Server","icon":"code","pages":[{"title":"MCP Server","href":"/mcp/overview"}]},{"tab":"MCP and API","groups":[{"group":"Get started","pages":[{"title":"MCP and API","href":"/reference/introduction"},{"title":"Quickstart","href":"/reference/quickstart"},{"title":"Use these docs with your AI assistant","href":"/reference/ai-assistants"},{"title":"Authentication","href":"/reference/authentication"},{"title":"Identifiers","href":"/reference/identifiers"}]},{"group":"Safety and limits","pages":[{"title":"What each call really does","mode":"wide","href":"/reference/side-effects"},{"title":"Limits and quotas","href":"/reference/limits"},{"title":"Errors","href":"/reference/errors"},{"title":"Long lists","href":"/reference/pagination"},{"title":"Changes and compatibility","href":"/reference/versioning"}]},{"group":"REST API","pages":[{"title":"REST API","href":"/reference/api/overview"},{"group":"LinkedIn","pages":[{"title":"List the people in your conversations","openapi":"reference/openapi.json POST /linkedin/conversation-attendees","href":"/reference/api/list-conversation-attendees"},{"title":"Read a conversation","openapi":"reference/openapi.json POST /linkedin/chat-messages","href":"/reference/api/get-chat-messages"},{"title":"Mark a conversation as read or unread","openapi":"reference/openapi.json POST /linkedin/chat-read-status","href":"/reference/api/set-chat-read-status"},{"title":"Get a LinkedIn profile","openapi":"reference/openapi.json POST /linkedin/profile","href":"/reference/api/get-profile"},{"title":"Send a LinkedIn message","openapi":"reference/openapi.json POST /linkedin/messages","href":"/reference/api/send-message"},{"title":"Send a LinkedIn invitation","openapi":"reference/openapi.json POST /linkedin/invitations","href":"/reference/api/send-invitation"},{"title":"List your LinkedIn connections","openapi":"reference/openapi.json POST /linkedin/relations","href":"/reference/api/list-relations"},{"title":"List your pending invitations","openapi":"reference/openapi.json POST /linkedin/pending-invitations","href":"/reference/api/list-pending-invitations"}]},{"group":"CRM contacts and companies","pages":[{"title":"Check who is already in your CRM","openapi":"reference/openapi.json POST /crm/contacts/lookup","href":"/reference/api/lookup-contacts"},{"title":"Create CRM contacts","openapi":"reference/openapi.json POST /crm/contacts","href":"/reference/api/create-contacts"},{"title":"List your synced contacts","openapi":"reference/openapi.json POST /crm/contacts/synced","href":"/reference/api/list-synced-contacts"},{"title":"Turn message sync on or off","description":"Start or stop logging a person's LinkedIn conversation in your CRM, for a batch of contacts.","openapi":"reference/openapi.json POST /crm/contacts/sync-toggle","href":"/reference/api/toggle-sync"},{"title":"Find missing LinkedIn URLs","openapi":"reference/openapi.json POST /crm/contacts/find-linkedin-url","href":"/reference/api/find-linkedin-urls"},{"title":"Find missing company domains","description":"Find a company's web domain and save it on the CRM record. Send only a company name to try it out without writing anything.","openapi":"reference/openapi.json POST /crm/companies/find-domains","href":"/reference/api/find-company-domains"}]},{"group":"LinkedIn connections import","pages":[{"title":"Start a connections import","openapi":"reference/openapi.json POST /crm/connections-import/start","href":"/reference/api/start-connections-import"},{"title":"Check a connections import","openapi":"reference/openapi.json POST /crm/connections-import/status","href":"/reference/api/get-connections-import"},{"title":"Stop a connections import","openapi":"reference/openapi.json POST /crm/connections-import/cancel","href":"/reference/api/cancel-connections-import"}]},{"title":"Data models","href":"/reference/data-models"}]},{"group":"MCP","pages":[{"title":"Connect your AI tool","href":"/reference/mcp/connect"},{"title":"MCP tools","href":"/reference/mcp/tools"},{"title":"Browser sign-in","href":"/reference/mcp/oauth"},{"title":"Protocol details","href":"/reference/mcp/protocol"},{"title":"MCP errors","href":"/reference/mcp/errors"}]},{"group":"Webhooks","pages":[{"title":"Webhooks","href":"/reference/webhooks/overview"},{"title":"New LinkedIn message","openapi":"reference/openapi.json webhook linkedin.message.created","href":"/reference/webhooks/message-created"},{"title":"New LinkedIn connection","openapi":"reference/openapi.json webhook linkedin.relation.created","href":"/reference/webhooks/relation-created"},{"title":"The crm_contact block","href":"/reference/webhooks/crm-contact"},{"title":"Verify signatures","href":"/reference/webhooks/verify-signatures"},{"title":"Delivery and retries","href":"/reference/webhooks/delivery"},{"title":"Set up a webhook","href":"/reference/webhooks/manage"}]},{"group":"Help","pages":[{"title":"Known issues and troubleshooting","href":"/reference/known-issues"}]}]}]},"basePath":"","title":"Find missing LinkedIn URLs - Groovin","buildId":"dpl_GZsjphRpnhWkstV12jxWNcMHFyox","deploymentId":"dpl_GZsjphRpnhWkstV12jxWNcMHFyox","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-B5zPa4Vr.js","utils-CVjrr8Yd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DTgURWzl.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DxTHtkdZ.js","snippetPresets-Cx47o5Vx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-CYZot51e.js","ApiExamples-4Fr6y9N_.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Dq2ElbEk.js","shallow-BfYl9r69.js","getApiPlaygroundDisplay-Ch3xc7i1.js","CodeSnippet-BsBxuJ1v.js","CodeSnippets-CetzeDL8.js","getPastedJson-BxPKFSJx.js","icon-o0J1Ochb.js","MethodPill-Du3usO5m.js","DuplicateIcon-DJypyMzl.js","createIcon-YMA6N8KJ.js","DynamicMarkdown-CWvhfcZc.js","SectionHeading-BdLVaXCd.js","axios-vUo_bRtp.js","Markdown-C4Ez6OeV.js","clsx-DptzKFCt.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-Dt1IougW.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CZ6Wt2Vb.js"]}