Skip to content

Social

Source code in superme_sdk/services/_social.py
class SocialMixin:
    def get_connected_accounts(self, user_id: Optional[str] = None) -> dict:
        """Return connected social accounts for the authenticated user.

        Example:
            ```python
            accounts = client.get_connected_accounts()
            for acc in accounts["connected_accounts"]:
                print(acc["platform"], acc["handle"])
            ```

        Args:
            user_id: Target user ID. Omit to use the authenticated user.

        Returns:
            Dict with ``connected_accounts`` and ``connected_blogs`` fields.
        """
        params: dict[str, Any] = {}
        uid = user_id or self.user_id
        if uid:
            params["user_id"] = uid
        resp = self._rest_http.get("/api/v3/social/connected_accounts", params=params)
        self._check_rest_response(resp)
        return resp.json()

    def connect_social(
        self,
        platform: str,
        handle: str,
        token: Optional[str] = None,
    ) -> dict:
        """Connect a social platform account.

        Example:
            ```python
            client.connect_social("x", "myhandle")
            client.connect_social("beehiiv", "my-pub", token="beehiiv_token")
            ```

        Args:
            platform: Platform name — one of: medium, substack, x, instagram,
                youtube, beehiiv, google_drive, linkedin, github, notion.
            handle: Username / handle / URL for the platform.
            token: API token (required for beehiiv; optional for github).

        Returns:
            Dict with ``status`` field.
        """
        body: dict[str, Any] = {"platform": platform, "handle": handle}
        if token is not None:
            body["token"] = token
        resp = self._rest_http.post("/api/v3/social/connect", json=body)
        self._check_rest_response(resp)
        return resp.json()

    def disconnect_social(self, platform: str) -> dict:
        """Disconnect a social platform account.

        Example:
            ```python
            client.disconnect_social("x")
            ```

        Args:
            platform: Platform name to disconnect.

        Returns:
            Dict with ``status`` field.
        """
        resp = self._rest_http.post(
            "/api/v3/social/disconnect", json={"platform": platform}
        )
        self._check_rest_response(resp)
        return resp.json()

    def connect_blog(self, url: str) -> dict:
        """Connect a custom blog or website.

        Example:
            ```python
            client.connect_blog("https://myblog.com")
            ```

        Args:
            url: Full URL of the blog (e.g. ``https://myblog.com``).
                 Substack, Medium, Beehiiv, YouTube, and GitHub URLs are rejected.

        Returns:
            Dict with ``status`` field.
        """
        resp = self._rest_http.post("/api/v3/social/connect_blog", json={"url": url})
        self._check_rest_response(resp)
        return resp.json()

    def disconnect_blog(self, url: str) -> dict:
        """Disconnect a custom blog.

        Example:
            ```python
            client.disconnect_blog("https://myblog.com")
            ```

        Args:
            url: Full URL of the blog to disconnect.

        Returns:
            Dict with ``status`` field.
        """
        resp = self._rest_http.post("/api/v3/social/disconnect_blog", json={"url": url})
        self._check_rest_response(resp)
        return resp.json()

get_connected_accounts

get_connected_accounts(
    user_id: Optional[str] = None,
) -> dict

Return connected social accounts for the authenticated user.

Example
accounts = client.get_connected_accounts()
for acc in accounts["connected_accounts"]:
    print(acc["platform"], acc["handle"])

Parameters:

Name Type Description Default
user_id Optional[str]

Target user ID. Omit to use the authenticated user.

None

Returns:

Type Description
dict

Dict with connected_accounts and connected_blogs fields.

Source code in superme_sdk/services/_social.py
def get_connected_accounts(self, user_id: Optional[str] = None) -> dict:
    """Return connected social accounts for the authenticated user.

    Example:
        ```python
        accounts = client.get_connected_accounts()
        for acc in accounts["connected_accounts"]:
            print(acc["platform"], acc["handle"])
        ```

    Args:
        user_id: Target user ID. Omit to use the authenticated user.

    Returns:
        Dict with ``connected_accounts`` and ``connected_blogs`` fields.
    """
    params: dict[str, Any] = {}
    uid = user_id or self.user_id
    if uid:
        params["user_id"] = uid
    resp = self._rest_http.get("/api/v3/social/connected_accounts", params=params)
    self._check_rest_response(resp)
    return resp.json()

connect_social

connect_social(
    platform: str, handle: str, token: Optional[str] = None
) -> dict

Connect a social platform account.

Example
client.connect_social("x", "myhandle")
client.connect_social("beehiiv", "my-pub", token="beehiiv_token")

Parameters:

Name Type Description Default
platform str

Platform name — one of: medium, substack, x, instagram, youtube, beehiiv, google_drive, linkedin, github, notion.

required
handle str

Username / handle / URL for the platform.

required
token Optional[str]

API token (required for beehiiv; optional for github).

None

Returns:

Type Description
dict

Dict with status field.

Source code in superme_sdk/services/_social.py
def connect_social(
    self,
    platform: str,
    handle: str,
    token: Optional[str] = None,
) -> dict:
    """Connect a social platform account.

    Example:
        ```python
        client.connect_social("x", "myhandle")
        client.connect_social("beehiiv", "my-pub", token="beehiiv_token")
        ```

    Args:
        platform: Platform name — one of: medium, substack, x, instagram,
            youtube, beehiiv, google_drive, linkedin, github, notion.
        handle: Username / handle / URL for the platform.
        token: API token (required for beehiiv; optional for github).

    Returns:
        Dict with ``status`` field.
    """
    body: dict[str, Any] = {"platform": platform, "handle": handle}
    if token is not None:
        body["token"] = token
    resp = self._rest_http.post("/api/v3/social/connect", json=body)
    self._check_rest_response(resp)
    return resp.json()

disconnect_social

disconnect_social(platform: str) -> dict

Disconnect a social platform account.

Example
client.disconnect_social("x")

Parameters:

Name Type Description Default
platform str

Platform name to disconnect.

required

Returns:

Type Description
dict

Dict with status field.

Source code in superme_sdk/services/_social.py
def disconnect_social(self, platform: str) -> dict:
    """Disconnect a social platform account.

    Example:
        ```python
        client.disconnect_social("x")
        ```

    Args:
        platform: Platform name to disconnect.

    Returns:
        Dict with ``status`` field.
    """
    resp = self._rest_http.post(
        "/api/v3/social/disconnect", json={"platform": platform}
    )
    self._check_rest_response(resp)
    return resp.json()

connect_blog

connect_blog(url: str) -> dict

Connect a custom blog or website.

Example
client.connect_blog("https://myblog.com")

Parameters:

Name Type Description Default
url str

Full URL of the blog (e.g. https://myblog.com). Substack, Medium, Beehiiv, YouTube, and GitHub URLs are rejected.

required

Returns:

Type Description
dict

Dict with status field.

Source code in superme_sdk/services/_social.py
def connect_blog(self, url: str) -> dict:
    """Connect a custom blog or website.

    Example:
        ```python
        client.connect_blog("https://myblog.com")
        ```

    Args:
        url: Full URL of the blog (e.g. ``https://myblog.com``).
             Substack, Medium, Beehiiv, YouTube, and GitHub URLs are rejected.

    Returns:
        Dict with ``status`` field.
    """
    resp = self._rest_http.post("/api/v3/social/connect_blog", json={"url": url})
    self._check_rest_response(resp)
    return resp.json()

disconnect_blog

disconnect_blog(url: str) -> dict

Disconnect a custom blog.

Example
client.disconnect_blog("https://myblog.com")

Parameters:

Name Type Description Default
url str

Full URL of the blog to disconnect.

required

Returns:

Type Description
dict

Dict with status field.

Source code in superme_sdk/services/_social.py
def disconnect_blog(self, url: str) -> dict:
    """Disconnect a custom blog.

    Example:
        ```python
        client.disconnect_blog("https://myblog.com")
        ```

    Args:
        url: Full URL of the blog to disconnect.

    Returns:
        Dict with ``status`` field.
    """
    resp = self._rest_http.post("/api/v3/social/disconnect_blog", json={"url": url})
    self._check_rest_response(resp)
    return resp.json()