{"openapi":"3.1.0","info":{"title":"Everylink API","description":"Development documentation","version":"1.0.0"},"paths":{"/profiles/by-slug/{slug}":{"get":{"operationId":"getProfilesBySlugBySlug","summary":"Get profile (with blocks) by slug","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"slug","required":true}]}},"/profiles/check-slug/{slug}":{"get":{"operationId":"getProfilesCheckSlugBySlug","summary":"Check slug availability","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"slug","required":true}]}},"/profiles":{"get":{"operationId":"getProfiles","summary":"List the actor's profiles","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}}},"post":{"operationId":"postProfiles","summary":"Create a profile","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"slug":{"type":"string","minLength":3,"maxLength":50},"name":{"type":"string","maxLength":100},"bio":{"type":"string","maxLength":500},"import":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2048},"include":{"enum":["content","content+theme"],"type":"string"}},"required":["url","include"]}},"required":["slug"]}}}}}},"/profiles/{profileId}":{"get":{"operationId":"getProfilesByProfileId","summary":"Get a profile (with blocks)","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"profileId","required":true}]},"patch":{"operationId":"patchProfilesByProfileId","summary":"Update profile identity","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":100},"bio":{"type":"string","maxLength":500},"slug":{"type":"string","minLength":3,"maxLength":50},"image":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}]},"logo":{"anyOf":[{"type":"string","maxLength":2048,"format":"uri","pattern":"^[Hh][Tt][Tt][Pp][Ss]?:\\/\\/"},{"type":"null"}]},"theme":{"type":"object","properties":{"preset":{"enum":["light","dark","cream","mono","ocean","grape","sand","custom"],"type":"string"},"mode":{"enum":["light","dark"],"type":"string"},"color":{"type":"string","maxLength":32},"background":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"format":"uri","pattern":"^[Hh][Tt][Tt][Pp][Ss]?:\\/\\/"},"fit":{"enum":["cover","tile"],"type":"string"}},"required":["url","fit"]},"text":{"type":"string","maxLength":9,"pattern":"^#[0-9a-fA-F]{3,8}$"},"accent":{"type":"string","maxLength":9,"pattern":"^#[0-9a-fA-F]{3,8}$"},"font":{"enum":["sans","serif","Inter","Poppins","Montserrat","DM Sans","Space Grotesk","Outfit","Nunito","Roboto","Work Sans","Manrope","Playfair Display","Lora","Fraunces","EB Garamond"],"type":"string"},"corners":{"enum":["sharp","soft","rounded"],"type":"string"},"card":{"type":"object","properties":{"background":{"type":"string","maxLength":9,"pattern":"^#[0-9a-fA-F]{3,8}$"},"border":{"type":"boolean"},"borderColor":{"type":"string","maxLength":9,"pattern":"^#[0-9a-fA-F]{3,8}$"},"shadow":{"type":"boolean"}},"required":[]},"avatar":{"type":"object","properties":{"ring":{"type":"string","maxLength":9,"pattern":"^#[0-9a-fA-F]{3,8}$"}},"required":[]},"icons":{"enum":["brand","accent"],"type":"string"},"layout":{"enum":["split","centered"],"type":"string"}},"required":[]},"intent":{"type":"object","properties":{"kind":{"enum":["personal","creator","business","freelance"],"type":"string"},"goals":{"type":"array","items":{"enum":["links","showcase","connect","opportunities"],"type":"string"},"maxItems":3}},"required":[]},"showcase":{"type":"boolean"},"expectedVersion":{"type":"integer","minimum":1}},"required":["expectedVersion"]}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"profileId","required":true}]},"delete":{"operationId":"deleteProfilesByProfileId","summary":"Delete a profile","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"expectedVersion":{"type":"integer","minimum":1}},"required":["expectedVersion"]}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"profileId","required":true}]}},"/profiles/{profileId}/billed-to":{"post":{"operationId":"postProfilesByProfileIdBilledTo","summary":"Set who is billed for a profile","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"enum":["self","owner"],"type":"string"}},"required":["target"]}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"profileId","required":true}]}},"/profiles/{profileId}/media":{"post":{"operationId":"postProfilesByProfileIdMedia","summary":"Upload media (multipart)","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"profileId","required":true}]}},"/profiles/{profileId}/blocks":{"get":{"operationId":"getProfilesByProfileIdBlocks","summary":"List a profile's blocks","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"profileId","required":true}]},"post":{"operationId":"postProfilesByProfileIdBlocks","summary":"Add a block","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","minLength":1,"maxLength":50},"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"position":{"type":"number"},"visibility":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"expectedVersion":{"type":"integer","minimum":1}},"required":["type","data","expectedVersion"]}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"profileId","required":true}]}},"/profiles/{profileId}/layout":{"post":{"operationId":"postProfilesByProfileIdLayout","summary":"Set the bento grid layout","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"layouts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"x":{"type":"integer","minimum":0},"y":{"type":"integer","minimum":0},"w":{"type":"integer","minimum":1},"h":{"type":"integer","minimum":1}},"required":["id","x","y","w","h"]}},"expectedVersion":{"type":"integer","minimum":1}},"required":["layouts","expectedVersion"]}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"profileId","required":true}]}},"/blocks/{blockId}":{"patch":{"operationId":"patchBlocksByBlockId","summary":"Update a block","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"visibility":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"expectedVersion":{"type":"integer","minimum":1}},"required":["expectedVersion"]}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"blockId","required":true}]},"delete":{"operationId":"deleteBlocksByBlockId","summary":"Delete a block","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"expectedVersion":{"type":"integer","minimum":1}},"required":["expectedVersion"]}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"blockId","required":true}]}},"/instagram/preview":{"post":{"operationId":"postInstagramPreview","summary":"Preview the Instagram profile or post a source resolves to","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"source":{"type":"string","maxLength":2048,"pattern":"^(?:@[A-Za-z0-9._]{1,30}|https:\\/\\/www\\.instagram\\.com\\/(?:p|reel)\\/[A-Za-z0-9_-]{5,64}\\/)$"}},"required":["source"]}}}}}},"/delegated":{"get":{"operationId":"getDelegated","summary":"List profiles delegated to the actor","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}}}},"/profiles/{profileId}/grants":{"get":{"operationId":"getProfilesByProfileIdGrants","summary":"List a profile's grants","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"profileId","required":true}]},"post":{"operationId":"postProfilesByProfileIdGrants","summary":"Grant an agency access to a profile","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agencyAccountId":{"type":"string"},"scope":{"enum":["edit","manage"],"type":"string"}},"required":["agencyAccountId"]}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"profileId","required":true}]}},"/profiles/{profileId}/grants/by-email":{"post":{"operationId":"postProfilesByProfileIdGrantsByEmail","summary":"Grant an agency access to a profile by the agency's account email","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"scope":{"enum":["edit","manage"],"type":"string"}},"required":["email"]}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"profileId","required":true}]}},"/profiles/{profileId}/grants/{grantId}":{"patch":{"operationId":"patchProfilesByProfileIdGrantsByGrantId","summary":"Change a grant's scope (edit | manage)","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"scope":{"enum":["edit","manage"],"type":"string"}},"required":["scope"]}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"profileId","required":true},{"schema":{"type":"string"},"in":"path","name":"grantId","required":true}]},"delete":{"operationId":"deleteProfilesByProfileIdGrantsByGrantId","summary":"Revoke a grant","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"profileId","required":true},{"schema":{"type":"string"},"in":"path","name":"grantId","required":true}]}},"/profiles/{profileId}/transfer":{"post":{"operationId":"postProfilesByProfileIdTransfer","summary":"Initiate an ownership transfer","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"toUserId":{"type":"string"}},"required":["toUserId"]}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"profileId","required":true}]}},"/transfers/incoming":{"get":{"operationId":"getTransfersIncoming","summary":"List incoming transfers","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}}}},"/transfers/outgoing":{"get":{"operationId":"getTransfersOutgoing","summary":"List outgoing transfers","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}}}},"/transfers/{transferId}/accept":{"post":{"operationId":"postTransfersByTransferIdAccept","summary":"Accept a transfer","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"transferId","required":true}]}},"/transfers/{transferId}/decline":{"post":{"operationId":"postTransfersByTransferIdDecline","summary":"Decline a transfer","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"transferId","required":true}]}},"/transfers/{transferId}/cancel":{"post":{"operationId":"postTransfersByTransferIdCancel","summary":"Cancel a transfer","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"transferId","required":true}]}},"/api-keys":{"get":{"operationId":"getApiKeys","summary":"List the actor's API keys","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}}},"post":{"operationId":"postApiKeys","summary":"Create an API key","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":100}},"required":[]}}}}}},"/api-keys/{id}":{"delete":{"operationId":"deleteApiKeysById","summary":"Revoke an API key","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}]}},"/account":{"delete":{"operationId":"deleteAccount","summary":"Permanently delete the signed-in account","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"confirm":{"type":"string","minLength":1,"maxLength":320}},"required":["confirm"]}}}}}},"/billing/entitlement":{"get":{"operationId":"getBillingEntitlement","summary":"Get billing entitlement","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}}}},"/billing/checkout":{"post":{"operationId":"postBillingCheckout","summary":"Create a Stripe Checkout session","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"seats":{"type":"integer","minimum":1},"agencyAddon":{"type":"boolean"},"successUrl":{"type":"string"},"cancelUrl":{"type":"string"}},"required":["successUrl","cancelUrl"]}}}}}},"/billing/portal":{"post":{"operationId":"postBillingPortal","summary":"Create a Stripe Billing Portal session","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"returnUrl":{"type":"string"}},"required":["returnUrl"]}}}}}},"/billing/preview":{"post":{"operationId":"postBillingPreview","summary":"Preview a prorated seat change","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"delta":{"type":"integer"}},"required":["delta"]}}}}}},"/billing/agency-addon":{"post":{"operationId":"postBillingAgencyAddon","summary":"Toggle the agency add-on","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"}},"required":["enabled"]}}}}}},"/billing/webhook":{"post":{"operationId":"postBillingWebhook","summary":"Stripe webhook receiver","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}}}},"/profiles/{profileId}/domains":{"get":{"operationId":"getProfilesByProfileIdDomains","summary":"List a profile's custom domains","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"profileId","required":true}]},"post":{"operationId":"postProfilesByProfileIdDomains","summary":"Add a custom domain","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"hostname":{"type":"string"}},"required":["hostname"]}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"profileId","required":true}]}},"/domains/{domainId}/verify":{"post":{"operationId":"postDomainsByDomainIdVerify","summary":"Re-check a domain's status","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"domainId","required":true}]}},"/domains/{domainId}":{"delete":{"operationId":"deleteDomainsByDomainId","summary":"Remove a custom domain","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"domainId","required":true}]}},"/profiles/{profileId}/stats":{"get":{"operationId":"getProfilesByProfileIdStats","summary":"Get a profile's stats","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"parameters":[{"in":"query","name":"grain","schema":{"type":"string"}},{"in":"query","name":"days","schema":{"type":"number","minimum":1}},{"schema":{"type":"string"},"in":"path","name":"profileId","required":true}]}},"/profiles/{profileId}/breakdown":{"get":{"operationId":"getProfilesByProfileIdBreakdown","summary":"Get a profile's breakdown by dimension","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"parameters":[{"in":"query","name":"dim","schema":{"type":"string"},"required":true},{"in":"query","name":"days","schema":{"type":"number","minimum":1}},{"schema":{"type":"string"},"in":"path","name":"profileId","required":true}]}},"/profiles/{profileId}/mentions":{"get":{"operationId":"getProfilesByProfileIdMentions","summary":"Get a profile's X mentions","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"profileId","required":true}]}},"/reports":{"post":{"operationId":"postReports","summary":"File an abuse report against a public profile","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"slug":{"type":"string","minLength":3,"maxLength":50},"reason":{"enum":["spam","impersonation","harassment","illegal","adult","other"],"type":"string"},"details":{"type":"string","maxLength":1000,"default":""},"reporterEmail":{"anyOf":[{"const":""},{"type":"string","format":"email","maxLength":254}],"default":""}},"required":["slug","reason"]}}}}}},"/showcase":{"get":{"operationId":"getShowcase","summary":"List opted-in, published profiles for the public showcase","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}}}}}},"components":{}}