Here are the API calls to get the subreddits a logged in user moderates:
Reddit OAuth API (Requires Authentication)
Primary Endpoint:
GET https://oauth.reddit.com/subreddits/mine/moderator
Implementation Examples:
Node.js with Fetch:
javascriptconst getModeratedSubreddits = async (accessToken) => {
  try {
    const response = await fetch('https://oauth.reddit.com/subreddits/mine/moderator', {
      headers: {
        'Authorization': `Bearer ${accessToken}`,
        'User-Agent': 'YourApp/1.0.0'
      }
    });

    if (!response.ok) {
      throw new Error(`HTTP ${response.status}: ${response.statusText}`);
    }

    const data = await response.json();
    return data.data.children.map(sub => ({
      name: sub.data.display_name,
      title: sub.data.title,
      subscribers: sub.data.subscribers,
      url: sub.data.url,
      description: sub.data.public_description,
      over18: sub.data.over18
    }));
  } catch (error) {
    throw new Error(`Failed to fetch moderated subreddits: ${error.message}`);
  }
};
Express Route:
javascriptapp.get('/api/reddit/moderated-subreddits', async (req, res) => {
  try {
    // Get access token from your auth service
    const accessToken = await redditAuth.getAccessToken();
    
    const response = await fetch('https://oauth.reddit.com/subreddits/mine/moderator', {
      headers: {
        'Authorization': `Bearer ${accessToken}`,
        'User-Agent': 'YourApp/1.0.0'
      }
    });

    if (!response.ok) {
      throw new Error(`Reddit API error: ${response.status}`);
    }

    const data = await response.json();
    const subreddits = data.data.children.map(sub => ({
      name: sub.data.display_name,
      title: sub.data.title,
      subscribers: sub.data.subscribers,
      url: sub.data.url,
      description: sub.data.public_description,
      created_utc: sub.data.created_utc,
      lang: sub.data.lang,
      over18: sub.data.over18
    }));

    res.json({
      success: true,
      subreddits,
      count: subreddits.length
    });

  } catch (error) {
    res.status(500).json({
      success: false,
      message: error.message
    });
  }
});
Using Snoowrap (Recommended):
javascriptconst snoowrap = require('snoowrap');

const reddit = new snoowrap({
  userAgent: 'YourApp/1.0.0',
  clientId: process.env.REDDIT_CLIENT_ID,
  clientSecret: process.env.REDDIT_CLIENT_SECRET,
  refreshToken: process.env.REDDIT_REFRESH_TOKEN
});

app.get('/api/reddit/moderated-subreddits', async (req, res) => {
  try {
    const moderatedSubs = await reddit.getModeratedSubreddits();
    
    const subreddits = moderatedSubs.map(sub => ({
      name: sub.display_name,
      title: sub.title,
      subscribers: sub.subscribers,
      url: sub.url,
      description: sub.public_description,
      created_utc: sub.created_utc,
      over18: sub.over18
    }));

    res.json({
      success: true,
      subreddits,
      count: subreddits.length
    });

  } catch (error) {
    res.status(500).json({
      success: false,
      message: `Failed to fetch moderated subreddits: ${error.message}`
    });
  }
});
React Frontend Hook:
javascript// hooks/useModeratedSubreddits.js
import { useState, useEffect } from 'react';

export const useModeratedSubreddits = () => {
  const [subreddits, setSubreddits] = useState([]);
  const [loading, setLoading] = useState(false);
  const [error, setError] = useState(null);

  const fetchModeratedSubreddits = async () => {
    setLoading(true);
    setError(null);
    
    try {
      const response = await fetch('/api/reddit/moderated-subreddits');
      
      if (!response.ok) {
        throw new Error('Failed to fetch moderated subreddits');
      }
      
      const data = await response.json();
      setSubreddits(data.subreddits || []);
    } catch (err) {
      setError(err.message);
    } finally {
      setLoading(false);
    }
  };

  useEffect(() => {
    fetchModeratedSubreddits();
  }, []);

  return { subreddits, loading, error, refetch: fetchModeratedSubreddits };
};
Alternative Endpoints:
Get All Subreddits User is Associated With:
GET https://oauth.reddit.com/subreddits/mine/subscriber
GET https://oauth.reddit.com/subreddits/mine/contributor  
GET https://oauth.reddit.com/subreddits/mine/moderator
With Query Parameters:
javascript// Add limit and pagination
const url = 'https://oauth.reddit.com/subreddits/mine/moderator?limit=100';

// With after parameter for pagination
const url = 'https://oauth.reddit.com/subreddits/mine/moderator?limit=25&after=t5_subreddit_id';
Complete Example with Error Handling:
javascriptconst getModeratedSubreddits = async (accessToken, options = {}) => {
  const { limit = 100, after = null } = options;
  
  const params = new URLSearchParams({ limit });
  if (after) params.append('after', after);
  
  try {
    const response = await fetch(
      `https://oauth.reddit.com/subreddits/mine/moderator?${params}`,
      {
        headers: {
          'Authorization': `Bearer ${accessToken}`,
          'User-Agent': 'YourApp/1.0.0'
        }
      }
    );

    if (!response.ok) {
      const errorData = await response.json().catch(() => ({}));
      throw new Error(errorData.message || `HTTP ${response.status}`);
    }

    const data = await response.json();
    
    return {
      subreddits: data.data.children.map(sub => sub.data),
      after: data.data.after,
      before: data.data.before
    };
    
  } catch (error) {
    throw new Error(`Failed to fetch moderated subreddits: ${error.message}`);
  }
};
Required Scopes:
Make sure your Reddit app has the read scope for accessing this endpoint. When setting up OAuth, include:
javascriptconst scopes = ['read', 'identity'];
The /subreddits/mine/moderator endpoint is the standard way to get moderated subreddits for the authenticated user.