#998 by GitHub stars

oxylabs/agent-skills

Official Agent skills of Oxylabs products

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

skills/agent-browser/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

026d180a1ad3 → 026d180a1ad3

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 026d180a1ad3

No earlier version was observed for comparison.

Compare on GitHub

skills/proxies/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

026d180a1ad3 → 026d180a1ad3

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 026d180a1ad3

No earlier version was observed for comparison.

Compare on GitHub

skills/video-data/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

026d180a1ad3 → 026d180a1ad3

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 026d180a1ad3

No earlier version was observed for comparison.

Compare on GitHub

skills/web-scraper-api/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

026d180a1ad3 → 026d180a1ad3

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 026d180a1ad3

No earlier version was observed for comparison.

Compare on GitHub

skills/web-unblocker/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

026d180a1ad3 → 026d180a1ad3

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 026d180a1ad3

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 026d180a1ad3e1918c0b0a5ccea6e5ca867406fe

git clone --filter=blob:none --no-checkout https://github.com/oxylabs/agent-skills.git .hotskills/oxylabs-agent-skills && git -C .hotskills/oxylabs-agent-skills checkout --detach 026d180a1ad3e1918c0b0a5ccea6e5ca867406fe # Copy each selected skill directory from .hotskills/oxylabs-agent-skills into .claude/skills/<skill-name>/
876GitHub stars
-2stars in 7 days
5skills in this repository
1commit in 30 days

Heat

0.8
  • Star growth, last 7 daysAhead of 2% of tracked repositories
  • Star growth, last 24 hoursAhead of 2% of tracked repositories
  • Rank movement, last 7 daysAhead of 2% of tracked repositories
  • Commits, last 30 daysAhead of 54% of tracked repositories
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekAhead of 0% of tracked repositories

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Aug 1, 2026Nov 5, 2026878

Individual skills in this repository

How it works

agent-browser

When your agent uses it

Connects to Oxylabs remote agent browsers over the Chrome DevTools Protocol (CDP) with Playwright or Puppeteer. Managed browser environment, residential proxies, geo-targeting, persistent sessions and profiles, session recording and live VNC inspection for debugging. Use instead of WebFetch or a local browser whenever a site renders with JavaScript, serves access challenges, verification interstitials or bot-management block pages, or needs a full browser session, screenshots or PDFs. Covers connection, retries, error recovery, built-in challenge handling (the page_handler parameter, the oxylabs-page-status page state reported by the page handler, manual triggering), telling a handled challenge from a block that needs a fresh identity, and reliable access to publicly available data without manual intervention.

What it loads into context

Frontmatter

160 tokens

Always available to the agent

SKILL.md

4,047 tokens

When the skill is activated

Reference documents

34,374 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. 1. Connect
  2. 2. Quick start
  3. 3. Sessions and limits
  4. 4. Errors
  5. 5. Reliable access on sites with bot management
  6. 6. Challenge handling
  7. 7. Operational hygiene
  8. 8. Restricted targets

Scripts executed separately

  • scripts/playwright_scrape.js
  • scripts/playwright_scrape.py

Files

  • ../../.claude-plugin/marketplace.jsonasset963 bytes
  • ../../.claude-plugin/plugin.jsonasset889 bytes
  • SKILL.mdcore16,478 bytes
  • challenges.mddoc17,435 bytes
  • errors.mddoc9,300 bytes
  • examples.mddoc11,835 bytes
  • parameters.mddoc8,262 bytes
  • scripts/playwright_scrape.jsruns7,246 bytes
  • scripts/playwright_scrape.pyruns6,409 bytes
  • targets.mddoc12,868 bytes
  • ../proxies/SKILL.mddoc6,603 bytes
  • ../proxies/dedicated-datacenter.mddoc5,960 bytes
  • ../proxies/dedicated-isp.mddoc5,823 bytes
  • ../proxies/examples.mddoc8,550 bytes
  • ../proxies/proxy-types.mddoc5,573 bytes
  • ../video-data/SKILL.mddoc5,694 bytes
  • ../video-data/examples.mddoc5,769 bytes
  • ../web-scraper-api/SKILL.mddoc5,826 bytes
  • ../web-scraper-api/examples.mddoc6,041 bytes
  • ../web-scraper-api/sources.mddoc5,501 bytes
  • ../web-unblocker/SKILL.mddoc3,458 bytes
  • ../web-unblocker/examples.mddoc4,766 bytes
Read SKILL.md

# Oxylabs Agent Browser

Remote Chrome sessions in a managed browser environment with proxy rotation and geo-targeting built in.
Nothing runs locally: you connect over a WebSocket, drive the browser with the CDP library you already
use, and close the session when done. This file holds the rules; the detail lives next to it:
`scripts/` (copyable templates), `parameters.md`, `errors.md`, `examples.md`, `targets.md`, `challenges.md`.

## 1. Connect

| Item | Value |
|------|-------|
| Endpoint | `wss://USERNAME:PASSWORD@hb.oxylabs.io` |
| Credentials | `OXY_AB_USERNAME` / `OXY_AB_PASSWORD` |
| Options | URL query parameters only, e.g. `?p_cc=US&session_name=job-42` (see `parameters.md`) |
View the complete source on GitHub

Skills included

  • agent-browser
  • proxies
  • video-data
  • web-scraper-api
  • web-unblocker

Repository facts

License
MIT
Created
Feb 17, 2026
Last pushed
Oct 16, 2026
Forks
2
Open issues
0
Project activity
Active

Rank over the last 12 weeks

Now #998 · best #662 · down 264 in 30 days

  1. #979 on Nov 2
  2. #984 on Nov 3
  3. #989 from Nov 4 to Nov 5
  4. #991 on Nov 6
  5. #997 on Nov 7
  6. #998 since Nov 8
41 earlier periods
  1. #999 on Aug 1
  2. #835 on Aug 8
  3. #841 on Aug 9
  4. #877 on Aug 10
  5. #875 on Aug 11
  6. #874 on Aug 12
  7. #848 on Aug 17
  8. #867 on Aug 18
  9. #856 on Aug 19
  10. #841 on Aug 20
  11. #840 on Aug 21
  12. #775 on Aug 22
  13. #824 on Aug 23
  14. #808 on Aug 24
  15. #805 on Aug 25
  16. #773 on Aug 26
  17. #761 on Aug 27
  18. #752 on Aug 28
  19. #678 on Aug 29
  20. #662 on Aug 30
  21. #680 on Aug 31
  22. #682 on Sep 1
  23. #677 on Sep 3
  24. #687 on Sep 7
  25. #709 on Sep 8
  26. #689 on Sep 12
  27. #713 on Sep 14
  28. #705 on Sep 15
  29. #717 on Sep 21
  30. #735 on Sep 22
  31. #726 on Sep 23
  32. #732 on Sep 28
  33. #766 on Sep 29
  34. #734 on Oct 5
  35. #798 on Oct 14
  36. #942 on Oct 25
  37. #958 on Oct 28
  38. #962 on Oct 29
  39. #965 on Oct 30
  40. #969 on Oct 31
  41. #972 on Nov 1

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 4, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 23 notes
  • skills/proxies/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/proxies/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/proxies/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/proxies/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/proxies/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/proxies/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/video-data/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/video-data/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/video-data/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/video-data/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/video-data/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/video-data/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/video-data/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/video-data/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/web-scraper-api/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/web-scraper-api/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/web-scraper-api/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/web-scraper-api/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/web-unblocker/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/web-unblocker/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 699 signals by file

.claude-plugin/marketplace.json

  • Network accessline 1
    {   "$schema": "https://json.schemastore.org/claude-code-marketplace.json",
  • Network accessline 2
    "$schema": "https://json.schemastore.org/claude-code-marketplace.json",
  • Network accessline 5
    "name": "Oxylabs",     "email": "support@oxylabs.io",     "url": "https://oxylabs.io"
  • Network accessline 6
    "email": "support@oxylabs.io",     "url": "https://oxylabs.io"   },
  • Network accessline 7
    "url": "https://oxylabs.io"
  • Network accessline 16
    "author": {         "name": "Oxylabs",         "url": "https://oxylabs.io"
  • Network accessline 17
    "name": "Oxylabs",         "url": "https://oxylabs.io"       },
  • Network accessline 18
    "url": "https://oxylabs.io"

.claude-plugin/plugin.json

  • Network accessline 1
    {   "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
  • Network accessline 2
    "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
  • Network accessline 8
    "name": "Oxylabs",     "email": "support@oxylabs.io",     "url": "https://oxylabs.io"
  • Network accessline 9
    "email": "support@oxylabs.io",     "url": "https://oxylabs.io"   },
  • Network accessline 10
    "url": "https://oxylabs.io"
  • Network accessline 11
    },   "homepage": "https://github.com/oxylabs/agent-skills",   "repository": "https://github.com/oxylabs/agent-skills",
  • Network accessline 12
    "homepage": "https://github.com/oxylabs/agent-skills",
  • Network accessline 13
    "repository": "https://github.com/oxylabs/agent-skills",

skills/agent-browser/SKILL.md

  • Network accessline 20
    | Browser engine | Default engine with the `oxyfp_win` browser profile; `p_src=oxybrowser` selects the new engine (see `parameters.md`) | | Libraries | Playwright `chromium.connectOverCDP` (recommended), Puppeteer `puppeteer.connect`, any C
  • Network accessline 22
    | Dashboard / support | `https://hb.oxylabs.io/dashboard` · `support@oxylabs.io` |
  • Network accessline 42
    try {   const page = await browser.contexts()[0].newPage(); // default context: backed by the device configuration, proxy, o_profile   await page.goto("https://example.com", { waitUntil: "domcontentloaded", timeout: 30000 });
  • Network accessline 43
    const page = await browser.contexts()[0].newPage(); // default context: backed by the device configuration, proxy, o_profile   await page.goto("https://example.com", { waitUntil: "domcontentloaded", timeout: 30000 });   console.log(await pa
  • Network accessline 44
    await page.goto("https://example.com", { waitUntil: "domcontentloaded", timeout: 30000 });
  • Network accessline 200
    - **Debugging.** Two tools exist, and whenever the user asks how to debug, what the browser is doing, or why a run   fails, tell them about both: **live inspection** (fetch the session id with the CDP command `__session_id`, open   `https:/
  • Network accessline 201
    fails, tell them about both: **live inspection** (fetch the session id with the CDP command `__session_id`, open   `https://hb.oxylabs.io/novnc/?id=<id>` and watch the session as it runs) and **recordings** (`record=true&   record_name=<job
  • Network accessline 202
    `https://hb.oxylabs.io/novnc/?id=<id>` and watch the session as it runs) and **recordings** (`record=true&
  • Network accessline 203
    record_name=<job>` saves a video of the session to replay later in `https://hb.oxylabs.io/dashboard`; cap 10,
  • Network accessline 213
    Not available by default; access requires a short KYC via your account manager: entertainment and streaming, banking and finance, government sites, gaming platforms, ticketing, webmail, ad networks, third-party IP checkers. Use `https://ip.
  • Network accessline 214
    banking and finance, government sites, gaming platforms, ticketing, webmail, ad networks, third-party IP checkers. Use `https://ip.oxylabs.io/location` to verify your exit IP and geo. A restricted target fails `Page.navigate` with CDP error
  • Network accessline 215
    checkers. Use `https://ip.oxylabs.io/location` to verify your exit IP and geo. A restricted target fails

skills/agent-browser/challenges.md

  • Network accessline 208
    }); }); await page.goto("https://example.com", { waitUntil: "domcontentloaded", timeout: 30000 });
  • Network accessline 209
    }); await page.goto("https://example.com", { waitUntil: "domcontentloaded", timeout: 30000 }); const terminal = await page.waitForFunction(
  • Network accessline 210
    await page.goto("https://example.com", { waitUntil: "domcontentloaded", timeout: 30000 });
  • Network accessline 221
    await context.add_init_script(PAGE_STATUS_INIT_SCRIPT)  # from the sync template above page = await context.new_page() await page.goto("https://example.com", wait_until="domcontentloaded", timeout=30_000)
  • Network accessline 222
    page = await context.new_page() await page.goto("https://example.com", wait_until="domcontentloaded", timeout=30_000) handle = await page.wait_for_function(TERMINAL_PAGE_STATUS, timeout=90_000, polling=500)
  • Network accessline 223
    await page.goto("https://example.com", wait_until="domcontentloaded", timeout=30_000)
  • Network accessline 241
    });`, }, cdpSession); await send("Page.navigate", { url: "https://example.com" }, cdpSession);
  • Network accessline 242
    }, cdpSession); await send("Page.navigate", { url: "https://example.com" }, cdpSession); const deadline = Date.now() + 90000;
  • Network accessline 243
    await send("Page.navigate", { url: "https://example.com" }, cdpSession);
  • Network accessline 326
    await setupProfile("https://target.example/");
  • Network accessline 327
    await scrape("https://target.example/listing/1", identity); // consumers: o_profile without o_profile_save

skills/agent-browser/examples.md

  • Network accessline 46
    await page.goto("https://example.com", { waitUntil: "domcontentloaded", timeout: 30000 });
  • Access to secretsline 60
    [Credential-related source omitted]
  • Access to secretsline 61
    [Credential-related source omitted]
  • Network accessline 91
    await page.goto("https://example.com", wait_until="domcontentloaded", timeout=30_000)
  • Network accessline 134
    try {     const { value: sessionId } = await send("__session_id");     console.log("session_id:", sessionId, "inspect: https://hb.oxylabs.io/novnc/?id=" + sessionId);
  • Network accessline 135
    const { value: sessionId } = await send("__session_id");     console.log("session_id:", sessionId, "inspect: https://hb.oxylabs.io/novnc/?id=" + sessionId);     const { targetId } = await send("Target.createTarget", { url: "about:blank" });
  • Network accessline 136
    console.log("session_id:", sessionId, "inspect: https://hb.oxylabs.io/novnc/?id=" + sessionId);
  • Network accessline 138
    const { sessionId: cdpSession } = await send("Target.attachToTarget", { targetId, flatten: true });     await send("Page.enable", {}, cdpSession);     await send("Page.navigate", { url: "https://example.com" }, cdpSession);
  • Network accessline 139
    await send("Page.enable", {}, cdpSession);     await send("Page.navigate", { url: "https://example.com" }, cdpSession);   } finally {
  • Network accessline 140
    await send("Page.navigate", { url: "https://example.com" }, cdpSession);
  • Network accessline 162
    const browser = await puppeteer.connect({ browserWSEndpoint: endpointUrl({ session_name: "job-42", p_cc: "US" }) }); const page = await browser.newPage(); await page.goto("https://example.com/");
  • Network accessline 163
    const page = await browser.newPage(); await page.goto("https://example.com/"); // ... choose region and currency, accept the cookie banner ...
  • Network accessline 164
    await page.goto("https://example.com/");
  • Network accessline 174
    const ctx = browser.contexts()[0];   const page = ctx.pages().find((p) => p.url().includes("example.com")) ?? (await ctx.newPage());   await page.goto("https://example.com/catalog"); // region and currency choice still applied
  • Network accessline 175
    const page = ctx.pages().find((p) => p.url().includes("example.com")) ?? (await ctx.newPage());   await page.goto("https://example.com/catalog"); // region and currency choice still applied } finally {
  • Network accessline 176
    await page.goto("https://example.com/catalog"); // region and currency choice still applied
  • Network accessline 215
    // Consumer service: any number of runs, never o_profile_save. await setupProfile("https://target.example/");
  • Network accessline 216
    await setupProfile("https://target.example/");
  • Network accessline 217
    await scrape("https://target.example/listing/1", identity);
  • Network accessline 218
    await scrape("https://target.example/listing/2", identity);
  • Network accessline 233
    const { value: sessionId } = await cdp.send("__session_id");   console.log(`session_id: ${sessionId}`);   console.log(`live view:  https://hb.oxylabs.io/novnc/?id=${sessionId}`);
  • Network accessline 234
    console.log(`session_id: ${sessionId}`);   console.log(`live view:  https://hb.oxylabs.io/novnc/?id=${sessionId}`);   await page.goto("https://example.com");
  • Network accessline 235
    console.log(`live view:  https://hb.oxylabs.io/novnc/?id=${sessionId}`);
  • Network accessline 236
    await page.goto("https://example.com");
  • Network accessline 237
    } finally {   await browser.close(); // the recording is finalised and appears in https://hb.oxylabs.io/dashboard }
  • Network accessline 238
    await browser.close(); // the recording is finalised and appears in https://hb.oxylabs.io/dashboard

skills/agent-browser/parameters.md

  • Access to secretsline 54
    [Credential-related source omitted]

skills/agent-browser/scripts/playwright_scrape.js

  • Executable scriptline 1
    Executable file
  • Network accessline 134
    scrape("https://example.com", PARAMS) // challenge? scrape(url, { ...PARAMS, ...CHALLENGE_ESCALATION }); blocked? { ...PARAMS, ...ENGINE_ESCALATION }

skills/agent-browser/scripts/playwright_scrape.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 4
    [Credential-related source omitted]
  • Access to secretsline 5
    [Credential-related source omitted]
  • Network accessline 130
    if __name__ == "__main__":     print(len(scrape("https://example.com", PARAMS)), "bytes")
  • Network accessline 131
    print(len(scrape("https://example.com", PARAMS)), "bytes")

skills/agent-browser/targets.md

  • Access to secretsline 3
    [Credential-related source omitted]
  • Network accessline 125
    6. **Slow down**: double the pauses, one identity at a time, `<= 30` pages per identity. 7. **Inspect**: after 3 consecutive failures on the same target, fetch `__session_id` and watch the session    at `https://hb.oxylabs.io/novnc/?id=<id>
  • Network accessline 126
    7. **Inspect**: after 3 consecutive failures on the same target, fetch `__session_id` and watch the session    at `https://hb.oxylabs.io/novnc/?id=<id>`, or add `record=true&record_name=<job>`; confirm what the page    actually shows (block
  • Network accessline 127
    at `https://hb.oxylabs.io/novnc/?id=<id>`, or add `record=true&record_name=<job>`; confirm what the page

skills/proxies/SKILL.md

  • Network accessline 55
    curl -x "pr.oxylabs.io:7777" \
  • Network accessline 55
    curl -x "pr.oxylabs.io:7777" \
  • Network accessline 57
    "https://ip.oxylabs.io/location"
  • Network accessline 57
    "https://ip.oxylabs.io/location"
  • Network accessline 62
    curl -x "dc.oxylabs.io:8000" \
  • Network accessline 62
    curl -x "dc.oxylabs.io:8000" \
  • Network accessline 64
    "https://ip.oxylabs.io/location"
  • Network accessline 64
    "https://ip.oxylabs.io/location"
  • Network accessline 69
    curl -x "isp.oxylabs.io:8001" \
  • Network accessline 69
    curl -x "isp.oxylabs.io:8001" \
  • Network accessline 71
    "https://ip.oxylabs.io/location"
  • Network accessline 71
    "https://ip.oxylabs.io/location"
  • Network accessline 79
    |---------|----------|-----------|----------| |HTTP|	TCP|	pr.oxylabs.io:7777|	Default. Supported by common libraries and third-party software| |HTTPS|	TCP|	https://pr.oxylabs.io:7777|	Fully encrypted connection to the proxy|
  • Network accessline 79
    |---------|----------|-----------|----------| |HTTP|	TCP|	pr.oxylabs.io:7777|	Default. Supported by common libraries and third-party software| |HTTPS|	TCP|	https://pr.oxylabs.io:7777|	Fully encrypted connection to the proxy|
  • Network accessline 80
    |HTTP|	TCP|	pr.oxylabs.io:7777|	Default. Supported by common libraries and third-party software| |HTTPS|	TCP|	https://pr.oxylabs.io:7777|	Fully encrypted connection to the proxy| |SOCKS5|	TCP and UDP|	socks5h://pr.oxylabs.io:7777|	Client re
  • Network accessline 80
    |HTTP|	TCP|	pr.oxylabs.io:7777|	Default. Supported by common libraries and third-party software| |HTTPS|	TCP|	https://pr.oxylabs.io:7777|	Fully encrypted connection to the proxy| |SOCKS5|	TCP and UDP|	socks5h://pr.oxylabs.io:7777|	Client re
  • Network accessline 81
    |HTTPS|	TCP|	https://pr.oxylabs.io:7777|	Fully encrypted connection to the proxy|
  • Network accessline 81
    |HTTPS|	TCP|	https://pr.oxylabs.io:7777|	Fully encrypted connection to the proxy|
  • Network accessline 106
    curl -x "pr.oxylabs.io:7777" \
  • Network accessline 106
    curl -x "pr.oxylabs.io:7777" \
  • Network accessline 108
    "https://ip.oxylabs.io/location"
  • Network accessline 108
    "https://ip.oxylabs.io/location"
  • Network accessline 123
    curl -x "pr.oxylabs.io:7777" \
  • Network accessline 123
    curl -x "pr.oxylabs.io:7777" \
  • Network accessline 125
    "https://example.com"
  • Network accessline 125
    "https://example.com"
  • Network accessline 130
    curl -x "pr.oxylabs.io:7777" \
  • Network accessline 130
    curl -x "pr.oxylabs.io:7777" \
  • Network accessline 132
    "https://example.com"
  • Network accessline 132
    "https://example.com"

skills/proxies/dedicated-datacenter.md

  • Network accessline 7
    Purchased via [dashboard](https://dashboard.oxylabs.io/en/). Proxy list: **My Products → Dedicated Datacenter Proxies → Proxy list** (export JSON/CSV).
  • Network accessline 7
    Purchased via [dashboard](https://dashboard.oxylabs.io/en/). Proxy list: **My Products → Dedicated Datacenter Proxies → Proxy list** (export JSON/CSV).
  • Network accessline 21
    curl -x ddc.oxylabs.io:8001 -U "user-USERNAME:PASSWORD" https://ip.oxylabs.io/location
  • Network accessline 21
    curl -x ddc.oxylabs.io:8001 -U "user-USERNAME:PASSWORD" https://ip.oxylabs.io/location
  • Network accessline 29
    curl -x ddc.oxylabs.io:8000 -U "user-USERNAME:PASSWORD" https://ip.oxylabs.io/location
  • Network accessline 29
    curl -x ddc.oxylabs.io:8000 -U "user-USERNAME:PASSWORD" https://ip.oxylabs.io/location
  • Network accessline 37
    curl -x ddc.oxylabs.io:8000 -U "user-USERNAME-country-US:PASSWORD" https://ip.oxylabs.io/location
  • Network accessline 37
    curl -x ddc.oxylabs.io:8000 -U "user-USERNAME-country-US:PASSWORD" https://ip.oxylabs.io/location
  • Network accessline 46
    | Protocol | Example | |----------|---------| | HTTP | `http://ddc.oxylabs.io:8001` |
  • Network accessline 46
    | Protocol | Example | |----------|---------| | HTTP | `http://ddc.oxylabs.io:8001` |
  • Network accessline 47
    |----------|---------| | HTTP | `http://ddc.oxylabs.io:8001` | | HTTPS | `https://ddc.oxylabs.io:8001` |
  • Network accessline 47
    |----------|---------| | HTTP | `http://ddc.oxylabs.io:8001` | | HTTPS | `https://ddc.oxylabs.io:8001` |
  • Network accessline 48
    | HTTP | `http://ddc.oxylabs.io:8001` |
  • Network accessline 48
    | HTTP | `http://ddc.oxylabs.io:8001` |
  • Network accessline 49
    | HTTPS | `https://ddc.oxylabs.io:8001` |
  • Network accessline 49
    | HTTPS | `https://ddc.oxylabs.io:8001` |
  • Access to secretsline 59
    [Credential-related source omitted]
  • Access to secretsline 59
    [Credential-related source omitted]
  • Access to secretsline 60
    [Credential-related source omitted]
  • Access to secretsline 60
    [Credential-related source omitted]
  • Network accessline 63
    proxies = {     "http": f"http://user-{user}:{pwd}@ddc.oxylabs.io:{port}",
  • Network accessline 63
    proxies = {     "http": f"http://user-{user}:{pwd}@ddc.oxylabs.io:{port}",
  • Network accessline 64
    "http": f"http://user-{user}:{pwd}@ddc.oxylabs.io:{port}",
  • Network accessline 64
    "http": f"http://user-{user}:{pwd}@ddc.oxylabs.io:{port}",
  • Network accessline 65
    "https": f"http://user-{user}:{pwd}@ddc.oxylabs.io:{port}", } resp = requests.get("https://ip.oxylabs.io/location", proxies=proxies)
  • Network accessline 65
    "https": f"http://user-{user}:{pwd}@ddc.oxylabs.io:{port}", } resp = requests.get("https://ip.oxylabs.io/location", proxies=proxies)
  • Network accessline 67
    resp = requests.get("https://ip.oxylabs.io/location", proxies=proxies)
  • Network accessline 67
    resp = requests.get("https://ip.oxylabs.io/location", proxies=proxies)
  • Network accessline 96
    # Username/password curl -x 1.2.3.4:60000 -U "USERNAME:PASSWORD" https://ip.oxylabs.io/location
  • Network accessline 96
    # Username/password curl -x 1.2.3.4:60000 -U "USERNAME:PASSWORD" https://ip.oxylabs.io/location
  • Network accessline 97
    curl -x 1.2.3.4:60000 -U "USERNAME:PASSWORD" https://ip.oxylabs.io/location
  • Network accessline 97
    curl -x 1.2.3.4:60000 -U "USERNAME:PASSWORD" https://ip.oxylabs.io/location
  • Network accessline 99
    # Whitelisted IP curl -x 1.2.3.4:65432 https://ip.oxylabs.io/location
  • Network accessline 99
    # Whitelisted IP curl -x 1.2.3.4:65432 https://ip.oxylabs.io/location
  • Network accessline 100
    curl -x 1.2.3.4:65432 https://ip.oxylabs.io/location
  • Network accessline 100
    curl -x 1.2.3.4:65432 https://ip.oxylabs.io/location
  • Network accessline 106
    # Browser or API — HTTP Basic Auth curl -u "USERNAME:PASSWORD" https://proxy.oxylabs.io/all
  • Network accessline 106
    # Browser or API — HTTP Basic Auth curl -u "USERNAME:PASSWORD" https://proxy.oxylabs.io/all
  • Network accessline 107
    curl -u "USERNAME:PASSWORD" https://proxy.oxylabs.io/all
  • Network accessline 107
    curl -u "USERNAME:PASSWORD" https://proxy.oxylabs.io/all
  • Network accessline 109
    # With location metadata curl -u "USERNAME:PASSWORD" "https://proxy.oxylabs.io/all?showCountry"
  • Network accessline 109
    # With location metadata curl -u "USERNAME:PASSWORD" "https://proxy.oxylabs.io/all?showCountry"
  • Network accessline 110
    curl -u "USERNAME:PASSWORD" "https://proxy.oxylabs.io/all?showCountry"
  • Network accessline 110
    curl -u "USERNAME:PASSWORD" "https://proxy.oxylabs.io/all?showCountry"
  • Network accessline 111
    curl -u "USERNAME:PASSWORD" "https://proxy.oxylabs.io/all?showCity"
  • Network accessline 111
    curl -u "USERNAME:PASSWORD" "https://proxy.oxylabs.io/all?showCity"
  • Network accessline 116
    | Endpoint | Purpose | |----------|---------| | `GET https://api.oxylabs.io/v1/proxies/lists` | List all proxy lists |
  • Network accessline 116
    | Endpoint | Purpose | |----------|---------| | `GET https://api.oxylabs.io/v1/proxies/lists` | List all proxy lists |
  • Network accessline 117
    |----------|---------| | `GET https://api.oxylabs.io/v1/proxies/lists` | List all proxy lists | | `GET https://api.oxylabs.io/v1/proxies/lists/{uuid}` | Get specific list (IP, port, country, city) |
  • Network accessline 117
    |----------|---------| | `GET https://api.oxylabs.io/v1/proxies/lists` | List all proxy lists | | `GET https://api.oxylabs.io/v1/proxies/lists/{uuid}` | Get specific list (IP, port, country, city) |
  • Network accessline 118
    | `GET https://api.oxylabs.io/v1/proxies/lists` | List all proxy lists |
  • Network accessline 118
    | `GET https://api.oxylabs.io/v1/proxies/lists` | List all proxy lists |
  • Network accessline 119
    | `GET https://api.oxylabs.io/v1/proxies/lists/{uuid}` | Get specific list (IP, port, country, city) |
  • Network accessline 119
    | `GET https://api.oxylabs.io/v1/proxies/lists/{uuid}` | Get specific list (IP, port, country, city) |
  • Network accessline 126
    curl -x vm.oxylabs.io:60000 -U "USERNAME:PASSWORD" https://ip.oxylabs.io/location
  • Network accessline 126
    curl -x vm.oxylabs.io:60000 -U "USERNAME:PASSWORD" https://ip.oxylabs.io/location
  • Network accessline 132
    curl -x vm.oxylabs.io:60000 -U "USER:PASS" https://ip.oxylabs.io/location \
  • Network accessline 132
    curl -x vm.oxylabs.io:60000 -U "USER:PASS" https://ip.oxylabs.io/location \
  • Network accessline 147
    s = requests.Session()
  • Network accessline 147
    s = requests.Session()
  • Network accessline 148
    s.proxies = {"https": "http://USER:PASS@vm.oxylabs.io:60000"}
  • Network accessline 148
    s.proxies = {"https": "http://USER:PASS@vm.oxylabs.io:60000"}
  • Network accessline 150
    s.get("https://ip.oxylabs.io/location")
  • Network accessline 150
    s.get("https://ip.oxylabs.io/location")
  • Network accessline 155
    | Method | Endpoint | Notes | |--------|----------|-------| | `GET` | `https://api.oxylabs.io/v1/whitelisted_ips` | List IPs + ids (`200`) |
  • Network accessline 155
    | Method | Endpoint | Notes | |--------|----------|-------| | `GET` | `https://api.oxylabs.io/v1/whitelisted_ips` | List IPs + ids (`200`) |
  • Network accessline 156
    |--------|----------|-------| | `GET` | `https://api.oxylabs.io/v1/whitelisted_ips` | List IPs + ids (`200`) | | `POST` | `https://api.oxylabs.io/v1/whitelisted_ips` | Add one — body `{"address": "x.x.x.x"}` (`201`, `422` invalid) |
  • Network accessline 156
    |--------|----------|-------| | `GET` | `https://api.oxylabs.io/v1/whitelisted_ips` | List IPs + ids (`200`) | | `POST` | `https://api.oxylabs.io/v1/whitelisted_ips` | Add one — body `{"address": "x.x.x.x"}` (`201`, `422` invalid) |
  • Network accessline 157
    | `GET` | `https://api.oxylabs.io/v1/whitelisted_ips` | List IPs + ids (`200`) |
  • Network accessline 157
    | `GET` | `https://api.oxylabs.io/v1/whitelisted_ips` | List IPs + ids (`200`) |
  • Network accessline 158
    | `POST` | `https://api.oxylabs.io/v1/whitelisted_ips` | Add one — body `{"address": "x.x.x.x"}` (`201`, `422` invalid) |
  • Network accessline 158
    | `POST` | `https://api.oxylabs.io/v1/whitelisted_ips` | Add one — body `{"address": "x.x.x.x"}` (`201`, `422` invalid) |
  • Network accessline 159
    | `DELETE` | `https://api.oxylabs.io/v1/whitelisted_ips/{id}` | Remove by id (`204`) |
  • Network accessline 159
    | `DELETE` | `https://api.oxylabs.io/v1/whitelisted_ips/{id}` | Remove by id (`204`) |
  • Network accessline 160
    | `POST` | `https://api.oxylabs.io/v1/whitelisted_ips/upload_to_servers` | Apply changes to servers (`202`; 5-min cooldown → `429`) |
  • Network accessline 160
    | `POST` | `https://api.oxylabs.io/v1/whitelisted_ips/upload_to_servers` | Apply changes to servers (`202`; 5-min cooldown → `429`) |
  • Network accessline 166
    OpenAPI spec: https://dc-api-spec.oxylabs.io/ — add/replace subnets, check offline IPs via Subnets endpoint.
  • Network accessline 166
    OpenAPI spec: https://dc-api-spec.oxylabs.io/ — add/replace subnets, check offline IPs via Subnets endpoint.

skills/proxies/dedicated-isp.md

  • Network accessline 9
    Purchased via [dashboard](https://dashboard.oxylabs.io/en/) — select locations and premium ASNs at checkout. Proxy list: **My Products → Dedicated ISP Proxies → Proxy list** (export JSON/CSV).
  • Network accessline 9
    Purchased via [dashboard](https://dashboard.oxylabs.io/en/) — select locations and premium ASNs at checkout. Proxy list: **My Products → Dedicated ISP Proxies → Proxy list** (export JSON/CSV).
  • Network accessline 25
    curl -x disp.oxylabs.io:8001 -U "user-USERNAME:PASSWORD" https://ip.oxylabs.io/location
  • Network accessline 25
    curl -x disp.oxylabs.io:8001 -U "user-USERNAME:PASSWORD" https://ip.oxylabs.io/location
  • Network accessline 33
    curl -x disp.oxylabs.io:8000 -U "user-USERNAME:PASSWORD" https://ip.oxylabs.io/location
  • Network accessline 33
    curl -x disp.oxylabs.io:8000 -U "user-USERNAME:PASSWORD" https://ip.oxylabs.io/location
  • Network accessline 41
    curl -x disp.oxylabs.io:8000 -U "user-USERNAME-country-US:PASSWORD" https://ip.oxylabs.io/location
  • Network accessline 41
    curl -x disp.oxylabs.io:8000 -U "user-USERNAME-country-US:PASSWORD" https://ip.oxylabs.io/location
  • Network accessline 50
    GeoIP databases may show original IP owner, not current ISP. For accurate ASN data, check [RIPEstat](https://stat.ripe.net/).
  • Network accessline 50
    GeoIP databases may show original IP owner, not current ISP. For accurate ASN data, check [RIPEstat](https://stat.ripe.net/).
  • Network accessline 54
    | Protocol | Example | |----------|---------| | HTTP | `http://disp.oxylabs.io:8001` |
  • Network accessline 54
    | Protocol | Example | |----------|---------| | HTTP | `http://disp.oxylabs.io:8001` |
  • Network accessline 55
    |----------|---------| | HTTP | `http://disp.oxylabs.io:8001` | | HTTPS | `https://disp.oxylabs.io:8001` |
  • Network accessline 55
    |----------|---------| | HTTP | `http://disp.oxylabs.io:8001` | | HTTPS | `https://disp.oxylabs.io:8001` |
  • Network accessline 56
    | HTTP | `http://disp.oxylabs.io:8001` |
  • Network accessline 56
    | HTTP | `http://disp.oxylabs.io:8001` |
  • Network accessline 57
    | HTTPS | `https://disp.oxylabs.io:8001` |
  • Network accessline 57
    | HTTPS | `https://disp.oxylabs.io:8001` |
  • Access to secretsline 67
    [Credential-related source omitted]
  • Access to secretsline 67
    [Credential-related source omitted]
  • Access to secretsline 68
    [Credential-related source omitted]
  • Access to secretsline 68
    [Credential-related source omitted]
  • Network accessline 71
    proxies = {     "http": f"http://user-{user}:{pwd}@disp.oxylabs.io:{port}",
  • Network accessline 71
    proxies = {     "http": f"http://user-{user}:{pwd}@disp.oxylabs.io:{port}",
  • Network accessline 72
    "http": f"http://user-{user}:{pwd}@disp.oxylabs.io:{port}",
  • Network accessline 72
    "http": f"http://user-{user}:{pwd}@disp.oxylabs.io:{port}",
  • Network accessline 73
    "https": f"http://user-{user}:{pwd}@disp.oxylabs.io:{port}", } resp = requests.get("https://ip.oxylabs.io/location", proxies=proxies)
  • Network accessline 73
    "https": f"http://user-{user}:{pwd}@disp.oxylabs.io:{port}", } resp = requests.get("https://ip.oxylabs.io/location", proxies=proxies)
  • Network accessline 75
    resp = requests.get("https://ip.oxylabs.io/location", proxies=proxies)
  • Network accessline 75
    resp = requests.get("https://ip.oxylabs.io/location", proxies=proxies)
  • Network accessline 104
    curl -x 1.2.3.4:60000 -U "USERNAME:PASSWORD" https://ip.oxylabs.io/location
  • Network accessline 104
    curl -x 1.2.3.4:60000 -U "USERNAME:PASSWORD" https://ip.oxylabs.io/location
  • Network accessline 105
    curl -x 1.2.3.4:65432 https://ip.oxylabs.io/location  # whitelisted
  • Network accessline 105
    curl -x 1.2.3.4:65432 https://ip.oxylabs.io/location  # whitelisted
  • Network accessline 111
    curl -u "USERNAME:PASSWORD" https://proxy.oxylabs.io/all
  • Network accessline 111
    curl -u "USERNAME:PASSWORD" https://proxy.oxylabs.io/all
  • Network accessline 116
    | Endpoint | Purpose | |----------|---------| | `GET https://api.oxylabs.io/v1/proxies/lists` | List all proxy lists |
  • Network accessline 116
    | Endpoint | Purpose | |----------|---------| | `GET https://api.oxylabs.io/v1/proxies/lists` | List all proxy lists |
  • Network accessline 117
    |----------|---------| | `GET https://api.oxylabs.io/v1/proxies/lists` | List all proxy lists | | `GET https://api.oxylabs.io/v1/proxies/lists/{uuid}` | Get specific list |
  • Network accessline 117
    |----------|---------| | `GET https://api.oxylabs.io/v1/proxies/lists` | List all proxy lists | | `GET https://api.oxylabs.io/v1/proxies/lists/{uuid}` | Get specific list |
  • Network accessline 118
    | `GET https://api.oxylabs.io/v1/proxies/lists` | List all proxy lists |
  • Network accessline 118
    | `GET https://api.oxylabs.io/v1/proxies/lists` | List all proxy lists |
  • Network accessline 119
    | `GET https://api.oxylabs.io/v1/proxies/lists/{uuid}` | Get specific list |
  • Network accessline 119
    | `GET https://api.oxylabs.io/v1/proxies/lists/{uuid}` | Get specific list |
  • Network accessline 126
    curl -x vm.oxylabs.io:60000 -U "USERNAME:PASSWORD" https://ip.oxylabs.io/location
  • Network accessline 126
    curl -x vm.oxylabs.io:60000 -U "USERNAME:PASSWORD" https://ip.oxylabs.io/location
  • Network accessline 132
    curl -x vm.oxylabs.io:60000 -U "USER:PASS" https://ip.oxylabs.io/location \
  • Network accessline 132
    curl -x vm.oxylabs.io:60000 -U "USER:PASS" https://ip.oxylabs.io/location \
  • Network accessline 138
    | Method | Endpoint | Notes | |--------|----------|-------| | `GET` | `https://api.oxylabs.io/v1/whitelisted_ips` | List IPs + ids (`200`) |
  • Network accessline 138
    | Method | Endpoint | Notes | |--------|----------|-------| | `GET` | `https://api.oxylabs.io/v1/whitelisted_ips` | List IPs + ids (`200`) |
  • Network accessline 139
    |--------|----------|-------| | `GET` | `https://api.oxylabs.io/v1/whitelisted_ips` | List IPs + ids (`200`) | | `POST` | `https://api.oxylabs.io/v1/whitelisted_ips` | Add one — body `{"address": "x.x.x.x"}` (`201`, `422` invalid) |
  • Network accessline 139
    |--------|----------|-------| | `GET` | `https://api.oxylabs.io/v1/whitelisted_ips` | List IPs + ids (`200`) | | `POST` | `https://api.oxylabs.io/v1/whitelisted_ips` | Add one — body `{"address": "x.x.x.x"}` (`201`, `422` invalid) |
  • Network accessline 140
    | `GET` | `https://api.oxylabs.io/v1/whitelisted_ips` | List IPs + ids (`200`) |
  • Network accessline 140
    | `GET` | `https://api.oxylabs.io/v1/whitelisted_ips` | List IPs + ids (`200`) |
  • Network accessline 141
    | `POST` | `https://api.oxylabs.io/v1/whitelisted_ips` | Add one — body `{"address": "x.x.x.x"}` (`201`, `422` invalid) |
  • Network accessline 141
    | `POST` | `https://api.oxylabs.io/v1/whitelisted_ips` | Add one — body `{"address": "x.x.x.x"}` (`201`, `422` invalid) |
  • Network accessline 142
    | `DELETE` | `https://api.oxylabs.io/v1/whitelisted_ips/{id}` | Remove by id (`204`) |
  • Network accessline 142
    | `DELETE` | `https://api.oxylabs.io/v1/whitelisted_ips/{id}` | Remove by id (`204`) |
  • Network accessline 143
    | `POST` | `https://api.oxylabs.io/v1/whitelisted_ips/upload_to_servers` | Apply changes to servers (`202`; 5-min cooldown → `429`) |
  • Network accessline 143
    | `POST` | `https://api.oxylabs.io/v1/whitelisted_ips/upload_to_servers` | Apply changes to servers (`202`; 5-min cooldown → `429`) |
  • Network accessline 149
    OpenAPI spec: https://dc-api-spec.oxylabs.io/ — add/replace subnets, check offline IPs.
  • Network accessline 149
    OpenAPI spec: https://dc-api-spec.oxylabs.io/ — add/replace subnets, check offline IPs.

skills/proxies/examples.md

  • Network accessline 10
    curl -x ddc.oxylabs.io:8001 -U "user-$OXY_DC_USERNAME:$OXY_DC_PASSWORD" \
  • Network accessline 10
    curl -x ddc.oxylabs.io:8001 -U "user-$OXY_DC_USERNAME:$OXY_DC_PASSWORD" \
  • Network accessline 11
    https://ip.oxylabs.io/location
  • Network accessline 11
    https://ip.oxylabs.io/location
  • Network accessline 16
    curl -x ddc.oxylabs.io:8000 \
  • Network accessline 16
    curl -x ddc.oxylabs.io:8000 \
  • Network accessline 18
    https://ip.oxylabs.io/location
  • Network accessline 18
    https://ip.oxylabs.io/location
  • Access to secretsline 24
    [Credential-related source omitted]
  • Access to secretsline 24
    [Credential-related source omitted]
  • Network accessline 27
    proxies = {     "http": f"http://user-{user}:{pwd}@ddc.oxylabs.io:{port}",
  • Network accessline 27
    proxies = {     "http": f"http://user-{user}:{pwd}@ddc.oxylabs.io:{port}",
  • Network accessline 28
    "http": f"http://user-{user}:{pwd}@ddc.oxylabs.io:{port}",
  • Network accessline 28
    "http": f"http://user-{user}:{pwd}@ddc.oxylabs.io:{port}",
  • Network accessline 29
    "https": f"http://user-{user}:{pwd}@ddc.oxylabs.io:{port}", } print(requests.get("https://ip.oxylabs.io/location", proxies=proxies).json())
  • Network accessline 29
    "https": f"http://user-{user}:{pwd}@ddc.oxylabs.io:{port}", } print(requests.get("https://ip.oxylabs.io/location", proxies=proxies).json())
  • Network accessline 31
    print(requests.get("https://ip.oxylabs.io/location", proxies=proxies).json())
  • Network accessline 31
    print(requests.get("https://ip.oxylabs.io/location", proxies=proxies).json())
  • Network accessline 38
    curl -x disp.oxylabs.io:8001 -U "user-$OXY_DC_USERNAME:$OXY_DC_PASSWORD" \
  • Network accessline 38
    curl -x disp.oxylabs.io:8001 -U "user-$OXY_DC_USERNAME:$OXY_DC_PASSWORD" \
  • Network accessline 39
    https://ip.oxylabs.io/location
  • Network accessline 39
    https://ip.oxylabs.io/location
  • Network accessline 44
    curl -x disp.oxylabs.io:8000 -U "user-$OXY_DC_USERNAME:$OXY_DC_PASSWORD" \
  • Network accessline 44
    curl -x disp.oxylabs.io:8000 -U "user-$OXY_DC_USERNAME:$OXY_DC_PASSWORD" \
  • Network accessline 45
    https://ip.oxylabs.io/location
  • Network accessline 45
    https://ip.oxylabs.io/location
  • Network accessline 51
    [Credential-related source omitted]
  • Network accessline 51
    [Credential-related source omitted]
  • Access to secretsline 51
    [Credential-related source omitted]
  • Access to secretsline 51
    [Credential-related source omitted]
  • Network accessline 52
    proxies = {     "http": f"http://user-{user}:{pwd}@disp.oxylabs.io:8001",     "https": f"http://user-{user}:{pwd}@disp.oxylabs.io:8001",
  • Network accessline 52
    proxies = {     "http": f"http://user-{user}:{pwd}@disp.oxylabs.io:8001",     "https": f"http://user-{user}:{pwd}@disp.oxylabs.io:8001",
  • Network accessline 53
    "http": f"http://user-{user}:{pwd}@disp.oxylabs.io:8001",
  • Network accessline 53
    "http": f"http://user-{user}:{pwd}@disp.oxylabs.io:8001",
  • Network accessline 54
    "https": f"http://user-{user}:{pwd}@disp.oxylabs.io:8001", } print(requests.get("https://ip.oxylabs.io/location", proxies=proxies).json())
  • Network accessline 54
    "https": f"http://user-{user}:{pwd}@disp.oxylabs.io:8001", } print(requests.get("https://ip.oxylabs.io/location", proxies=proxies).json())
  • Network accessline 56
    print(requests.get("https://ip.oxylabs.io/location", proxies=proxies).json())
  • Network accessline 56
    print(requests.get("https://ip.oxylabs.io/location", proxies=proxies).json())
  • Network accessline 62
    # Username/password on port 60000 curl -x 1.2.3.4:60000 -U "$OXY_DC_USERNAME:$OXY_DC_PASSWORD" \
  • Network accessline 62
    # Username/password on port 60000 curl -x 1.2.3.4:60000 -U "$OXY_DC_USERNAME:$OXY_DC_PASSWORD" \
  • Network accessline 63
    curl -x 1.2.3.4:60000 -U "$OXY_DC_USERNAME:$OXY_DC_PASSWORD" \
  • Network accessline 63
    curl -x 1.2.3.4:60000 -U "$OXY_DC_USERNAME:$OXY_DC_PASSWORD" \
  • Network accessline 64
    https://ip.oxylabs.io/location
  • Network accessline 64
    https://ip.oxylabs.io/location
  • Network accessline 66
    # Whitelisted IP on port 65432 (no credentials) curl -x 1.2.3.4:65432 https://ip.oxylabs.io/location
  • Network accessline 66
    # Whitelisted IP on port 65432 (no credentials) curl -x 1.2.3.4:65432 https://ip.oxylabs.io/location
  • Network accessline 67
    curl -x 1.2.3.4:65432 https://ip.oxylabs.io/location
  • Network accessline 67
    curl -x 1.2.3.4:65432 https://ip.oxylabs.io/location
  • Access to secretsline 74
    [Credential-related source omitted]
  • Access to secretsline 74
    [Credential-related source omitted]
  • Access to secretsline 75
    [Credential-related source omitted]
  • Access to secretsline 75
    [Credential-related source omitted]
  • Network accessline 83
    s = requests.Session()
  • Network accessline 83
    s = requests.Session()
  • Network accessline 84
    s.proxies = {"https": f"http://{user}:{pwd}@vm.oxylabs.io:60000"}
  • Network accessline 84
    s.proxies = {"https": f"http://{user}:{pwd}@vm.oxylabs.io:60000"}
  • Network accessline 86
    print(s.get("https://ip.oxylabs.io/location").text)
  • Network accessline 86
    print(s.get("https://ip.oxylabs.io/location").text)
  • Network accessline 93
    curl -x "pr.oxylabs.io:7777" \
  • Network accessline 93
    curl -x "pr.oxylabs.io:7777" \
  • Network accessline 95
    "https://ip.oxylabs.io/location"
  • Network accessline 95
    "https://ip.oxylabs.io/location"
  • Network accessline 100
    curl -x "pr.oxylabs.io:7777" \
  • Network accessline 100
    curl -x "pr.oxylabs.io:7777" \
  • Network accessline 102
    "https://ip.oxylabs.io/location"
  • Network accessline 102
    "https://ip.oxylabs.io/location"
  • Network accessline 107
    curl -x "pr.oxylabs.io:7777" \
  • Network accessline 107
    curl -x "pr.oxylabs.io:7777" \
  • Network accessline 109
    "https://example.com"
  • Network accessline 109
    "https://example.com"
  • Network accessline 114
    curl -x "dc.oxylabs.io:8000" \
  • Network accessline 114
    curl -x "dc.oxylabs.io:8000" \
  • Network accessline 116
    "https://ip.oxylabs.io/location"
  • Network accessline 116
    "https://ip.oxylabs.io/location"
  • Network accessline 121
    curl -x "isp.oxylabs.io:8001" \
  • Network accessline 121
    curl -x "isp.oxylabs.io:8001" \
  • Network accessline 123
    "https://ip.oxylabs.io/location"
  • Network accessline 123
    "https://ip.oxylabs.io/location"
  • Access to secretsline 133
    [Credential-related source omitted]
  • Access to secretsline 133
    [Credential-related source omitted]
  • Access to secretsline 134
    [Credential-related source omitted]
  • Access to secretsline 134
    [Credential-related source omitted]
  • Network accessline 136
    proxies = {     "http": f"http://customer-{username}:{password}@pr.oxylabs.io:7777",
  • Network accessline 136
    proxies = {     "http": f"http://customer-{username}:{password}@pr.oxylabs.io:7777",
  • Network accessline 137
    "http": f"http://customer-{username}:{password}@pr.oxylabs.io:7777",
  • Network accessline 137
    "http": f"http://customer-{username}:{password}@pr.oxylabs.io:7777",
  • Network accessline 138
    "https": f"http://customer-{username}:{password}@pr.oxylabs.io:7777",
  • Network accessline 138
    "https": f"http://customer-{username}:{password}@pr.oxylabs.io:7777",
  • Network accessline 141
    response = requests.get("https://ip.oxylabs.io/location", proxies=proxies)
  • Network accessline 141
    response = requests.get("https://ip.oxylabs.io/location", proxies=proxies)
  • Access to secretsline 150
    [Credential-related source omitted]
  • Access to secretsline 150
    [Credential-related source omitted]
  • Access to secretsline 151
    [Credential-related source omitted]
  • Access to secretsline 151
    [Credential-related source omitted]
  • Network accessline 156
    proxies = {     "http": f"http://{proxy_user}:{password}@pr.oxylabs.io:7777",
  • Network accessline 156
    proxies = {     "http": f"http://{proxy_user}:{password}@pr.oxylabs.io:7777",
  • Network accessline 157
    "http": f"http://{proxy_user}:{password}@pr.oxylabs.io:7777",
  • Network accessline 157
    "http": f"http://{proxy_user}:{password}@pr.oxylabs.io:7777",
  • Network accessline 158
    "https": f"http://{proxy_user}:{password}@pr.oxylabs.io:7777"
  • Network accessline 158
    "https": f"http://{proxy_user}:{password}@pr.oxylabs.io:7777"
  • Network accessline 161
    response = requests.get("https://example.com", proxies=proxies)
  • Network accessline 161
    response = requests.get("https://example.com", proxies=proxies)
  • Access to secretsline 170
    [Credential-related source omitted]
  • Access to secretsline 170
    [Credential-related source omitted]
  • Access to secretsline 171
    [Credential-related source omitted]
  • Access to secretsline 171
    [Credential-related source omitted]
  • Network accessline 173
    proxies = {     "http": f"http://user-{username}:{password}@dc.oxylabs.io:8000",
  • Network accessline 173
    proxies = {     "http": f"http://user-{username}:{password}@dc.oxylabs.io:8000",
  • Network accessline 174
    "http": f"http://user-{username}:{password}@dc.oxylabs.io:8000",
  • Network accessline 174
    "http": f"http://user-{username}:{password}@dc.oxylabs.io:8000",
  • Network accessline 175
    "https": f"http://user-{username}:{password}@dc.oxylabs.io:8000"
  • Network accessline 175
    "https": f"http://user-{username}:{password}@dc.oxylabs.io:8000"
  • Network accessline 178
    response = requests.get("https://ip.oxylabs.io/location", proxies=proxies)
  • Network accessline 178
    response = requests.get("https://ip.oxylabs.io/location", proxies=proxies)
  • Network accessline 200
    axios.get("https://ip.oxylabs.io/location", { proxy })
  • Network accessline 200
    axios.get("https://ip.oxylabs.io/location", { proxy })
  • Network accessline 221
    axios.get("https://example.com", { proxy })
  • Network accessline 221
    axios.get("https://example.com", { proxy })
  • Network accessline 233
    $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://ip.oxylabs.io/location");
  • Network accessline 233
    $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://ip.oxylabs.io/location");
  • Network accessline 234
    curl_setopt($ch, CURLOPT_URL, "https://ip.oxylabs.io/location");
  • Network accessline 234
    curl_setopt($ch, CURLOPT_URL, "https://ip.oxylabs.io/location");
  • Network accessline 235
    curl_setopt($ch, CURLOPT_PROXY, "http://pr.oxylabs.io:7777");
  • Network accessline 235
    curl_setopt($ch, CURLOPT_PROXY, "http://pr.oxylabs.io:7777");
  • Network accessline 254
    $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://example.com");
  • Network accessline 254
    $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://example.com");
  • Network accessline 255
    curl_setopt($ch, CURLOPT_URL, "https://example.com");
  • Network accessline 255
    curl_setopt($ch, CURLOPT_URL, "https://example.com");
  • Network accessline 256
    curl_setopt($ch, CURLOPT_PROXY, "http://pr.oxylabs.io:7777");
  • Network accessline 256
    curl_setopt($ch, CURLOPT_PROXY, "http://pr.oxylabs.io:7777");
  • Network accessline 284
    proxyURL, _ := url.Parse(fmt.Sprintf(         "http://customer-%s:%s@pr.oxylabs.io:7777",
  • Network accessline 284
    proxyURL, _ := url.Parse(fmt.Sprintf(         "http://customer-%s:%s@pr.oxylabs.io:7777",
  • Network accessline 285
    "http://customer-%s:%s@pr.oxylabs.io:7777",
  • Network accessline 285
    "http://customer-%s:%s@pr.oxylabs.io:7777",
  • Network accessline 289
    client := &http.Client{
  • Network accessline 289
    client := &http.Client{
  • Network accessline 293
    resp, _ := client.Get("https://ip.oxylabs.io/location")
  • Network accessline 293
    resp, _ := client.Get("https://ip.oxylabs.io/location")
  • Network accessline 324
    URL url = new URL("https://ip.oxylabs.io/location");
  • Network accessline 324
    URL url = new URL("https://ip.oxylabs.io/location");
  • Network accessline 351
    uri = URI.parse('https://ip.oxylabs.io/location')
  • Network accessline 351
    uri = URI.parse('https://ip.oxylabs.io/location')

skills/video-data/SKILL.md

  • Network accessline 27
    POST https://realtime.oxylabs.io/v1/queries   # immediate metadata/search/subtitle responses
  • Network accessline 27
    POST https://realtime.oxylabs.io/v1/queries   # immediate metadata/search/subtitle responses
  • Network accessline 28
    POST https://data.oxylabs.io/v1/queries       # Push-Pull downloads, callbacks, storage
  • Network accessline 28
    POST https://data.oxylabs.io/v1/queries       # Push-Pull downloads, callbacks, storage
  • Network accessline 35
    curl -u "$OXY_WSA_USERNAME:$OXY_WSA_PASSWORD" ...
  • Network accessline 35
    curl -u "$OXY_WSA_USERNAME:$OXY_WSA_PASSWORD" ...
  • Network accessline 71
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 71
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 83
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 83
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 94
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 94
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 124
    curl -x "http://USERNAME-test:PASSWORD@YOUR_ENDPOINT:60000" \
  • Network accessline 124
    curl -x "http://USERNAME-test:PASSWORD@YOUR_ENDPOINT:60000" \
  • Network accessline 125
    "https://ip.oxylabs.io/location"
  • Network accessline 125
    "https://ip.oxylabs.io/location"
  • Network accessline 132
    yt-dlp --proxy "http://USERNAME-Random1Session2ID:PASSWORD@YOUR_ENDPOINT:60000" \
  • Network accessline 132
    yt-dlp --proxy "http://USERNAME-Random1Session2ID:PASSWORD@YOUR_ENDPOINT:60000" \
  • Network accessline 133
    "https://www.youtube.com/watch?v=VIDEO_ID"
  • Network accessline 133
    "https://www.youtube.com/watch?v=VIDEO_ID"
  • Access to secretsline 145
    [Credential-related source omitted]
  • Access to secretsline 145
    [Credential-related source omitted]
  • Access to secretsline 146
    [Credential-related source omitted]
  • Access to secretsline 146
    [Credential-related source omitted]
  • Access to secretsline 147
    [Credential-related source omitted]
  • Access to secretsline 147
    [Credential-related source omitted]
  • Network accessline 152
    ydl_opts = {     "proxy": f"http://{username}-{session_id}:{password}@{endpoint}:60000",
  • Network accessline 152
    ydl_opts = {     "proxy": f"http://{username}-{session_id}:{password}@{endpoint}:60000",
  • Network accessline 153
    "proxy": f"http://{username}-{session_id}:{password}@{endpoint}:60000",
  • Network accessline 153
    "proxy": f"http://{username}-{session_id}:{password}@{endpoint}:60000",
  • Network accessline 158
    with yt_dlp.YoutubeDL(ydl_opts) as ydl:     ydl.download(["https://www.youtube.com/watch?v=VIDEO_ID"])
  • Network accessline 158
    with yt_dlp.YoutubeDL(ydl_opts) as ydl:     ydl.download(["https://www.youtube.com/watch?v=VIDEO_ID"])
  • Network accessline 159
    ydl.download(["https://www.youtube.com/watch?v=VIDEO_ID"])
  • Network accessline 159
    ydl.download(["https://www.youtube.com/watch?v=VIDEO_ID"])

skills/video-data/examples.md

  • Network accessline 9
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 9
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 20
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 20
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 31
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 31
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 42
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 42
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Access to secretsline 58
    [Credential-related source omitted]
  • Access to secretsline 58
    [Credential-related source omitted]
  • Access to secretsline 59
    [Credential-related source omitted]
  • Access to secretsline 59
    [Credential-related source omitted]
  • Network accessline 61
    response = requests.post(
  • Network accessline 61
    response = requests.post(
  • Network accessline 62
    "https://realtime.oxylabs.io/v1/queries",
  • Network accessline 62
    "https://realtime.oxylabs.io/v1/queries",
  • Access to secretsline 82
    [Credential-related source omitted]
  • Access to secretsline 82
    [Credential-related source omitted]
  • Access to secretsline 83
    [Credential-related source omitted]
  • Access to secretsline 83
    [Credential-related source omitted]
  • Network accessline 85
    response = requests.post(
  • Network accessline 85
    response = requests.post(
  • Network accessline 86
    "https://realtime.oxylabs.io/v1/queries",
  • Network accessline 86
    "https://realtime.oxylabs.io/v1/queries",
  • Network accessline 112
    async function getVideoMetadata(videoId) {   const response = await axios.post(     "https://realtime.oxylabs.io/v1/queries",
  • Network accessline 112
    async function getVideoMetadata(videoId) {   const response = await axios.post(     "https://realtime.oxylabs.io/v1/queries",
  • Network accessline 113
    const response = await axios.post(     "https://realtime.oxylabs.io/v1/queries",     {
  • Network accessline 113
    const response = await axios.post(     "https://realtime.oxylabs.io/v1/queries",     {
  • Network accessline 114
    "https://realtime.oxylabs.io/v1/queries",
  • Network accessline 114
    "https://realtime.oxylabs.io/v1/queries",
  • Network accessline 140
    # Each download gets a unique IP yt-dlp --proxy $OXY_WSA_USERNAME-$((1 + RANDOM % 100000)):$OXY_WSA_PASSWORD@$OXY_HB_ENDPOINT:60000 \   "https://www.youtube.com/watch?v=VIDEO_ID"
  • Network accessline 140
    # Each download gets a unique IP yt-dlp --proxy $OXY_WSA_USERNAME-$((1 + RANDOM % 100000)):$OXY_WSA_PASSWORD@$OXY_HB_ENDPOINT:60000 \   "https://www.youtube.com/watch?v=VIDEO_ID"
  • Network accessline 141
    yt-dlp --proxy $OXY_WSA_USERNAME-$((1 + RANDOM % 100000)):$OXY_WSA_PASSWORD@$OXY_HB_ENDPOINT:60000    "https://www.youtube.com/watch?v=VIDEO_ID"
  • Network accessline 141
    yt-dlp --proxy $OXY_WSA_USERNAME-$((1 + RANDOM % 100000)):$OXY_WSA_PASSWORD@$OXY_HB_ENDPOINT:60000    "https://www.youtube.com/watch?v=VIDEO_ID"
  • Network accessline 142
    "https://www.youtube.com/watch?v=VIDEO_ID"
  • Network accessline 142
    "https://www.youtube.com/watch?v=VIDEO_ID"
  • Access to secretsline 153
    [Credential-related source omitted]
  • Access to secretsline 153
    [Credential-related source omitted]
  • Access to secretsline 154
    [Credential-related source omitted]
  • Access to secretsline 154
    [Credential-related source omitted]
  • Access to secretsline 155
    [Credential-related source omitted]
  • Access to secretsline 155
    [Credential-related source omitted]
  • Network accessline 158
    ydl_opts = {     "proxy": f"http://{username}-{session_id}:{password}@{endpoint}:60000",
  • Network accessline 158
    ydl_opts = {     "proxy": f"http://{username}-{session_id}:{password}@{endpoint}:60000",
  • Network accessline 159
    "proxy": f"http://{username}-{session_id}:{password}@{endpoint}:60000",
  • Network accessline 159
    "proxy": f"http://{username}-{session_id}:{password}@{endpoint}:60000",
  • Network accessline 164
    with yt_dlp.YoutubeDL(ydl_opts) as ydl:     ydl.download(["https://www.youtube.com/watch?v=VIDEO_ID"])
  • Network accessline 164
    with yt_dlp.YoutubeDL(ydl_opts) as ydl:     ydl.download(["https://www.youtube.com/watch?v=VIDEO_ID"])
  • Network accessline 165
    ydl.download(["https://www.youtube.com/watch?v=VIDEO_ID"])
  • Network accessline 165
    ydl.download(["https://www.youtube.com/watch?v=VIDEO_ID"])
  • Access to secretsline 174
    [Credential-related source omitted]
  • Access to secretsline 174
    [Credential-related source omitted]
  • Access to secretsline 175
    [Credential-related source omitted]
  • Access to secretsline 175
    [Credential-related source omitted]
  • Access to secretsline 176
    [Credential-related source omitted]
  • Access to secretsline 176
    [Credential-related source omitted]
  • Network accessline 179
    ydl_opts = {     "proxy": f"http://{username}-{session_id}:{password}@{endpoint}:60000",
  • Network accessline 179
    ydl_opts = {     "proxy": f"http://{username}-{session_id}:{password}@{endpoint}:60000",
  • Network accessline 180
    "proxy": f"http://{username}-{session_id}:{password}@{endpoint}:60000",
  • Network accessline 180
    "proxy": f"http://{username}-{session_id}:{password}@{endpoint}:60000",
  • Network accessline 190
    with yt_dlp.YoutubeDL(ydl_opts) as ydl:     ydl.download(["https://www.youtube.com/watch?v=VIDEO_ID"])
  • Network accessline 190
    with yt_dlp.YoutubeDL(ydl_opts) as ydl:     ydl.download(["https://www.youtube.com/watch?v=VIDEO_ID"])
  • Network accessline 191
    ydl.download(["https://www.youtube.com/watch?v=VIDEO_ID"])
  • Network accessline 191
    ydl.download(["https://www.youtube.com/watch?v=VIDEO_ID"])
  • Access to secretsline 200
    [Credential-related source omitted]
  • Access to secretsline 200
    [Credential-related source omitted]
  • Access to secretsline 201
    [Credential-related source omitted]
  • Access to secretsline 201
    [Credential-related source omitted]
  • Access to secretsline 202
    [Credential-related source omitted]
  • Access to secretsline 202
    [Credential-related source omitted]
  • Network accessline 204
    video_urls = [     "https://www.youtube.com/watch?v=VIDEO_ID_1",
  • Network accessline 204
    video_urls = [     "https://www.youtube.com/watch?v=VIDEO_ID_1",
  • Network accessline 205
    "https://www.youtube.com/watch?v=VIDEO_ID_1",
  • Network accessline 205
    "https://www.youtube.com/watch?v=VIDEO_ID_1",
  • Network accessline 206
    "https://www.youtube.com/watch?v=VIDEO_ID_2",
  • Network accessline 206
    "https://www.youtube.com/watch?v=VIDEO_ID_2",
  • Network accessline 207
    "https://www.youtube.com/watch?v=VIDEO_ID_3"
  • Network accessline 207
    "https://www.youtube.com/watch?v=VIDEO_ID_3"
  • Network accessline 214
    ydl_opts = {         "proxy": f"http://{username}-{session_id}:{password}@{endpoint}:60000",
  • Network accessline 214
    ydl_opts = {         "proxy": f"http://{username}-{session_id}:{password}@{endpoint}:60000",
  • Network accessline 215
    "proxy": f"http://{username}-{session_id}:{password}@{endpoint}:60000",
  • Network accessline 215
    "proxy": f"http://{username}-{session_id}:{password}@{endpoint}:60000",
  • Access to secretsline 234
    [Credential-related source omitted]
  • Access to secretsline 234
    [Credential-related source omitted]
  • Access to secretsline 235
    [Credential-related source omitted]
  • Access to secretsline 235
    [Credential-related source omitted]
  • Access to secretsline 236
    [Credential-related source omitted]
  • Access to secretsline 236
    [Credential-related source omitted]
  • Network accessline 239
    ydl_opts = {     "proxy": f"http://{username}-{session_id}:{password}@{endpoint}:60000",
  • Network accessline 239
    ydl_opts = {     "proxy": f"http://{username}-{session_id}:{password}@{endpoint}:60000",
  • Network accessline 240
    "proxy": f"http://{username}-{session_id}:{password}@{endpoint}:60000",
  • Network accessline 240
    "proxy": f"http://{username}-{session_id}:{password}@{endpoint}:60000",
  • Network accessline 244
    with yt_dlp.YoutubeDL(ydl_opts) as ydl:     info = ydl.extract_info(         "https://www.youtube.com/watch?v=VIDEO_ID",
  • Network accessline 244
    with yt_dlp.YoutubeDL(ydl_opts) as ydl:     info = ydl.extract_info(         "https://www.youtube.com/watch?v=VIDEO_ID",
  • Network accessline 245
    info = ydl.extract_info(         "https://www.youtube.com/watch?v=VIDEO_ID",         download=False
  • Network accessline 245
    info = ydl.extract_info(         "https://www.youtube.com/watch?v=VIDEO_ID",         download=False
  • Network accessline 246
    "https://www.youtube.com/watch?v=VIDEO_ID",         download=False     )
  • Network accessline 246
    "https://www.youtube.com/watch?v=VIDEO_ID",         download=False     )

skills/web-scraper-api/SKILL.md

  • Network accessline 13
    curl -u "$OXY_WSA_USERNAME:$OXY_WSA_PASSWORD" ...
  • Network accessline 13
    curl -u "$OXY_WSA_USERNAME:$OXY_WSA_PASSWORD" ...
  • Network accessline 19
    POST https://realtime.oxylabs.io/v1/queries   # immediate response
  • Network accessline 19
    POST https://realtime.oxylabs.io/v1/queries   # immediate response
  • Network accessline 20
    POST https://data.oxylabs.io/v1/queries       # Push-Pull jobs, callbacks, storage
  • Network accessline 20
    POST https://data.oxylabs.io/v1/queries       # Push-Pull jobs, callbacks, storage
  • Network accessline 68
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 68
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 69
    -u "$OXY_WSA_USERNAME:$OXY_WSA_PASSWORD" \   -H 'Content-Type: application/json' \   -d '{"source": "universal", "url": "https://example.com"}'
  • Network accessline 69
    -u "$OXY_WSA_USERNAME:$OXY_WSA_PASSWORD" \   -H 'Content-Type: application/json' \   -d '{"source": "universal", "url": "https://example.com"}'
  • Network accessline 71
    -d '{"source": "universal", "url": "https://example.com"}'
  • Network accessline 71
    -d '{"source": "universal", "url": "https://example.com"}'
  • Network accessline 76
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 76
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 84
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 84
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 101
    "content": "...",     "status_code": 200,     "url": "https://..."
  • Network accessline 101
    "content": "...",     "status_code": 200,     "url": "https://..."
  • Network accessline 102
    "status_code": 200,     "url": "https://..."   }]
  • Network accessline 102
    "status_code": 200,     "url": "https://..."   }]
  • Network accessline 103
    "url": "https://..."
  • Network accessline 103
    "url": "https://..."

skills/web-scraper-api/examples.md

  • Network accessline 7
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 7
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 12
    "url": "https://example.com"
  • Network accessline 12
    "url": "https://example.com"
  • Network accessline 22
    "updated_at": "2024-01-15T10:30:01.000Z",     "page": 1,     "url": "https://example.com",
  • Network accessline 22
    "updated_at": "2024-01-15T10:30:01.000Z",     "page": 1,     "url": "https://example.com",
  • Network accessline 23
    "page": 1,     "url": "https://example.com",     "job_id": "7654321",
  • Network accessline 23
    "page": 1,     "url": "https://example.com",     "job_id": "7654321",
  • Network accessline 24
    "url": "https://example.com",
  • Network accessline 24
    "url": "https://example.com",
  • Network accessline 35
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 35
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 53
    {             "pos": 1,             "url": "https://example.com/headphones",
  • Network accessline 53
    {             "pos": 1,             "url": "https://example.com/headphones",
  • Network accessline 54
    "pos": 1,             "url": "https://example.com/headphones",             "title": "Best Wireless Headphones 2024",
  • Network accessline 54
    "pos": 1,             "url": "https://example.com/headphones",             "title": "Best Wireless Headphones 2024",
  • Network accessline 55
    "url": "https://example.com/headphones",
  • Network accessline 55
    "url": "https://example.com/headphones",
  • Network accessline 73
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 73
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 95
    "seller": "Amazon.com",       "categories": ["Electronics", "Smart Home"],       "images": ["https://..."],
  • Network accessline 95
    "seller": "Amazon.com",       "categories": ["Electronics", "Smart Home"],       "images": ["https://..."],
  • Network accessline 96
    "categories": ["Electronics", "Smart Home"],       "images": ["https://..."],       "description": "..."
  • Network accessline 96
    "categories": ["Electronics", "Smart Home"],       "images": ["https://..."],       "description": "..."
  • Network accessline 97
    "images": ["https://..."],
  • Network accessline 97
    "images": ["https://..."],
  • Network accessline 109
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 109
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 149
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 149
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 154
    "url": "https://example.com/spa-page",
  • Network accessline 154
    "url": "https://example.com/spa-page",
  • Network accessline 192
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 192
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 197
    "url": "https://example.com",
  • Network accessline 197
    "url": "https://example.com",
  • Network accessline 216
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 216
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 221
    "url": "https://example.com",
  • Network accessline 221
    "url": "https://example.com",
  • Network accessline 236
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 236
    curl -X POST 'https://realtime.oxylabs.io/v1/queries' \
  • Network accessline 250
    {   "source": "invalid_source",   "url": "https://example.com"
  • Network accessline 250
    {   "source": "invalid_source",   "url": "https://example.com"
  • Network accessline 251
    "source": "invalid_source",   "url": "https://example.com" }
  • Network accessline 251
    "source": "invalid_source",   "url": "https://example.com" }
  • Network accessline 252
    "url": "https://example.com"
  • Network accessline 252
    "url": "https://example.com"
  • Network accessline 272
    response = requests.post(
  • Network accessline 272
    response = requests.post(
  • Network accessline 273
    "https://realtime.oxylabs.io/v1/queries",
  • Network accessline 273
    "https://realtime.oxylabs.io/v1/queries",
  • Access to secretsline 274
    [Credential-related source omitted]
  • Access to secretsline 274
    [Credential-related source omitted]
  • Network accessline 291
    const response = await fetch("https://realtime.oxylabs.io/v1/queries", {
  • Network accessline 291
    const response = await fetch("https://realtime.oxylabs.io/v1/queries", {

skills/web-unblocker/SKILL.md

  • Network accessline 13
    https://unblock.oxylabs.io:60000
  • Network accessline 13
    https://unblock.oxylabs.io:60000
  • Network accessline 21
    curl -k -x "https://unblock.oxylabs.io:60000" \
  • Network accessline 21
    curl -k -x "https://unblock.oxylabs.io:60000" \
  • Network accessline 23
    "https://example.com"
  • Network accessline 23
    "https://example.com"
  • Network accessline 30
    curl -k -x "https://unblock.oxylabs.io:60000" \
  • Network accessline 30
    curl -k -x "https://unblock.oxylabs.io:60000" \
  • Network accessline 32
    "https://ip.oxylabs.io/headers"
  • Network accessline 32
    "https://ip.oxylabs.io/headers"
  • Network accessline 37
    curl -k -x "https://unblock.oxylabs.io:60000" \
  • Network accessline 37
    curl -k -x "https://unblock.oxylabs.io:60000" \
  • Network accessline 38
    -U "$OXYLABS_USERNAME:$OXYLABS_PASSWORD" \   -H "x-oxylabs-render: html" \   "https://example.com/spa-page"
  • Network accessline 38
    -U "$OXYLABS_USERNAME:$OXYLABS_PASSWORD" \   -H "x-oxylabs-render: html" \   "https://example.com/spa-page"
  • Network accessline 40
    "https://example.com/spa-page"
  • Network accessline 40
    "https://example.com/spa-page"
  • Network accessline 60
    curl -k -x "https://unblock.oxylabs.io:60000" \
  • Network accessline 60
    curl -k -x "https://unblock.oxylabs.io:60000" \
  • Network accessline 61
    -U "$OXYLABS_USERNAME:$OXYLABS_PASSWORD" \   -H "X-Oxylabs-Session-Id: my-session-123" \   "https://example.com/page1"
  • Network accessline 61
    -U "$OXYLABS_USERNAME:$OXYLABS_PASSWORD" \   -H "X-Oxylabs-Session-Id: my-session-123" \   "https://example.com/page1"
  • Network accessline 63
    "https://example.com/page1"
  • Network accessline 63
    "https://example.com/page1"
  • Network accessline 69
    curl -k -x "https://unblock.oxylabs.io:60000" \
  • Network accessline 69
    curl -k -x "https://unblock.oxylabs.io:60000" \
  • Network accessline 70
    -U "$OXYLABS_USERNAME:$OXYLABS_PASSWORD" \   -H "X-Oxylabs-Geo-Location: Germany" \   "https://example.com"
  • Network accessline 70
    -U "$OXYLABS_USERNAME:$OXYLABS_PASSWORD" \   -H "X-Oxylabs-Geo-Location: Germany" \   "https://example.com"
  • Network accessline 72
    "https://example.com"
  • Network accessline 72
    "https://example.com"

skills/web-unblocker/examples.md

  • Network accessline 7
    curl -k -x "https://unblock.oxylabs.io:60000" \
  • Network accessline 7
    curl -k -x "https://unblock.oxylabs.io:60000" \
  • Network accessline 9
    "https://example.com"
  • Network accessline 9
    "https://example.com"
  • Network accessline 14
    curl -k -x "https://unblock.oxylabs.io:60000" \
  • Network accessline 14
    curl -k -x "https://unblock.oxylabs.io:60000" \
  • Network accessline 15
    -U "$OXYLABS_USERNAME:$OXYLABS_PASSWORD" \   -H "x-oxylabs-render: html" \   "https://example.com/dynamic-page"
  • Network accessline 15
    -U "$OXYLABS_USERNAME:$OXYLABS_PASSWORD" \   -H "x-oxylabs-render: html" \   "https://example.com/dynamic-page"
  • Network accessline 17
    "https://example.com/dynamic-page"
  • Network accessline 17
    "https://example.com/dynamic-page"
  • Network accessline 22
    curl -k -x "https://unblock.oxylabs.io:60000" \
  • Network accessline 22
    curl -k -x "https://unblock.oxylabs.io:60000" \
  • Network accessline 24
    -H "X-Oxylabs-Geo-Location: United States" \   -H "X-Oxylabs-Session-Id: session123" \   "https://example.com"
  • Network accessline 24
    -H "X-Oxylabs-Geo-Location: United States" \   -H "X-Oxylabs-Session-Id: session123" \   "https://example.com"
  • Network accessline 26
    "https://example.com"
  • Network accessline 26
    "https://example.com"
  • Network accessline 31
    curl -k -x "https://unblock.oxylabs.io:60000" \
  • Network accessline 31
    curl -k -x "https://unblock.oxylabs.io:60000" \
  • Network accessline 32
    -U "$OXYLABS_USERNAME:$OXYLABS_PASSWORD" \   -H "x-oxylabs-render: png" \   "https://example.com" -o screenshot.png
  • Network accessline 32
    -U "$OXYLABS_USERNAME:$OXYLABS_PASSWORD" \   -H "x-oxylabs-render: png" \   "https://example.com" -o screenshot.png
  • Network accessline 34
    "https://example.com" -o screenshot.png
  • Network accessline 34
    "https://example.com" -o screenshot.png
  • Network accessline 43
    proxies = {     "http": f"http://{os.environ['OXYLABS_USERNAME']}:{os.environ['OXYLABS_PASSWORD']}@unblock.oxylabs.io:60000",
  • Network accessline 43
    proxies = {     "http": f"http://{os.environ['OXYLABS_USERNAME']}:{os.environ['OXYLABS_PASSWORD']}@unblock.oxylabs.io:60000",
  • Network accessline 44
    [Credential-related source omitted]
  • Network accessline 44
    [Credential-related source omitted]
  • Access to secretsline 44
    [Credential-related source omitted]
  • Access to secretsline 44
    [Credential-related source omitted]
  • Network accessline 45
    [Credential-related source omitted]
  • Network accessline 45
    [Credential-related source omitted]
  • Access to secretsline 45
    [Credential-related source omitted]
  • Access to secretsline 45
    [Credential-related source omitted]
  • Network accessline 48
    # Basic request response = requests.get(
  • Network accessline 48
    # Basic request response = requests.get(
  • Network accessline 49
    response = requests.get(
  • Network accessline 49
    response = requests.get(
  • Network accessline 50
    "https://example.com",
  • Network accessline 50
    "https://example.com",
  • Network accessline 62
    proxies = {     "https": f"https://{os.environ['OXYLABS_USERNAME']}:{os.environ['OXYLABS_PASSWORD']}@unblock.oxylabs.io:60000"
  • Network accessline 62
    proxies = {     "https": f"https://{os.environ['OXYLABS_USERNAME']}:{os.environ['OXYLABS_PASSWORD']}@unblock.oxylabs.io:60000"
  • Network accessline 63
    [Credential-related source omitted]
  • Network accessline 63
    [Credential-related source omitted]
  • Access to secretsline 63
    [Credential-related source omitted]
  • Access to secretsline 63
    [Credential-related source omitted]
  • Network accessline 71
    response = requests.get(
  • Network accessline 71
    response = requests.get(
  • Network accessline 72
    "https://example.com",
  • Network accessline 72
    "https://example.com",
  • Network accessline 89
    const agent = new HttpsProxyAgent(   `https://${username}:${password}@unblock.oxylabs.io:60000`
  • Network accessline 89
    const agent = new HttpsProxyAgent(   `https://${username}:${password}@unblock.oxylabs.io:60000`
  • Network accessline 90
    `https://${username}:${password}@unblock.oxylabs.io:60000`
  • Network accessline 90
    `https://${username}:${password}@unblock.oxylabs.io:60000`
  • Network accessline 96
    async function fetchPage() {   const response = await fetch("https://example.com", {
  • Network accessline 96
    async function fetchPage() {   const response = await fetch("https://example.com", {
  • Network accessline 97
    const response = await fetch("https://example.com", {
  • Network accessline 97
    const response = await fetch("https://example.com", {
  • Network accessline 117
    $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://example.com");
  • Network accessline 117
    $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://example.com");
  • Network accessline 118
    curl_setopt($ch, CURLOPT_URL, "https://example.com");
  • Network accessline 118
    curl_setopt($ch, CURLOPT_URL, "https://example.com");
  • Network accessline 119
    curl_setopt($ch, CURLOPT_PROXY, "https://unblock.oxylabs.io:60000");
  • Network accessline 119
    curl_setopt($ch, CURLOPT_PROXY, "https://unblock.oxylabs.io:60000");
  • Network accessline 152
    proxyURL, _ := url.Parse(fmt.Sprintf(         "https://%s:%s@unblock.oxylabs.io:60000",
  • Network accessline 152
    proxyURL, _ := url.Parse(fmt.Sprintf(         "https://%s:%s@unblock.oxylabs.io:60000",
  • Network accessline 153
    "https://%s:%s@unblock.oxylabs.io:60000",
  • Network accessline 153
    "https://%s:%s@unblock.oxylabs.io:60000",
  • Network accessline 162
    client := &http.Client{Transport: transport}
  • Network accessline 162
    client := &http.Client{Transport: transport}
  • Network accessline 164
    req, _ := http.NewRequest("GET", "https://example.com", nil)
  • Network accessline 164
    req, _ := http.NewRequest("GET", "https://example.com", nil)
  • Network accessline 195
    URL url = new URL("https://example.com");
  • Network accessline 195
    URL url = new URL("https://example.com");

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Signal confidence: 1 fact

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md skills/agent-browser/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skills/agent-browser/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skills/agent-browser/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skills/agent-browser/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md skills/agent-browser/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.

Explore alternatives and comparisons

Add this badge to your README

It updates every night and links to this page.

oxylabs/agent-skills: #998 on hotskills, 876 stars

[![oxylabs/agent-skills on hotskills](https://hotskills.dev/badge/oxylabs-agent-skills.svg)](https://hotskills.dev/skill/oxylabs-agent-skills/)