rynn-k / gists
tokviewer.js javascript
const axios = require('axios');

async function tokviewer({ username, limit = 10 } = {}) {
    try {
        if (!username) throw new Error('Username is required.');
        if (isNaN(limit)) throw new Error('Limit must be a number.');
        
        const [{ data: profile }, { data: posts }] = await Promise.all([
            axios.post('https://tokviewer.net/api/check-profile', {
                username: username
            }, {
                headers: {
                    origin: 'https://tokviewer.net',
                    referer: 'https://tokviewer.net/'
                }
            }),
            axios.post('https://tokviewer.net/api/video', {
                username: username,
                offset: 0,
                limit: limit
            }, {
                headers: {
                    origin: 'https://tokviewer.net',
                    referer: 'https://tokviewer.net/'
                }
            })
        ]);
        
        const { data: reposts } = await axios.post('https://tokviewer.net/api/repost', {
            sec_uid: profile.data.sec_uid,
            offset: 0,
            limit: limit
        }, {
            headers: {
                origin: 'https://tokviewer.net',
                referer: 'https://tokviewer.net/tiktok-repost-viewer'
            }
        })
        
        return {
            profile_info: {
                username: username,
                ...profile.data
            },
            posts: posts.data,
            reposts: reposts.data
        };
    } catch (error) {
        throw new Error(error.message);
    }
}

// Usage:
tokviewer({ username: 'randyy.kunn' }).then(console.log);
1674 bytes ยท Updated Mar 10, 2026