Creates a connection from credentials you already hold, without sending anyone through an OAuth flow. Use this when your systems already store the credentials, or when you connect through your own platform app.Markifact verifies the credentials with the provider before storing anything. A successful response means the connection is live and ready to use in nodes, agents, and MCP.
Only this endpoint. There is no Markifact OAuth app for the channel, so credentials are the only way in. Shopify, Ahrefs, and OpenAI Ads work this way.
["oauth", "manual"]
Either way. Using your own app here is a white-label connection, so your clients never see Markifact in their account.
The same endpoint response lists each type’s credential_fields, which is exactly what belongs in credentials, and a docs_url pointing at a plain-markdown page that explains where each of those values comes from. Fetch that page when you need the steps for a channel.
Connecting through your own app on a channel where Markifact also has one requires the Team plan. Types that are manual only, such as Shopify, have no plan requirement beyond API access itself.
A type whose auth_methods include manual, such as gads or shopify.
name
string
Yes
Your label for the connection, up to 100 characters. Shown wherever connections are listed.
credentials
object
Yes
Exactly the credential_fields the type lists. A missing or unrecognised field is rejected before any call to the provider.
is_private
boolean
No
Whether the connection should be private to the API-key user. Defaults to false, meaning shared with the workspace so other team members can see and use it.
The type cannot be created from credentials, a credential field is missing or unrecognised, or the provider rejected the credentials.
401
Invalid API key.
403
The connection type is white-label capable and your team is not on the Team plan.
Verification failures return the provider’s own reason in detail, so you can tell an expired refresh token from an app that lacks the right scope.
{ "detail": "Google rejected the refresh token (invalid_grant). Make sure it was minted with this exact client ID, has not been revoked, and that the OAuth consent screen is published (apps left in Testing status issue refresh tokens that expire after 7 days)."}
Nothing is stored when verification fails. Fix the credentials and post again.
Your label for the connection. For white-label types, posting the same type and name again replaces the stored credentials in place. Slack and Shopify are keyed on the workspace and store instead, and API-key types (Ahrefs, SEMrush, Adjust, DataForSEO, OpenAI Ads) always create a new connection.
Whether the connection should be private to the API-key user. Defaults to false, meaning shared with the workspace so other team members can see and use it. Omit it when replacing credentials on an existing connection and the current visibility is kept.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Markifact","colors":{"primary":"#1374FF","light":"#1374FF","dark":"#1374FF"},"logo":{"light":"https://mintcdn.com/markifact/s418riJ1kIvXeqdE/logo/light.png?fit=max\u0026auto=format\u0026n=s418riJ1kIvXeqdE\u0026q=85\u0026s=97a0d799b6dd0f43778a389425cf0213","dark":"https://mintcdn.com/markifact/s418riJ1kIvXeqdE/logo/dark.png?fit=max\u0026auto=format\u0026n=s418riJ1kIvXeqdE\u0026q=85\u0026s=bebd2a4899640adec9102bc2f6dd85ec"},"favicon":"https://mintcdn.com/markifact/Ljk8anYBzOzZ898C/favicon.ico?fit=max\u0026auto=format\u0026n=Ljk8anYBzOzZ898C\u0026q=85\u0026s=2402591c302780d9642e9e5dcf964340","appearance":{"default":"light"},"navbar":{"links":[{"href":"https://www.markifact.com/auth/signin","label":"Log In"}],"primary":{"type":"button","label":"App","href":"https://markifact.com/"}},"footer":{"socials":{"linkedin":"https://linkedin.com/company/markifact","twitter":"https://twitter.com/markifactcom","youtube":"https://www.youtube.com/@markifactcom"}},"seo":{"metatags":{"og:site_name":"Markifact","og:image":"/images/og-image.webp","canonical":"https://docs.markifact.com"}},"styling":{"codeblocks":"dark","latex":true},"integrations":{"gtm":{"tagId":"GTM-MDGV4NFS"}},"contextual":{"options":["copy","view"],"display":"header"},"navigation":{"global":{"anchors":[{"anchor":"Contact Support","icon":"heart","href":"https://www.markifact.com/app/contact-us"},{"anchor":"Changelog","icon":"clock","href":"https://www.markifact.com/changelog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"markifact","hasAudioNarration":false,"actualSubdomain":"markifact","customDomains":["docs.markifact.com"],"gitSource":{"type":"github","owner":"ahmed-3li","repo":"markifact-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae0335bb99df1c7e700445a","collectionId":"f41710b7-d41b-4810-8ff9-027047148255","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae0335bb99df1c7e700445a"},"entitlements":{},"buildId":"6ae0335bb99df1c7e700445a","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"Documentation","count":1225},{"language":"default","tag":"Operations","count":1202},{"language":"default","tag":"Google Tag Manager","count":98},{"language":"default","tag":"Microsoft Ads","count":94},{"language":"default","tag":"Meta Ads","count":93},{"language":"default","tag":"Google Ads","count":69},{"language":"default","tag":"X Ads","count":63},{"language":"default","tag":"Snapchat Ads","count":54},{"language":"default","tag":"DV360","count":53},{"language":"default","tag":"LinkedIn Ads","count":51}]},"assistantConfig":{},"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":"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":"byok-sep-25","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":"billing-updated-9-15","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}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/connections/create-connection","slug":"/api-reference/connections/create-connection","pageMetadata":{"title":"Create connection","description":"Create a connection from credentials you already hold, verified with the provider before anything is stored.","openapi":"POST /v1/connections","href":"/api-reference/connections/create-connection"},"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: \"Create a connection from credentials you already hold, verified with the provider before anything is stored.\"\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={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Creates a connection from credentials you already hold, without sending anyone through an OAuth flow. Use this when your systems already store the credentials, or when you connect through your own platform app.`}),`\n`,_jsx(_components.p,{children:`Markifact verifies the credentials with the provider before storing anything. A successful response means the connection is live and ready to use in nodes, agents, and MCP.`}),`\n`,_jsx(Heading,{level:`2`,id:`endpoint`,children:`Endpoint`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`http`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`http`,children:_jsxs(_components.code,{language:`http`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:`POST`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` /v1/connections`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`which-types-this-works-for`,children:`Which types this works for`}),`\n`,_jsxs(_components.p,{children:[`Call `,_jsx(_components.a,{href:`/api-reference/connections/list-connection-types`,children:`List connection types`}),` and look at `,_jsx(_components.code,{children:`auth_methods`}),`:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:_jsx(_components.code,{children:`auth_methods`})}),_jsx(_components.th,{children:`What it means`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`[\"manual\"]`})}),_jsx(_components.td,{children:`Only this endpoint. There is no Markifact OAuth app for the channel, so credentials are the only way in. Shopify, Ahrefs, and OpenAI Ads work this way.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`[\"oauth\", \"manual\"]`})}),_jsxs(_components.td,{children:[`Either way. Using your own app here is a `,_jsx(_components.a,{href:`/core-concepts/white-label-connections`,children:`white-label connection`}),`, so your clients never see Markifact in their account.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`[\"oauth\"]`})}),_jsxs(_components.td,{children:[`Not this endpoint. Use `,_jsx(_components.a,{href:`/api-reference/connections/create-auth-link`,children:`Create auth link`}),`.`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`The same endpoint response lists each type’s `,_jsx(_components.code,{children:`credential_fields`}),`, which is exactly what belongs in `,_jsx(_components.code,{children:`credentials`}),`, and a `,_jsx(_components.code,{children:`docs_url`}),` pointing at a plain-markdown page that explains where each of those values comes from. Fetch that page when you need the steps for a channel.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Connecting through your own app on a channel where Markifact also has one requires the `,_jsx(_components.strong,{children:`Team`}),` plan. Types that are manual only, such as Shopify, have no plan requirement beyond API access itself.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`request-body`,children:`Request Body`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`connection_type`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsxs(_components.td,{children:[`A type whose `,_jsx(_components.code,{children:`auth_methods`}),` include `,_jsx(_components.code,{children:`manual`}),`, such as `,_jsx(_components.code,{children:`gads`}),` or `,_jsx(_components.code,{children:`shopify`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`name`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Your label for the connection, up to 100 characters. Shown wherever connections are listed.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`credentials`})}),_jsx(_components.td,{children:`object`}),_jsx(_components.td,{children:`Yes`}),_jsxs(_components.td,{children:[`Exactly the `,_jsx(_components.code,{children:`credential_fields`}),` the type lists. A missing or unrecognised field is rejected before any call to the provider.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`is_private`})}),_jsx(_components.td,{children:`boolean`}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`Whether the connection should be private to the API-key user. Defaults to `,_jsx(_components.code,{children:`false`}),`, meaning shared with the workspace so other team members can see and use it.`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`example-request`,children:`Example Request`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`13`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`13`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` https://api.markifact.com/v1/connections`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer YOUR_API_KEY\"`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"connection_type\": \"gads\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"name\": \"Acme Agency Google Ads\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"credentials\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"client_id\": \"1234567890-abc123.apps.googleusercontent.com\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"client_secret\": \"GOCSPX-...\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"refresh_token\": \"1//0g...\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"is_private\": false`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"1f2e3d4c-0000-0000-0000-000000000000\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"gads\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"display_name\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Acme Agency Google Ads\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"external_id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"is_private\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"created_at\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1764086400`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"updated_at\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1764086400`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`response-fields`,children:`Response Fields`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`id`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`Markifact connection ID. Pass this as `,_jsx(_components.code,{children:`connection_id`}),` when running operations.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`type`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`The connection type you created.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`display_name`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`The `,_jsx(_components.code,{children:`name`}),` you sent.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`external_id`})}),_jsx(_components.td,{children:`string, null`}),_jsxs(_components.td,{children:[`Always `,_jsx(_components.code,{children:`null`}),` here. External IDs are set when creating an auth link.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`is_private`})}),_jsx(_components.td,{children:`boolean`}),_jsx(_components.td,{children:`Whether the connection is restricted to the API-key user.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`created_at`})}),_jsx(_components.td,{children:`integer`}),_jsx(_components.td,{children:`Creation time as a Unix timestamp in seconds.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`updated_at`})}),_jsx(_components.td,{children:`integer`}),_jsx(_components.td,{children:`Last update time as a Unix timestamp in seconds.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`rotating-credentials`,children:`Rotating credentials`}),`\n`,_jsx(_components.p,{children:`Which connection a request updates depends on how the type derives its ID:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Types`}),_jsx(_components.th,{children:`Keyed on`}),_jsx(_components.th,{children:`Posting the same values again`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`White-label channels, such as Google Ads, Meta Ads or TikTok Ads`}),_jsxs(_components.td,{children:[`Type and `,_jsx(_components.code,{children:`name`})]}),_jsxs(_components.td,{children:[`Replaces the credentials in place. Same connection ID, so bound workflows keep running. A different `,_jsx(_components.code,{children:`name`}),` creates a separate connection.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Slack`}),_jsx(_components.td,{children:`Workspace and app`}),_jsxs(_components.td,{children:[`Replaces in place whatever `,_jsx(_components.code,{children:`name`}),` you send.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Shopify`}),_jsx(_components.td,{children:`Store`}),_jsxs(_components.td,{children:[`Replaces in place whatever `,_jsx(_components.code,{children:`name`}),` you send.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Ahrefs, SEMrush, Adjust, DataForSEO, OpenAI Ads`}),_jsx(_components.td,{children:`Nothing, each post is new`}),_jsx(_components.td,{children:`Creates a new connection. Rebind your workflows to it, then delete the old one.`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Leave `,_jsx(_components.code,{children:`is_private`}),` out when replacing credentials. Omitting it keeps the connection’s current visibility.`]}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`When`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`400`})}),_jsx(_components.td,{children:`The type cannot be created from credentials, a credential field is missing or unrecognised, or the provider rejected the credentials.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`401`})}),_jsx(_components.td,{children:`Invalid API key.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`403`})}),_jsx(_components.td,{children:`The connection type is white-label capable and your team is not on the Team plan.`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Verification failures return the provider’s own reason in `,_jsx(_components.code,{children:`detail`}),`, so you can tell an expired refresh token from an app that lacks the right scope.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"detail\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Google rejected the refresh token (invalid_grant). Make sure it was minted with this exact client ID, has not been revoked, and that the OAuth consent screen is published (apps left in Testing status issue refresh tokens that expire after 7 days).\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Nothing is stored when verification fails. Fix the credentials and post again.`})]})}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":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Create connection","description":"Create a connection from credentials you already hold, verified with the provider before anything is stored.","openapi":"POST /v1/connections","href":"/api-reference/connections/create-connection"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Endpoint","slug":"endpoint","depth":2,"children":[]},{"title":"Which types this works for","slug":"which-types-this-works-for","depth":2,"children":[]},{"title":"Request Body","slug":"request-body","depth":2,"children":[]},{"title":"Example Request","slug":"example-request","depth":2,"children":[]},{"title":"Response","slug":"response","depth":2,"children":[]},{"title":"Response Fields","slug":"response-fields","depth":2,"children":[]},{"title":"Rotating credentials","slug":"rotating-credentials","depth":2,"children":[]},{"title":"Errors","slug":"errors","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/markifact/3685bc415eb86d32/chatbase.js"],"openApiReferenceData":{"operation":{"operationId":"createConnection","summary":"Create connection","description":"Create a connection from credentials you already hold, verified with the provider before anything is stored.","tags":["Connections"],"requestBody":"d1b7d25a-9776-4fb4-a225-ddfc101534fd","responses":{"200":"3b66a8ed-512f-4e86-bbe1-d896b7c61bcd","400":"78e80166-4675-4aa0-960d-63b37347ea8a","401":"422b1aba-da88-4332-b75a-c61ce61c598f","403":"0525275d-e8a1-438a-83eb-18e1477d7105"},"method":"post","type":"path","servers":["f57092d7-b197-440e-9fca-7df546756ae9"],"security":["c8564385-cff3-4bb0-9dde-2883723f4b64"],"path":"/v1/connections","baseUrlOptions":["https://api.markifact.com"],"title":"Create connection","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"connection_type":{"type":"string","example":"gads","description":"A connection type whose auth_methods include \"manual\". See GET /v1/connections/types.","isRequired":true,"uniqueKey":"connection_type","typeLabel":"string"},"name":{"type":"string","maxLength":100,"example":"Acme Agency Google Ads","description":"Your label for the connection. For white-label types, posting the same type and name again replaces the stored credentials in place. Slack and Shopify are keyed on the workspace and store instead, and API-key types (Ahrefs, SEMrush, Adjust, DataForSEO, OpenAI Ads) always create a new connection.","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"credentials":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"credentials.additionalProperties","typeLabel":"string"},"description":"Exactly the credential_fields the type lists. A missing or unrecognised field is rejected before any call to the provider.","example":{"client_id":"1234567890-abc123.apps.googleusercontent.com","client_secret":"GOCSPX-...","refresh_token":"1//0g..."},"isRequired":true,"uniqueKey":"credentials","typeLabel":"object"},"is_private":{"type":"boolean","default":false,"description":"Whether the connection should be private to the API-key user. Defaults to false, meaning shared with the workspace so other team members can see and use it. Omit it when replacing credentials on an existing connection and the current visibility is kept.","uniqueKey":"is_private","typeLabel":"boolean"}},"required":["connection_type","name","credentials"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"connection_type":"gads","name":"Acme Agency Google Ads","credentials":{"client_id":"1234567890-abc123.apps.googleusercontent.com","client_secret":"GOCSPX-...","refresh_token":"1//0g..."},"is_private":false}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"3b66a8ed-512f-4e86-bbe1-d896b7c61bcd":{"description":"Connection created and verified.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"Public Markifact connection ID.","isRequired":true,"uniqueKey":"id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Public Markifact connection ID.","isRequired":true,"uniqueKey":"id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"id","typeLabel":"string | null"},"type":{"type":"string","description":"Connection type.","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"is_private":{"type":"boolean","isRequired":true,"uniqueKey":"is_private","typeLabel":"boolean"},"display_name":{"oneOf":[{"type":"string","uniqueKey":"display_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"display_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"display_name","typeLabel":"string | null"},"external_id":{"oneOf":[{"type":"string","uniqueKey":"external_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"external_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"external_id","typeLabel":"string | null"},"created_at":{"oneOf":[{"type":"integer","format":"int64","uniqueKey":"created_at.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"null","format":"int64","uniqueKey":"created_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"created_at","typeLabel":"integer\u003cint64> | null"},"updated_at":{"oneOf":[{"type":"integer","format":"int64","uniqueKey":"updated_at.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"null","format":"int64","uniqueKey":"updated_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"updated_at","typeLabel":"integer\u003cint64> | null"}},"required":["id","type","is_private"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"\u003cstring>","type":"\u003cstring>","is_private":true,"display_name":"\u003cstring>","external_id":"\u003cstring>","created_at":123,"updated_at":123}}},"exampleType":"generated"}},"exampleType":"generated"},"78e80166-4675-4aa0-960d-63b37347ea8a":{"description":"The type cannot be created from credentials, a credential field is missing or unrecognised, or the provider rejected the credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"oneOf":[{}],"uniqueKey":"detail","typeLabel":"any"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"\u003cunknown>"}}},"exampleType":"generated"}},"exampleType":"generated"},"422b1aba-da88-4332-b75a-c61ce61c598f":{"description":"Invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"oneOf":[{}],"uniqueKey":"detail","typeLabel":"any"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"\u003cunknown>"}}},"exampleType":"generated"}},"exampleType":"generated"},"0525275d-e8a1-438a-83eb-18e1477d7105":{"description":"White-label connections require the Team plan.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"oneOf":[{}],"uniqueKey":"detail","typeLabel":"any"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"\u003cunknown>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"c8564385-cff3-4bb0-9dde-2883723f4b64":{"bearerAuth":{"type":"http","scheme":"bearer","scopes":[]}}},"servers":{"f57092d7-b197-440e-9fca-7df546756ae9":{"url":"https://api.markifact.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"markifact","siteName":"Markifact","title":"Create connection - Markifact","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-16T04:32:45.333Z","originalFileLocation":"api-reference/connections/create-connection.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=\"light\"}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=\"Create a connection from credentials you already hold, verified with the provider before anything is stored.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Markifact\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/markifact/rRckqEm4YH35F_Gi/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/markifact/rRckqEm4YH35F_Gi/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/markifact/rRckqEm4YH35F_Gi/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/markifact/rRckqEm4YH35F_Gi/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/markifact/rRckqEm4YH35F_Gi/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/markifact/rRckqEm4YH35F_Gi/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/markifact/rRckqEm4YH35F_Gi/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/markifact/rRckqEm4YH35F_Gi/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/markifact/rRckqEm4YH35F_Gi/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create connection - Markifact\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create a connection from credentials you already hold, verified with the provider before anything is stored.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Markifact\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.markifact.com/api-reference/connections/create-connection\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://markifact.mintlify.app/images/og-image.webp\">\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=\"Create connection - Markifact\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create a connection from credentials you already hold, verified with the provider before anything is stored.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://markifact.mintlify.app/images/og-image.webp\">\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=\"/mintlify-assets/_mintlify/favicons/markifact/rRckqEm4YH35F_Gi/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Markifact\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1374FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.markifact.com/api-reference/connections/create-connection\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/connections/create-connection.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.markifact.com/#organization\",\"name\":\"Markifact\",\"url\":\"https://docs.markifact.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/markifact/s418riJ1kIvXeqdE/logo/light.png?fit=max\u0026auto=format\u0026n=s418riJ1kIvXeqdE\u0026q=85\u0026s=97a0d799b6dd0f43778a389425cf0213\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.markifact.com#website\",\"name\":\"Markifact\",\"url\":\"https://docs.markifact.com\",\"publisher\":{\"@id\":\"https://docs.markifact.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.markifact.com/api-reference/connections/create-connection#webpage\",\"url\":\"https://docs.markifact.com/api-reference/connections/create-connection\",\"name\":\"Create connection\",\"description\":\"Create a connection from credentials you already hold, verified with the provider before anything is stored.\",\"dateModified\":\"2026-09-16T04:32:45.333Z\",\"isPartOf\":{\"@id\":\"https://docs.markifact.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.markifact.com/api-reference/connections/create-connection#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.markifact.com/api-reference/connections/create-connection#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Connections\",\"item\":\"https://docs.markifact.com/api-reference/connections/list-connections\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create connection\",\"item\":\"https://docs.markifact.com/api-reference/connections/create-connection\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.markifact.com/api-reference/connections/create-connection#apireference\",\"headline\":\"Create connection\",\"name\":\"Create connection\",\"description\":\"Create a connection from credentials you already hold, verified with the provider before anything is stored.\",\"url\":\"https://docs.markifact.com/api-reference/connections/create-connection\",\"mainEntityOfPage\":{\"@id\":\"https://docs.markifact.com/api-reference/connections/create-connection#webpage\"},\"image\":\"https://docs.markifact.com/images/og-image.webp\",\"dateModified\":\"2026-09-16T04:32:45.333Z\",\"publisher\":{\"@id\":\"https://docs.markifact.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.markifact.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Markifact\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Markifact","nav":{"global":{"anchors":[{"anchor":"Contact Support","icon":"heart","href":"https://www.markifact.com/app/contact-us"},{"anchor":"Changelog","icon":"clock","href":"https://www.markifact.com/changelog"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API Reference","groups":[{"group":"Get Started","icon":"rocket","pages":[{"title":"Getting started","href":"/api-reference/getting-started"},{"title":"Authentication","href":"/api-reference/authentication"},{"title":"Errors","href":"/api-reference/errors"}]},{"group":"Connections","icon":"plug","pages":[{"title":"List connections","openapi":"GET /v1/connections","href":"/api-reference/connections/list-connections"},{"title":"Get connection","openapi":"GET /v1/connections/{connection_id}","href":"/api-reference/connections/get-connection"},{"title":"List connection types","description":"List every connection type Markifact supports and how each one can be authenticated.","openapi":"GET /v1/connections/types","href":"/api-reference/connections/list-connection-types"},{"title":"Create connection","openapi":"POST /v1/connections","href":"/api-reference/connections/create-connection"},{"title":"Create auth link","description":"Create a shareable OAuth link that connects an external account to your Markifact team.","openapi":"POST /v1/connections/auth-link","href":"/api-reference/connections/create-auth-link"},{"title":"Get auth link status","openapi":"GET /v1/connections/auth-links/{auth_link_id}/status","href":"/api-reference/connections/get-auth-link-status"},{"title":"Delete connection","openapi":"DELETE /v1/connections/{connection_id}","href":"/api-reference/connections/delete-connection"}]},{"group":"Credits","icon":"coins","pages":[{"title":"Get credit balance","openapi":"GET /v1/credits","href":"/api-reference/credits/get-balance"},{"title":"List credit logs","openapi":"GET /v1/credits/logs","href":"/api-reference/credits/list-credit-logs"}]},{"group":"Logs","icon":"list-check","pages":[{"title":"List logs","openapi":"GET /v1/logs","href":"/api-reference/logs/list-logs"},{"title":"Get log","openapi":"GET /v1/logs/{log_id}","href":"/api-reference/logs/get-log"}]}]}]},"basePath":"","title":"Create connection - Markifact","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-B7XKH4J3.js","utils-lOYzL7z-.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DF6jUUIM.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dpsj5f7C.js","snippetPresets-CYeiDe8v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CUFz1YZ_.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D8H_iLS4.js","shallow-DdluZBHX.js","getApiPlaygroundDisplay-B9922vev.js","CodeSnippet-CMoRNGYs.js","CodeSnippets-DwyrPHuw.js","Page-DSVu9Ucl.js","getPastedJson-G-zIvlHh.js","icon-B03fnEy0.js","MethodPill-CW7teklc.js","DuplicateIcon-CtO8eekd.js","createIcon-DZTKdM_A.js","DynamicMarkdown-D5M2At0B.js","SectionHeading-C_2NaA2U.js","axios-vUo_bRtp.js","Markdown-D7QRHV3m.js","clsx-D1Z-ELXV.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-lvhuD9Du.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CKfC4ywL.js"]}