Back to Use Cases
Linkup

How to power legal agents with Linkup

Enable legal AI agents to search regulatory updates, public filings, legal news, and authoritative sources in real-time, complementing traditional legal research tools.

Overview

Legal AI agents need access to constantly evolving information—new regulations, recent case law, company filings, and authoritative legal sources. Unlike static legal databases, Linkup enables agents to search across the open web for regulatory updates, public filings, legal news, and authoritative sources in real-time, complementing traditional legal research tools.

Why Linkup for legal agents?

deep search

Find regulatory sources, then scrape full text for complete context

structured output

Returns legal information in formats agents can parse and cite

time scoping

State the period in the query to surface recent regulatory changes

source preference

Name the authoritative bodies you want cited in the query

Configuration

Recommended settings for legal research

ParameterValueWhy
depthdeepLegal research requires finding sources, then extracting detailed content
outputTypestructuredLegal agents need structured, citable information
Pro Tip
Name the issuing bodies and the time period in the query rather than pinning them as domain and date filters. Citation integrity comes from requiring a source URL for every claim, not from restricting the index. A hard allowlist of .gov domains will miss the state regulator, court opinion, or law-firm analysis that actually answers the question.

Use Cases

Practical examples with prompts and schemas

1

Regulatory Monitoring

Track new regulations, proposed rules, and regulatory guidance across jurisdictions.

Prompt- regulatory-monitoring
You are a regulatory research assistant monitoring for legal updates.

Regulatory area: {regulatory_area}
Jurisdictions: {jurisdictions}
Agencies to monitor: {agencies}

Search for recent regulatory developments including:

1. New final rules and regulations published
2. Proposed rules open for comment
3. Regulatory guidance documents and interpretations
4. Enforcement actions and policy statements
5. Agency announcements and press releases

For each item found, extract:
- Title and citation (if available)
- Issuing agency
- Publication/effective date
- Summary of key provisions
- Compliance deadlines (if any)
- Link to official source

Prioritize official government sources (.gov domains).
Exclude news commentary—return only primary regulatory sources.
regulatory-source-preference.txt (example)
Prefer primary regulatory sources: the Federal Register, Regulations.gov,
the SEC, FTC, FDA, EPA, Department of Labor, Treasury, Department of Justice,
HHS, CFPB, OCC, FDIC, and the Federal Reserve.
Cite the official document URL for every requirement or deadline.
text
2

Company & Entity Research

Research companies, verify entity information, and find public filings.

Prompt- entity-research
You are a legal research assistant gathering entity information.

Entity name: {entity_name}
Entity type: {entity_type}
Jurisdiction of incorporation: {jurisdiction}

Execute the following research steps:

1. Search for the company's official registration information:
   - State/country of incorporation
   - Registration/file number
   - Date of incorporation
   - Registered agent
   - Business address

2. Search SEC EDGAR (if US public company) for:
   - Recent filings (10-K, 10-Q, 8-K)
   - Beneficial ownership filings
   - Insider trading reports

3. Search for any regulatory actions, enforcement orders, or sanctions against {entity_name}.

4. Search for litigation involving {entity_name}:
   - Recent court filings
   - Significant settlements
   - Ongoing material litigation

5. Search for {entity_name} leadership and board composition from official sources.

Return only verified information from authoritative sources.
Note any discrepancies found across sources.
3

Contract Clause Research

Research standard contract language, market terms, and clause precedents.

Prompt- contract-clause-research
You are a contract research assistant helping draft or review agreements.

Clause type: {clause_type}
Agreement type: {agreement_type}
Industry: {industry}
Jurisdiction: {jurisdiction}

Execute the following research:

1. Search for standard {clause_type} language in {agreement_type} agreements.

2. Search for SEC filings containing {agreement_type} agreements to find:
   - Market-standard clause formulations
   - Variations in approach
   - Negotiated terms from public deals

3. Search for law firm client alerts and articles discussing:
   - Best practices for {clause_type} provisions
   - Recent trends in {clause_type} negotiation
   - Pitfalls to avoid

4. Search for any recent case law interpreting {clause_type} provisions in {jurisdiction}.

Return a summary of market approaches with example language (paraphrased, not copied).
Note any jurisdiction-specific considerations.
4

Compliance Requirements Research

Research compliance obligations for specific activities, industries, or jurisdictions.

Prompt- compliance-research
You are a compliance research assistant.

Business activity: {business_activity}
Industry: {industry}
Jurisdictions: {jurisdictions}
Company type: {company_type}

Research the regulatory compliance requirements for {business_activity}:

1. Search for primary regulatory requirements from relevant agencies:
   - Licensing or registration requirements
   - Ongoing compliance obligations
   - Reporting requirements
   - Record-keeping requirements

2. Search for regulatory guidance explaining how requirements apply to {business_activity}.

3. Search for recent enforcement actions in this area to understand:
   - Common compliance failures
   - Regulatory priorities
   - Penalty ranges

4. Search for industry association guidance or best practices.

5. For each jurisdiction in {jurisdictions}, identify:
   - Which agencies have jurisdiction
   - Key differences in requirements
   - Any pending regulatory changes

Return a compliance checklist organized by requirement type.
6

Due Diligence Research

Support M&A due diligence with public information research. deep recommended for this use case.

Prompt- due-diligence
You are a due diligence research assistant supporting a transaction.

Target company: {target_company}
Transaction type: {transaction_type}
Key areas of concern: {focus_areas}

Conduct public information due diligence research:

1. Corporate Information:
   - Search for incorporation documents and entity status
   - Find subsidiary structure from SEC filings or other public sources
   - Identify registered agents and principal offices

2. Regulatory Standing:
   - Search for any regulatory actions, consent orders, or sanctions
   - Find any pending regulatory proceedings
   - Check for required licenses and their status

3. Litigation History:
   - Search for material litigation disclosed in public filings
   - Search court databases for recent cases involving {target_company}
   - Identify any class actions or government investigations

4. Material Contracts (from public filings):
   - Search for material contracts filed as exhibits
   - Identify key customer and supplier relationships disclosed
   - Find any change of control provisions mentioned

5. News and Reputation:
   - Search for negative news coverage
   - Find any whistleblower complaints or employee disputes
   - Identify any environmental or safety incidents

Flag any red flags requiring further investigation.

Best Practices

Tips for getting the best results

Do's

  • 1Always use authoritative source restrictions — legal accuracy depends on citing official sources
  • 2Include citations in structured output — always capture URLs and official citations
  • 3Use date filtering for regulatory research — stale results can be dangerous
  • 4Request jurisdiction-specific results — laws vary dramatically by jurisdiction
  • 5Use deep for comprehensive research — find source, then scrape full content
  • 6Flag uncertainties explicitly — structure outputs to capture confidence levels
x

Don'ts

  • 1Don't cite unofficial sources for legal requirements — blogs and news are not authoritative
  • 2Don't skip date verification — outdated regulations can be worse than no information
  • 3Don't assume cross-jurisdiction applicability — always verify jurisdictional scope
  • 4Don't conflate commentary with primary sources — distinguish law firm analysis from legal requirements
  • 5Don't over-rely on search for case law — Linkup complements but doesn't replace Westlaw/LexisNexis
Pro Tip
Structure agent outputs with confidence indicators: High (direct primary source citation), Medium (secondary source citing primary), Low (news report without primary source). Flag conflicting sources for attorney review.

Source Preferences (Examples)

Authoritative sources by category, phrased for the query

US Federal Government
Prefer US federal primary sources: the Federal Register, Regulations.gov,
Congress.gov, GovInfo, the SEC, Department of Justice, FTC, FDA, EPA,
Department of Labor, Treasury, IRS, CFPB, OCC, FDIC, the Federal Reserve,
and the federal courts.
text
US State Government (Delaware, California, New York)
Prefer state primary sources: the Delaware Code and Division of Corporations,
California legislative information and the California Attorney General,
and the New York Department of State and Attorney General.
text
SEC Filings & Corporate Records
Prefer SEC primary sources: EDGAR full-text search and the filing documents
themselves on sec.gov. Cite the accession number and filing URL.
text
Legal News & Analysis (Use Selectively)
Secondary analysis may be used for context only: Law360, Law.com,
Reuters Legal, Bloomberg Law, Lexology, and JD Supra.
Always anchor the conclusion to a primary source.
text
International Sources
Prefer national primary sources: legislation.gov.uk, EUR-Lex,
CanLII, and AustLII.
text

Integration Patterns

How to integrate legal research into your workflow

Agent Tool Integration

Define Linkup as tools for legal research

  1. •search_regulations — Input: regulatory_area, jurisdictions, date_range
  2. •research_entity — Input: entity_name, jurisdiction, research_scope
  3. •search_compliance_requirements — Input: activity, industry, jurisdictions
  4. •monitor_legal_developments — Input: practice_area, topics, jurisdictions
  5. •due_diligence_search — Input: target_company, focus_areas

Source Hierarchy

When multiple sources exist, prioritize:

  1. •1. Primary sources (statutes, regulations, court decisions)
  2. •2. Official agency guidance (regulatory guidance, FAQs)
  3. •3. Secondary authoritative sources (bar association, law firm alerts)
  4. •4. News and commentary (for context only)

Confidence Scoring

Structure agent outputs with confidence indicators

  1. •High confidence: Direct primary source citation, current, jurisdiction-specific
  2. •Medium confidence: Secondary source citing primary, slightly outdated
  3. •Low confidence: News report without primary source, jurisdictional uncertainty
  4. •Flag for review: Conflicting sources, novel questions, high-stakes implications

Sample Code

Python example for legal research

linkup_legal_assistant.py
import requests
import json
from datetime import datetime, timedelta
from typing import Optional, List

class LinkupLegalAssistant:
    """Linkup integration for legal research agents"""

    def __init__(self, api_key: str):
        self.api_key = api_key
        self.base_url = "https://api.linkup.so/v1/search"

        # Stated as a preference in the query, not pinned as a domain filter,
        # so a state regulator or court opinion can still surface.
        self.preferred_sources = (
            "the Federal Register, Regulations.gov, the SEC, Congress.gov, "
            "GovInfo, and the Department of Justice"
        )

    def _call_linkup(
        self,
        prompt: str,
        schema: dict,
        depth: str = "deep"
    ) -> dict:
        params = {
            "q": prompt,
            "depth": depth,
            "outputType": "structured",
            "structuredSchema": json.dumps(schema)
        }

        response = requests.post(
            self.base_url,
            headers={"Authorization": f"Bearer {self.api_key}"},
            json=params
        )
        return response.json()

    def search_regulations(
        self,
        regulatory_area: str,
        agencies: List[str],
        days_back: int = 30
    ) -> dict:
        """Search for recent regulatory updates"""

        since = (datetime.now() - timedelta(days=days_back)).strftime("%d %B %Y")
        agencies_str = ", ".join(agencies)

        prompt = f"""
        Search for regulatory developments in {regulatory_area} published
        since {since}.

        Agencies: {agencies_str}

        Find:
        - New final rules and regulations
        - Proposed rules open for comment
        - Regulatory guidance documents
        - Enforcement actions and policy statements

        For each item, extract title, citation, agency, dates, and summary.
        Prefer {self.preferred_sources}.
        Return the official source URL for every item.
        """

        schema = {
            "type": "object",
            "properties": {
                "regulatory_updates": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "title": {"type": "string"},
                            "citation": {"type": "string"},
                            "type": {"type": "string"},
                            "agency": {"type": "string"},
                            "publication_date": {"type": "string"},
                            "effective_date": {"type": "string"},
                            "summary": {"type": "string"},
                            "source_url": {"type": "string"}
                        }
                    }
                }
            }
        }

        return self._call_linkup(prompt, schema, depth="deep")

    def research_entity(
        self,
        entity_name: str,
        jurisdiction: str,
        include_litigation: bool = True
    ) -> dict:
        """Research a company or entity"""

        litigation_instruction = """
        4. Search for litigation involving the entity:
           - Recent court filings
           - Significant settlements
           - Ongoing material litigation
        """ if include_litigation else ""

        prompt = f"""
        Research the entity: {entity_name}
        Jurisdiction: {jurisdiction}

        1. Search for official registration information:
           - State/country of incorporation
           - Registration number
           - Status
           - Registered agent

        2. Search SEC EDGAR for recent filings (if public company).

        3. Search for regulatory actions or sanctions against this entity.
        {litigation_instruction}

        Prefer {self.preferred_sources}, plus SEC EDGAR for filings.
        Return only verified information and the source URL for every field.
        """

        schema = {
            "type": "object",
            "properties": {
                "entity_name": {"type": "string"},
                "registration_info": {
                    "type": "object",
                    "properties": {
                        "legal_name": {"type": "string"},
                        "jurisdiction": {"type": "string"},
                        "registration_number": {"type": "string"},
                        "status": {"type": "string"},
                        "source_url": {"type": "string"}
                    }
                },
                "sec_filings": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "form_type": {"type": "string"},
                            "date": {"type": "string"},
                            "url": {"type": "string"}
                        }
                    }
                },
                "regulatory_history": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "agency": {"type": "string"},
                            "action": {"type": "string"},
                            "date": {"type": "string"},
                            "source_url": {"type": "string"}
                        }
                    }
                },
                "litigation": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "case_name": {"type": "string"},
                            "court": {"type": "string"},
                            "status": {"type": "string"},
                            "summary": {"type": "string"}
                        }
                    }
                }
            }
        }

        return self._call_linkup(prompt, schema, depth="deep")

    def search_compliance_requirements(
        self,
        business_activity: str,
        industry: str,
        jurisdictions: List[str]
    ) -> dict:
        """Research compliance requirements"""

        jurisdictions_str = ", ".join(jurisdictions)

        prompt = f"""
        Research compliance requirements for: {business_activity}
        Industry: {industry}
        Jurisdictions: {jurisdictions_str}

        Find:
        - Licensing or registration requirements
        - Ongoing compliance obligations
        - Reporting requirements
        - Record-keeping requirements

        For each requirement, identify the agency, legal citation, and deadlines.
        Search for regulatory guidance explaining how requirements apply.
        """

        schema = {
            "type": "object",
            "properties": {
                "compliance_requirements": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "requirement": {"type": "string"},
                            "category": {"type": "string"},
                            "agency": {"type": "string"},
                            "jurisdiction": {"type": "string"},
                            "legal_citation": {"type": "string"},
                            "description": {"type": "string"},
                            "deadline": {"type": "string"},
                            "source_url": {"type": "string"}
                        }
                    }
                },
                "compliance_checklist": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "item": {"type": "string"},
                            "priority": {"type": "string"},
                            "frequency": {"type": "string"}
                        }
                    }
                }
            }
        }

        return self._call_linkup(prompt, schema, depth="deep")

    def due_diligence_search(
        self,
        target_company: str,
        focus_areas: List[str]
    ) -> dict:
        """Conduct public due diligence research"""

        focus_str = ", ".join(focus_areas)

        prompt = f"""
        Conduct public due diligence research on: {target_company}
        Focus areas: {focus_str}

        Research:
        1. Corporate information and entity status
        2. Regulatory standing and any enforcement actions
        3. Litigation history from public sources
        4. Material contracts from public filings
        5. Negative news coverage

        Flag any red flags requiring further investigation.
        """

        schema = {
            "type": "object",
            "properties": {
                "target_company": {"type": "string"},
                "corporate_info": {"type": "object"},
                "regulatory_findings": {
                    "type": "array",
                    "items": {"type": "object"}
                },
                "litigation_findings": {
                    "type": "array",
                    "items": {"type": "object"}
                },
                "news_findings": {
                    "type": "array",
                    "items": {"type": "object"}
                },
                "red_flags": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "issue": {"type": "string"},
                            "severity": {"type": "string"},
                            "recommendation": {"type": "string"}
                        }
                    }
                }
            }
        }

        return self._call_linkup(prompt, schema, depth="deep")


# Example usage
if __name__ == "__main__":
    assistant = LinkupLegalAssistant(api_key="your-api-key")

    # Regulatory monitoring
    regs = assistant.search_regulations(
        regulatory_area="data privacy",
        agencies=["FTC", "state attorneys general"],
        days_back=30
    )

    # Entity research
    entity = assistant.research_entity(
        entity_name="Acme Corp",
        jurisdiction="Delaware",
        include_litigation=True
    )

    # Compliance requirements
    compliance = assistant.search_compliance_requirements(
        business_activity="payment processing",
        industry="fintech",
        jurisdictions=["federal", "California", "New York"]
    )
python