{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"proxycurl","slug":"proxycurl","name":"Proxycurl","type":"api","url":"https://nubela.co/proxycurl","page_url":"https://unfragile.ai/proxycurl","categories":["data-pipelines"],"tags":[],"pricing":{"model":"free","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"proxycurl__cap_0","uri":"capability://data.processing.analysis.linkedin.profile.data.extraction.with.structured.parsing","name":"linkedin profile data extraction with structured parsing","description":"Extracts and structures LinkedIn profile information (education, work history, skills, endorsements, recommendations) by scraping LinkedIn's public profile pages and parsing HTML/DOM into normalized JSON schemas. Uses headless browser automation or direct HTTP requests with LinkedIn session handling to bypass rate limiting, returning standardized profile objects with 50+ fields including employment timeline, skill endorsements, and recommendation counts.","intents":["I need to enrich CRM records with LinkedIn profile data without manual lookups","I want to build a recruitment pipeline that automatically pulls candidate profiles at scale","I need to extract structured work history and skills from LinkedIn profiles for talent analytics"],"best_for":["Recruitment teams automating candidate sourcing and enrichment","Sales development teams building lead intelligence databases","HR analytics teams analyzing workforce composition and skill gaps"],"limitations":["LinkedIn's Terms of Service prohibit scraping; API calls may trigger account restrictions or IP bans","Data freshness depends on LinkedIn's caching; profile updates may lag 24-48 hours","Requires valid LinkedIn profile URLs as input; cannot search or discover profiles directly","Rate limits typically 100-500 requests/month on free tier; paid tiers support higher volumes but still subject to LinkedIn's detection systems"],"requires":["Valid LinkedIn profile URL (format: linkedin.com/in/[username])","API key from Proxycurl (free tier available)","HTTPS connection for API calls","Compliance with LinkedIn's Terms of Service and local data privacy laws (GDPR, CCPA)"],"input_types":["LinkedIn profile URL (string)","LinkedIn user ID (numeric)"],"output_types":["JSON object with profile fields","Structured employment history array","Skills array with endorsement counts","Education array with dates and institutions"],"categories":["data-processing-analysis","web-scraping"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"proxycurl__cap_1","uri":"capability://data.processing.analysis.company.profile.data.extraction.and.enrichment","name":"company profile data extraction and enrichment","description":"Extracts structured company information from LinkedIn company pages including employee count, industry classification, funding status, company size, headquarters location, and employee list. Parses LinkedIn's company page DOM to extract metadata, cross-references with other data sources to infer company stage (Series A, B, C, etc.) and funding details, and returns normalized company objects with employment distribution across roles and seniority levels.","intents":["I need company metadata and employee counts for B2B lead scoring and account-based marketing","I want to identify companies in specific industries or funding stages for outbound prospecting","I need to analyze competitor employee headcount and hiring trends over time"],"best_for":["Sales and marketing teams building account-based marketing (ABM) campaigns","Business development teams researching company profiles for partnerships","Market research teams analyzing industry composition and company growth"],"limitations":["Company data is aggregated from LinkedIn and may not reflect real-time hiring or organizational changes","Funding stage inference is heuristic-based and may be inaccurate for private companies or recent funding rounds","Employee count estimates can vary by 10-20% due to LinkedIn's incomplete coverage of all employees","No access to non-public company information (revenue, profitability, cap table)"],"requires":["Valid LinkedIn company URL or company name (string)","API key from Proxycurl","HTTPS connection"],"input_types":["LinkedIn company URL (string)","Company name (string, with fallback to fuzzy matching)"],"output_types":["JSON object with company metadata","Employee count and distribution by role/seniority","Industry classification and company size category","Headquarters location and office locations array"],"categories":["data-processing-analysis","web-scraping"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"proxycurl__cap_10","uri":"capability://tool.use.integration.api.rate.limiting.and.quota.management","name":"api rate limiting and quota management","description":"Manages API rate limits and quota allocation across requests, implementing per-minute and per-month rate limiting with quota tracking and enforcement. Provides quota usage reporting and alerts to prevent unexpected overage charges, with support for quota pooling across team members and automatic request queuing to respect rate limits without client-side retry logic.","intents":["I want to monitor my API usage and stay within my monthly quota","I need to implement rate limiting in my application to avoid hitting API limits","I want to share API quota across my team and track usage per team member"],"best_for":["Development teams integrating Proxycurl into production applications","Operations teams managing API costs and quota allocation","Teams with multiple developers sharing a single API key"],"limitations":["Rate limits are enforced per API key; no per-user or per-endpoint rate limiting","Quota alerts are not real-time; may lag by 5-10 minutes","Request queuing adds latency; requests may be delayed if rate limit is approached","No automatic quota reset or rollover; monthly quota resets on fixed date"],"requires":["API key from Proxycurl","Dashboard access to view quota usage","Optional: webhook endpoint for quota alerts"],"input_types":["API requests (any endpoint)"],"output_types":["Rate limit headers in API responses","Quota usage dashboard","Webhook notifications for quota alerts"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"proxycurl__cap_11","uri":"capability://tool.use.integration.sdk.and.library.support.for.multiple.programming.languages","name":"sdk and library support for multiple programming languages","description":"Provides official SDKs and community-maintained libraries for popular programming languages (Python, JavaScript/Node.js, Ruby, PHP, Go) with language-idiomatic APIs, built-in error handling, retry logic, and type definitions. SDKs abstract HTTP request handling and provide convenient methods for common operations like profile lookup, company enrichment, and batch operations. Includes comprehensive documentation and example code for each language.","intents":["I want to integrate Proxycurl into my Python/Node.js/Ruby application without writing HTTP client code","I need type-safe API calls with IDE autocomplete support","I want to use language-idiomatic APIs that follow community conventions","I need example code and documentation for my specific programming language"],"best_for":["Backend developers integrating LinkedIn enrichment into applications","Teams using multiple programming languages requiring consistent APIs","Developers prioritizing developer experience and rapid integration","Projects requiring type safety and IDE support"],"limitations":["SDK availability varies by language; some languages may lack official support","Community-maintained SDKs may have lower quality and slower update cycles","SDK versions may lag behind API updates; manual HTTP requests may be needed for new features","Type definitions are only available for statically-typed languages","SDK documentation quality varies; some languages have minimal examples"],"requires":["API key from Proxycurl","Programming language with available SDK (Python 3.6+, Node.js 12+, Ruby 2.5+, PHP 7.0+, Go 1.11+)","Package manager for language (pip, npm, gem, composer, go get)"],"input_types":["SDK method calls with parameters"],"output_types":["Language-native objects (Python dicts, JavaScript objects, Ruby hashes, etc.)","Type-safe responses with IDE autocomplete"],"categories":["tool-use-integration","developer-tools","sdk"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"proxycurl__cap_12","uri":"capability://tool.use.integration.webhook.integration.for.asynchronous.result.delivery","name":"webhook integration for asynchronous result delivery","description":"Supports webhook callbacks for asynchronous batch operations and long-running requests, delivering results to a specified endpoint when processing completes. Implements webhook retry logic with exponential backoff for failed deliveries and provides webhook signature verification for security. Enables real-time integration with downstream systems without requiring polling for results.","intents":["I want to receive enrichment results asynchronously without polling the API","I need to integrate LinkedIn enrichment into my event-driven architecture","I want to trigger downstream workflows automatically when enrichment completes","I need to verify webhook authenticity to prevent spoofed results"],"best_for":["Event-driven architectures with asynchronous processing","Data pipelines requiring real-time result delivery","Teams implementing webhook-based integrations","Applications with high-volume batch processing"],"limitations":["Webhook delivery is not guaranteed; failed deliveries require manual retry","Webhook retry logic has limited attempts; permanent delivery failures may lose results","Webhook endpoint must be publicly accessible and respond within timeout window","Webhook signature verification requires cryptographic key management","Webhook ordering is not guaranteed for high-volume operations"],"requires":["API key from Proxycurl","Publicly accessible webhook endpoint with HTTPS support","Ability to verify webhook signatures using provided secret key","Webhook endpoint must respond with 2xx status code within timeout"],"input_types":["Batch API request with webhook URL parameter"],"output_types":["Webhook POST request with enriched results and signature header"],"categories":["tool-use-integration","automation-workflow","event-driven"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"proxycurl__cap_2","uri":"capability://data.processing.analysis.job.posting.data.extraction.and.enrichment","name":"job posting data extraction and enrichment","description":"Extracts structured job posting information from LinkedIn job listings including job title, description, required skills, seniority level, employment type, salary range (where disclosed), and company details. Parses LinkedIn job page HTML to extract posting metadata, applies NLP-based skill extraction to identify required competencies from free-text descriptions, and normalizes job classifications (title, level, function) into standardized taxonomies for downstream analysis and matching.","intents":["I want to monitor competitor hiring patterns and identify skill gaps in the market","I need to extract job requirements and skill taxonomies for talent matching and recommendation systems","I want to build a job market intelligence dashboard tracking hiring trends by industry and role"],"best_for":["Recruitment platforms and talent matching systems","Market research teams analyzing hiring trends and skill demand","HR analytics teams benchmarking compensation and role requirements"],"limitations":["Salary data is only available for ~10-15% of postings (varies by region and company)","Job descriptions are free-text; skill extraction relies on NLP and may miss domain-specific or emerging skills","Job postings are removed after 30-90 days; historical data is not available through this API","Cannot access job applicant data or hiring outcomes"],"requires":["Valid LinkedIn job posting URL or job ID","API key from Proxycurl","HTTPS connection"],"input_types":["LinkedIn job posting URL (string)","LinkedIn job ID (numeric)"],"output_types":["JSON object with job posting metadata","Extracted skills array with proficiency levels","Normalized job title and seniority level","Salary range (if disclosed) with currency"],"categories":["data-processing-analysis","web-scraping"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"proxycurl__cap_3","uri":"capability://data.processing.analysis.batch.profile.and.company.lookup.with.bulk.enrichment","name":"batch profile and company lookup with bulk enrichment","description":"Processes multiple LinkedIn profile and company URLs in a single batch request, returning structured data for all inputs with optimized throughput and reduced per-request overhead. Implements request queuing, deduplication, and parallel processing to handle 100-10,000 URLs per batch, with support for CSV/JSON input formats and webhook callbacks for asynchronous result delivery, enabling efficient data pipeline integration for large-scale enrichment workflows.","intents":["I need to enrich a CSV of 5,000 LinkedIn profile URLs with structured data in a single batch operation","I want to integrate Proxycurl into my data pipeline to automatically enrich new leads as they arrive","I need to process a list of company URLs and get back normalized company data for CRM import"],"best_for":["Data engineering teams building ETL pipelines for lead enrichment","Sales operations teams bulk-importing and enriching prospect lists","Recruitment teams processing candidate lists at scale"],"limitations":["Batch processing introduces latency (typically 5-30 minutes for 1,000+ URLs depending on tier)","Webhook callbacks require publicly accessible endpoint; no built-in retry logic for failed deliveries","Batch size limits vary by pricing tier; free tier limited to 100 URLs per batch","Deduplication is URL-based; same person with multiple profile URLs will be processed separately"],"requires":["CSV or JSON file with LinkedIn URLs","API key from Proxycurl","For async callbacks: publicly accessible HTTPS webhook endpoint","Sufficient API quota for batch size"],"input_types":["CSV file with LinkedIn URLs","JSON array of LinkedIn URLs","Webhook URL for async delivery"],"output_types":["JSON array of enriched profile/company objects","CSV export of results","Webhook POST with batch results"],"categories":["data-processing-analysis","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"proxycurl__cap_4","uri":"capability://data.processing.analysis.employee.list.extraction.and.organizational.mapping","name":"employee list extraction and organizational mapping","description":"Extracts lists of employees from LinkedIn company pages, returning structured employee records with name, current title, profile URL, and seniority level. Implements pagination and filtering to handle companies with 1,000+ employees, and optionally enriches each employee record with full profile data (work history, skills, education) through linked profile extraction, enabling organizational mapping and workforce analysis use cases.","intents":["I want to build an organizational chart for a target company showing reporting structure and key decision-makers","I need to identify all employees at a company with a specific job title or skill for targeted outreach","I want to analyze employee tenure and turnover patterns at a company"],"best_for":["Sales teams identifying decision-makers and building account hierarchies","Recruitment teams sourcing passive candidates from specific companies","Competitive intelligence teams mapping organizational structures"],"limitations":["LinkedIn only displays a subset of employees (typically 500-1,000 max per company page); full employee list is not available","Employee data is limited to name, title, and profile URL; enrichment requires additional API calls per employee","Seniority level inference is heuristic-based and may be inaccurate","No access to internal organizational hierarchy or reporting relationships"],"requires":["Valid LinkedIn company URL","API key from Proxycurl","For full enrichment: sufficient API quota for per-employee profile calls"],"input_types":["LinkedIn company URL (string)","Optional filters: job title, seniority level, department"],"output_types":["JSON array of employee objects","Paginated results with cursor-based navigation","Optional: full profile data for each employee"],"categories":["data-processing-analysis","web-scraping"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"proxycurl__cap_5","uri":"capability://data.processing.analysis.email.address.inference.and.contact.discovery","name":"email address inference and contact discovery","description":"Infers likely email addresses for LinkedIn profiles based on name, company, and common email format patterns (firstname.lastname@company.com, first_last@company.com, etc.). Uses company domain lookup and pattern matching against known email formats, with confidence scoring to indicate reliability of inferred addresses. Integrates with profile enrichment to automatically generate contact lists without requiring email verification or third-party email databases.","intents":["I want to generate likely email addresses for LinkedIn profiles to build outreach lists","I need to find contact information for decision-makers without using a separate email finder tool","I want to enrich my CRM with email addresses inferred from LinkedIn data"],"best_for":["Sales development teams building outreach lists and email campaigns","Recruitment teams finding candidate contact information","Business development teams researching company contacts"],"limitations":["Email inference is probabilistic; accuracy varies by company (50-80% depending on email format consistency)","No email verification; inferred addresses may be invalid or outdated","Requires company domain to be publicly known; private or recently renamed companies may have inaccurate inferences","Does not access actual email addresses; relies on pattern matching only"],"requires":["LinkedIn profile URL or profile data with name and company","API key from Proxycurl","Company domain (typically inferred from LinkedIn company data)"],"input_types":["LinkedIn profile URL (string)","Name and company (string)"],"output_types":["Inferred email address (string)","Confidence score (0-1)","Email format pattern used"],"categories":["data-processing-analysis","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"proxycurl__cap_6","uri":"capability://data.processing.analysis.reverse.email.lookup.and.profile.matching","name":"reverse email lookup and profile matching","description":"Looks up LinkedIn profiles by email address, returning matching profile data if a public profile is associated with that email. Implements email-to-profile matching by querying LinkedIn's index and returning normalized profile objects, enabling reverse enrichment workflows where email is the starting point rather than LinkedIn URL.","intents":["I have a list of email addresses and want to find their LinkedIn profiles for enrichment","I need to verify if an email address belongs to a LinkedIn user and get their profile data","I want to build a reverse lookup system to match emails to LinkedIn profiles in my CRM"],"best_for":["CRM teams enriching email-based contact records with LinkedIn data","Recruitment teams matching candidate emails to LinkedIn profiles","Sales teams verifying email addresses and pulling profile data"],"limitations":["Only works for emails associated with public LinkedIn profiles; private or deactivated accounts will not match","Email must be the primary email on the LinkedIn profile; secondary emails will not match","Accuracy depends on LinkedIn's email indexing; some emails may not be indexed or may be outdated","No bulk reverse lookup; requires individual API calls per email"],"requires":["Valid email address (string)","API key from Proxycurl","HTTPS connection"],"input_types":["Email address (string)"],"output_types":["JSON object with matching profile data","Null if no match found","Confidence score (if available)"],"categories":["data-processing-analysis","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"proxycurl__cap_7","uri":"capability://data.processing.analysis.skill.taxonomy.normalization.and.extraction","name":"skill taxonomy normalization and extraction","description":"Normalizes and standardizes skills extracted from LinkedIn profiles and job postings against a curated skill taxonomy, mapping free-text skills to canonical skill names and categories (e.g., 'Python programming' → 'Python' under 'Programming Languages'). Implements fuzzy matching and synonym resolution to handle variations in skill naming, and provides skill proficiency levels and endorsement counts from LinkedIn data, enabling skill-based matching and talent analytics.","intents":["I want to match candidates to job requirements based on normalized skill taxonomies","I need to analyze skill demand across job postings and identify skill gaps in the market","I want to build a skill-based recommendation system for talent matching"],"best_for":["Recruitment platforms and talent matching systems","HR analytics teams analyzing workforce skills and gaps","Market research teams tracking skill demand trends"],"limitations":["Taxonomy is curated and may not include emerging or niche skills","Fuzzy matching can produce false positives for similar skill names (e.g., 'Java' vs 'JavaScript')","Endorsement counts reflect LinkedIn activity, not actual proficiency; may be inflated or outdated","No access to skill assessment or verification data; relies on self-reported LinkedIn data"],"requires":["LinkedIn profile or job posting data with skills","API key from Proxycurl"],"input_types":["Raw skill names (array of strings)","LinkedIn profile or job posting data"],"output_types":["Normalized skill names (array of strings)","Skill categories and taxonomies","Endorsement counts and proficiency levels"],"categories":["data-processing-analysis","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"proxycurl__cap_8","uri":"capability://automation.workflow.real.time.profile.update.monitoring.and.change.detection","name":"real-time profile update monitoring and change detection","description":"Monitors LinkedIn profiles for changes (job changes, skill additions, endorsements, recommendations) and triggers webhooks or notifications when updates are detected. Implements periodic polling of profile data and diff-based change detection to identify new employment, skill endorsements, or profile completeness changes, enabling real-time lead scoring and recruitment alerts without manual profile checks.","intents":["I want to be alerted when a target prospect changes jobs or adds relevant skills","I need to monitor candidate profiles for activity and engagement signals","I want to trigger automated outreach when a prospect's profile indicates a job change or promotion"],"best_for":["Sales teams using job change alerts for outbound prospecting","Recruitment teams monitoring candidate activity and engagement","Account-based marketing teams tracking decision-maker changes"],"limitations":["Monitoring introduces latency (typically 24-48 hours between LinkedIn update and detection)","Polling frequency is limited by API tier; free tier may only check profiles weekly","Change detection is based on profile snapshot diffs; may miss intermediate changes if polling interval is too long","Webhook delivery is not guaranteed; requires retry logic on client side"],"requires":["LinkedIn profile URL to monitor","API key from Proxycurl","Publicly accessible HTTPS webhook endpoint for notifications","Paid tier (monitoring not available on free tier)"],"input_types":["LinkedIn profile URL (string)","Webhook URL for notifications","Optional: change types to monitor (job, skills, endorsements, etc.)"],"output_types":["Webhook POST with change detection payload","Change type and timestamp","Before/after profile data snapshots"],"categories":["automation-workflow","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"proxycurl__cap_9","uri":"capability://data.processing.analysis.geographic.and.demographic.filtering.for.lead.generation","name":"geographic and demographic filtering for lead generation","description":"Filters LinkedIn profiles and company data by geographic location, industry, company size, job title, and seniority level to enable targeted lead generation and prospecting. Implements server-side filtering on extracted profile data to reduce client-side processing, supporting complex filter combinations (e.g., 'VP-level decision-makers in tech companies with 100-500 employees in California') for efficient lead list generation.","intents":["I want to find all VP-level decision-makers in tech companies in California for ABM outreach","I need to filter a list of profiles by industry and seniority to build a targeted prospect list","I want to identify companies in specific regions and industries for market research"],"best_for":["Sales teams building targeted prospect lists for ABM campaigns","Market research teams analyzing geographic and industry segments","Recruitment teams filtering candidates by location and seniority"],"limitations":["Filtering is applied to extracted data only; cannot search or discover profiles directly (requires LinkedIn URLs as input)","Geographic data is based on LinkedIn's location field; may be outdated or inaccurate","Industry classification is inferred from company data; may not match internal company categorization","Complex filter combinations may require multiple API calls or post-processing"],"requires":["LinkedIn profile or company URLs to filter","API key from Proxycurl"],"input_types":["Array of LinkedIn URLs","Filter criteria: location, industry, company size, job title, seniority level"],"output_types":["Filtered array of profile/company objects","Count of matching records"],"categories":["data-processing-analysis","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"proxycurl__headline","uri":"capability://data.processing.analysis.linkedin.data.api.for.enrichment.and.lead.generation","name":"linkedin data api for enrichment and lead generation","description":"Proxycurl is a LinkedIn data API that provides structured profile, company, job posting, and employee data without official API access, ideal for enriching workflows and generating leads at scale.","intents":["best LinkedIn data API","LinkedIn API for lead generation","LinkedIn API for recruitment","how to enrich data with LinkedIn profiles","API for accessing company and employee data"],"best_for":["lead generation","recruitment","data enrichment"],"limitations":[],"requires":["API key"],"input_types":["profile IDs","company names"],"output_types":["structured data","JSON responses"],"categories":["data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":58,"verified":false,"data_access_risk":"high","permissions":["Valid LinkedIn profile URL (format: linkedin.com/in/[username])","API key from Proxycurl (free tier available)","HTTPS connection for API calls","Compliance with LinkedIn's Terms of Service and local data privacy laws (GDPR, CCPA)","Valid LinkedIn company URL or company name (string)","API key from Proxycurl","HTTPS connection","Dashboard access to view quota usage","Optional: webhook endpoint for quota alerts","Programming language with available SDK (Python 3.6+, Node.js 12+, Ruby 2.5+, PHP 7.0+, Go 1.11+)"],"failure_modes":["LinkedIn's Terms of Service prohibit scraping; API calls may trigger account restrictions or IP bans","Data freshness depends on LinkedIn's caching; profile updates may lag 24-48 hours","Requires valid LinkedIn profile URLs as input; cannot search or discover profiles directly","Rate limits typically 100-500 requests/month on free tier; paid tiers support higher volumes but still subject to LinkedIn's detection systems","Company data is aggregated from LinkedIn and may not reflect real-time hiring or organizational changes","Funding stage inference is heuristic-based and may be inaccurate for private companies or recent funding rounds","Employee count estimates can vary by 10-20% due to LinkedIn's incomplete coverage of all employees","No access to non-public company information (revenue, profitability, cap table)","Rate limits are enforced per API key; no per-user or per-endpoint rate limiting","Quota alerts are not real-time; may lag by 5-10 minutes","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.7,"quality":0.9,"ecosystem":0.15000000000000002,"match_graph":0.25,"freshness":0.75,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.1,"match_graph":0.28,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:25.060Z","last_scraped_at":null,"last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=proxycurl","compare_url":"https://unfragile.ai/compare?artifact=proxycurl"}},"signature":"yBLp2flR1TvW/1KZbo+imZ1XmvW8ZUpy+/+ZYMzynijXyHXkU2xiZH6SrDbk9zU56un/bBYnmVTzJ10oq+bADg==","signedAt":"2026-06-20T05:39:40.687Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/proxycurl","artifact":"https://unfragile.ai/proxycurl","verify":"https://unfragile.ai/api/v1/verify?slug=proxycurl","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}