Graze
    MarketplaceHelpBlogAboutLogin
    Docs
    • Introduction
    • Creating Your First Feed
    • Nodes for Beginners
    • Testing and Fixing your Feed
    • Custom Sorting
    Guides
    • Feed Feedback and Personalization
    • Content Moderation
    • Sticky Posts
    • Subscription Lists
    • Graze For Communities
    • Migrating a Feed
    • Using AI Nodes
    • Using Custom Nodes
    • Sponsored Posts
    • Embedding Feeds
    API
    • Editor Documentation
    • Custom Node API
    • Contrails
    • Graze Turbostream
    • API Documentation: Privacy Compliance Endpoints
    Help
    • Frequently Asked Questions
    • Feature Requests
    • Marketplace
    Base URL

    API Documentation: Privacy Compliance Endpoints

    Data Removal Request Process for Graze

    Base URL

    https://api.graze.social/app/api/v1/privacy-compliance

    POST /request-removal

    Submit a data removal request for a user account associated with the provided email address.

    Request

    URL: POST https://api.graze.social/app/api/v1/privacy-compliance/request-removal

    Headers:

    • Content-Type: application/json

    Request Body:

    {

    "email": "string"
    }

    Parameters:

    FieldTypeRequiredDescriptionemailstringYesThe email address associated with the account to be removed

    Response

    Success Response (200 OK):

    {

    "filed": true
    }

    Response Fields:

    FieldTypeDescriptionfiledbooleanAlways true when the request is successfully filed

    Behavior

    1. The endpoint searches for user accounts associated with the provided email in both PatreonUser and Account tables
    2. Creates a new DataRemovalRequest record with:
      • The provided email address
      • Associated patreon_user_id (if found)
      • Associated account_id (if found)
    3. If no associated accounts are found (neither Patreon nor regular account), the request is automatically marked as complied by setting complied_at to the current UTC timestamp
    4. The request is saved to the database and committed

    Example Request

    curl -X POST "https://api.graze.social/app/api/v1/privacy-compliance/request-removal" \

    -H "Content-Type: application/json" \
    -d '{"email": "user@example.com"}'

    Example Response

    {

    "filed": true
    }

    Notes

    • Requests for email addresses not associated with any account are automatically marked as complied
    • The endpoint always returns a successful response if the request is properly formatted
    • Multiple removal requests can be filed for the same email address
    • The actual data removal process may be handled asynchronously after the request is filed

    POST /request-stats

    Retrieve statistics about data removal requests.

    Request

    URL: POST https://api.graze.social/app/api/v1/privacy-compliance/request-stats

    Query Parameters:

    ParameterTypeDefaultDescriptioninclude_deletedbooleanfalseInclude deleted requests in the statistics calculations

    Response

    Success Response (200 OK):

    {

    "total_requests": 150,
    "complied_requests": 120,
    "denied_requests": 5,
    "median_response_days": 3.0,
    "mean_response_days": 4.2,
    "include_deleted": false
    }

    Response Fields:

    FieldTypeDescriptiontotal_requestsintegerTotal number of data removal requestscomplied_requestsintegerNumber of requests that have been complied withdenied_requestsintegerNumber of requests that have been deniedmedian_response_daysfloatMedian number of days to comply with requestsmean_response_daysfloatAverage number of days to comply with requestsinclude_deletedbooleanWhether deleted requests were included in the calculations

    Behavior

    • Filters out deleted requests by default (unless include_deleted=true)
    • Calculates response time only for complied requests
    • Response time is calculated as the number of days between created_at and complied_at
    • Handles timezone conversion to UTC for proper date calculations

    Example Request

    curl -X POST "https://api.graze.social/app/api/v1/privacy-compliance/request-stats?include_deleted=false"

    Example Response

    {

    "total_requests": 250,
    "complied_requests": 230,
    "denied_requests": 10,
    "median_response_days": 2.0,
    "mean_response_days": 3.5,
    "include_deleted": false
    }

    Notes

    • Response time statistics (median_response_days and mean_response_days) are only calculated for complied requests
    • If no complied requests exist or no response times are available, both median and mean will be 0
    • The statistics provide insight into GDPR/privacy compliance performance
    • Base URL
    • POST /request-removal
    • Request
    • Response
    • Behavior
    • Example Request
    • Example Response
    • Notes
    • POST /request-stats
    • Request
    • Response
    • Behavior
    • Example Request
    • Example Response
    • Notes
    Stay in the know
    Follow on BlueSkyJoin the Discorddiscord_fillSubscribe to the newsletter
    Company
    AboutBlogPressContact
    Support
    Community GuidelinesDocsSite StatusHelp CenterFeature Requests
    Legal
    Privacy PolicyTerms & Conditions
    © 2025 Graze.social. All rights reserved.