{"x402Version":2,"service":"HALOWERK medwerk","version":"1.0.0","network":"eip155:8453","network_name":"Base Mainnet","chain_id":8453,"recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","asset":{"symbol":"USDC","address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","decimals":6},"facilitators":["CDP","https://facilitator.xpay.sh"],"payment_headers":{"primary":"PAYMENT-SIGNATURE","accepted":["PAYMENT-SIGNATURE","X-Payment","PAYMENT"],"challenge":["PAYMENT-REQUIRED"],"response":["PAYMENT-RESPONSE"]},"resources":[{"url":"https://med.halowerk.com/v1/drug-identity","method":"POST","name":"drug_identity","description":"Takes any of the names a medicine goes by and returns the canonical identity behind it: the RxNorm concept with its identifier and term type, the active ingredients with their own identifiers, the strengths, the dose forms, and the brand names under which the same substance is sold. Term types are expanded rather than returned as codes, because the difference between an ingredient concept, a clinical drug and a branded pack determines what an identifier can be used for. The scope limitation is stated with the result rather than discovered later: RxNorm is built around the United States drug market, so a European preparation without a US approval is absent from it, and absence there is not evidence that a medicine does not exist. Where an exact match fails, approximate matching is attempted and the score is returned so a weak match is visible as one. Nothing here is a statement about interchangeability: two products sharing an ingredient are not thereby substitutable, and that judgement belongs to a pharmacist.","summary":"Resolve a brand name, active ingredient or product code to one canonical drug identity with RxNorm identifiers, the ingredient set, dose forms and brand names — with the US-centric scope of the source stated.","inputSchema":{"type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","minLength":2,"maxLength":200,"description":"Brand name, ingredient name or RxCUI."},"approximate":{"type":"boolean","default":true,"description":"Fall back to approximate matching when the exact name is unknown."}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"5000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://med.halowerk.com/v1/drug-label","method":"POST","name":"drug_label","description":"Returns the sections of an official drug label sorted by clinical significance rather than document order, with the text passed through word for word. Nothing is summarised and nothing is shortened: a summary is by definition an omission, and an omitted contraindication is the kind of omission that matters. A caller who needs a shorter version can produce one from the complete text supplied here, which is the right order of operations. The sections cover the boxed warning where one exists, contraindications, warnings and precautions, interactions, adverse reactions, indications, dosing, dose forms, use in specific populations including pregnancy and paediatric and geriatric use, and overdose. Which sections a label carries depends on whether it is a prescription or over-the-counter product, and the response lists both the sections present and those absent so a missing contraindications section is visible as absent rather than as empty. The label version and its effective date are returned, since labels are revised and an old one may no longer reflect current safety information.","summary":"Extract indications, contraindications, warnings, interactions and dosing from the official drug label as structured sections — verbatim, never summarised, because with a contraindication every omission is a risk.","inputSchema":{"type":"object","required":["drug"],"additionalProperties":false,"properties":{"drug":{"type":"string","minLength":2,"maxLength":200,"description":"Generic or brand name, or an NDC product code."},"sections":{"type":"array","maxItems":21,"items":{"type":"string","enum":["boxed_warning","contraindications","warnings_and_cautions","warnings","do_not_use","drug_interactions","adverse_reactions","indications_and_usage","dosage_and_administration","dosage_forms_and_strengths","use_in_specific_populations","pregnancy","pediatric_use","geriatric_use","overdosage","stop_use","ask_doctor","when_using","active_ingredient","inactive_ingredient","purpose"]},"description":"Restrict to these sections. All by default."},"max_chars_per_section":{"type":"integer","minimum":500,"maximum":40000,"default":12000,"description":"Cap per section. When a section is cut, that is stated with the original length."}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"6000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://med.halowerk.com/v1/boxed-warning","method":"POST","name":"boxed_warning","description":"Answers whether a drug carries a boxed warning, the strongest warning class the FDA applies, and returns the warning text with the label version it came from. The check runs across multiple labels for the same substance rather than the first hit, because labels are maintained independently by each manufacturer and the same generic can carry a boxed warning at one and not at another; taking the first result and answering no is how this question gets answered wrongly. The response gives how many labels were examined, how many carry a warning, and the text of each distinct warning found, deduplicated, so identical warnings across manufacturers do not inflate the count. Where labels disagree that is reported as a disagreement rather than resolved. A negative result is qualified with the number of labels checked, since a boxed warning can be added at any time and a check across three labels is not a check across all of them.","summary":"Check whether a medicine carries an FDA boxed warning — across several manufacturer labels rather than the first one found, because the same generic can carry one at one manufacturer and not at another.","inputSchema":{"type":"object","required":["drug"],"additionalProperties":false,"properties":{"drug":{"type":"string","minLength":2,"maxLength":200},"labels_to_check":{"type":"integer","minimum":1,"maximum":25,"default":8,"description":"How many manufacturer labels to examine."}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"5000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://med.halowerk.com/v1/ingredient-equivalence","method":"POST","name":"ingredient_equivalence","description":"Resolves two products to their RxNorm concepts and compares what the register declares about each: the active ingredient set, the strength per ingredient, the dose form and the route of administration. Every difference is listed individually rather than collapsed into a verdict, and matching ingredients with differing strengths are reported as such rather than as a match. The service explicitly does not decide substitutability, and that is a statement about pharmacology rather than caution: bioequivalence depends on formulation, not on the ingredient list, so two tablets with the same substance at the same strength can differ in release profile — extended release against immediate release is the obvious case and there are subtler ones. What is returned is the comparison of declared attributes and the list of differences; the substitution decision requires bioequivalence data and belongs to a pharmacist. Where a product resolves only approximately the score is returned, because a near match on a drug name is not a match.","summary":"Compare two medicines by active ingredient, strength, dose form and route, listing every declared difference — and explicitly not deciding whether they can be substituted.","inputSchema":{"type":"object","required":["drug_a","drug_b"],"additionalProperties":false,"properties":{"drug_a":{"type":"string","minLength":2,"maxLength":200},"drug_b":{"type":"string","minLength":2,"maxLength":200}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"6000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://med.halowerk.com/v1/drug-recall","method":"POST","name":"drug_recall","description":"Searches the FDA enforcement database for drug recalls matching a product name, company or date range and returns each with the classification leading: class one means use can cause serious harm or death, class three means it will not, and a recall for a wrong label colour and one for contamination share only the word. The class is therefore returned with its meaning spelled out rather than as a bare code. Each record carries the reason for the recall as reported, the recalling firm, the initiation and report dates, the status — ongoing, completed or terminated — the distribution pattern, and the quantity affected. Results are grouped by class so the serious ones are visible without reading the list. An ongoing class one recall is flagged prominently. The database covers the United States only and reports with a lag of weeks between a recall starting and appearing here, both of which are stated, because an empty result for a recent event usually means not yet published rather than nothing happened.","summary":"Find drug recalls by product, company, period, class and status — with the recall class and what it actually means placed first, because a labelling error and a contamination are both called recalls.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"product":{"type":"string","maxLength":200,"description":"Product or drug name."},"company":{"type":"string","maxLength":200,"description":"Recalling firm."},"classification":{"type":"string","enum":["Class I","Class II","Class III"],"description":"Restrict to one class."},"since":{"type":"string","maxLength":10,"description":"ISO date; defaults to two years back."},"status":{"type":"string","enum":["Ongoing","Completed","Terminated"]},"limit":{"type":"integer","minimum":1,"maximum":100,"default":30}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"5000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://med.halowerk.com/v1/adverse-events","method":"POST","name":"adverse_events","description":"Summarises adverse event reports for a drug: the most frequently reported reactions, the distribution of serious outcomes, the split between reports from health professionals and consumers, and the trend over time. Three limitations are returned with every response and are not footnotes. A report establishes that somebody suspected a connection, not that one exists — the system records suspicion, not causation. The counts are not related to prescription volume, so a widely used medicine accumulates more reports without being more dangerous, and comparing two drugs by raw report count compares their market shares. And reporting rises sharply when a drug is in the news, which means a rising trend is a media signal at least as often as a safety signal. The response therefore reports counts, shares and trend, and refuses to compute a rate or a risk, since the denominator that would make either meaningful does not exist in this dataset. Reports concern the United States and lag by months.","summary":"Aggregate reported adverse events for a drug by reaction, outcome and period from the FDA spontaneous reporting system — with reporting bias stated as prominently as the counts, because the counts are meaningless without it.","inputSchema":{"type":"object","required":["drug"],"additionalProperties":false,"properties":{"drug":{"type":"string","minLength":2,"maxLength":200},"months":{"type":"integer","minimum":3,"maximum":120,"default":36},"top_reactions":{"type":"integer","minimum":5,"maximum":50,"default":20}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"6000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://med.halowerk.com/v1/device-recall","method":"POST","name":"device_recall","description":"Searches the device recall database for a product, manufacturer or model and returns each matching recall with the classification and its meaning, the reason, the recalling firm, the dates, the status and — the field that decides whether a specific unit is affected — the product description including lot numbers and serial ranges, quoted verbatim. That quotation is the substance: a device recall almost never covers an entire product line, it covers particular batches, and a service that matches on product name and reports affected raises alarms about devices that were never in scope. The response therefore states that a match is a match on the product, not on the individual unit, and that the lot information must be checked against the device in hand. Classification meanings are given in full. Results are grouped by class and ongoing class one recalls are flagged. Coverage is the United States with a reporting lag of weeks.","summary":"Check a medical device, manufacturer or model against FDA recalls with the affected lot and serial ranges quoted verbatim — because a recall almost never covers a product, only certain batches.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"device":{"type":"string","maxLength":200,"description":"Device name or model."},"manufacturer":{"type":"string","maxLength":200},"since":{"type":"string","maxLength":10,"description":"ISO date; defaults to three years back."},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"5000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://med.halowerk.com/v1/device-incident-trend","method":"POST","name":"device_incident_trend","description":"Aggregates medical device reports for a product code, device name or manufacturer into a trend: reports per year, the split between malfunction, injury and death outcomes, the most frequent problem codes, and the share of reports where the manufacturer conducted an evaluation. Two things the figures are not, and both are stated in the response rather than left to be inferred. They are not a failure rate: the denominator, how many units are in service, does not exist in this dataset, so a rising count can mean rising adoption just as easily as rising failure, and dividing by anything available here would manufacture a rate. And they are not evidence of cause: device reports record a temporal association, the reporter opinion is not a finding, and manufacturers frequently disagree with the reporter assessment in the same record — the response reports the disagreement rather than picking a side. Reports concern the United States and lag by months.","summary":"Trend reported medical device events by product code, manufacturer and period — as counts over time with the event types, never as a failure rate and never as a causal claim.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"device":{"type":"string","maxLength":200,"description":"Device generic name."},"manufacturer":{"type":"string","maxLength":200},"product_code":{"type":"string","maxLength":10,"description":"FDA three-letter product code, the most precise selector."},"years":{"type":"integer","minimum":1,"maximum":15,"default":5}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"6000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://med.halowerk.com/v1/trial-finder","method":"POST","name":"trial_finder","description":"Searches the clinical trial registry and returns matching studies with the fields that decide whether a trial is relevant: the recruitment status translated from the registry code, the phase, the study type, the enrolment target, the conditions and interventions, the sponsor, the start and completion dates, and the countries with sites. Recruitment status leads because it is the field most often overlooked: a study marked active but no longer enrolling appears in every result list and is useless to someone looking for a place in a trial, so the response separates recruiting from non-recruiting counts and offers the filter. Phase is returned as reported, including the absence of a phase for observational studies rather than a fabricated one. Registry entries are supplied by sponsors and are not verified by the agency, and entries go stale — the last update date is returned so a study last touched three years ago is visible as such. This is a search over a registry, not medical advice about whether a trial is suitable.","summary":"Find clinical trials by condition, intervention, phase, status and country — with recruiting and non-recruiting trials kept apart, because an active trial that has stopped enrolling is of no use to a patient.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"condition":{"type":"string","maxLength":200,"description":"Disease or condition."},"intervention":{"type":"string","maxLength":200,"description":"Drug, device or procedure."},"recruiting_only":{"type":"boolean","default":true},"phase":{"type":"string","enum":["PHASE1","PHASE2","PHASE3","PHASE4","EARLY_PHASE1","NA"]},"country":{"type":"string","maxLength":60,"description":"Country name as used by the registry, e.g. Germany."},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"6000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://med.halowerk.com/v1/trial-eligibility","method":"POST","name":"trial_eligibility","description":"Retrieves the eligibility section of a registered trial and separates it into inclusion and exclusion criteria as individual items, each classified where the classification is unambiguous and each carrying the verbatim source sentence. The source sentence is the substance rather than a nicety: eligibility criteria decide whether a person can enter a study, a structured item without its origin cannot be checked, and a wrongly structured one goes unnoticed. Classification is deliberately conservative — age, sex, pregnancy, laboratory values, prior treatment, comorbidity, consent, contraception and concurrent trial participation are recognised by explicit patterns, and anything not clearly matching is returned as unclassified rather than assigned to the nearest category. The structured minimum age, maximum age, sex and healthy-volunteer flag are taken from the registry fields rather than parsed from prose, since the registry carries them separately and parsing them again would introduce error where none exists. This structures a document; whether a person qualifies is a clinical judgement.","summary":"Turn free-text inclusion and exclusion criteria of a clinical trial into structured items — each carrying the original sentence it came from, and anything unclear left unstructured rather than forced.","inputSchema":{"type":"object","required":["nct_id"],"additionalProperties":false,"properties":{"nct_id":{"type":"string","minLength":5,"maxLength":20,"description":"Registry identifier, e.g. NCT04267848."}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"6000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://med.halowerk.com/v1/trial-sites","method":"POST","name":"trial_sites","description":"Returns the participating sites of a registered trial, each with the facility name, city, state and country, the coordinates the registry holds, the recruitment status of that site specifically, and any publicly listed contact. Site status is reported separately from trial status and that separation is the point: a trial can be recruiting overall while the nearest site has stopped, and the reverse happens too, so applying the trial status to every site sends someone to a closed door. When a reference location is supplied, sites are sorted by distance and the distance is given, computed from the registry coordinates where present and marked as unavailable where not — a site without coordinates is listed with its city rather than dropped, since a missing coordinate is a registry gap and not a missing site. Contacts are passed through only where the registry publishes them, and their absence is stated rather than filled with a central number. Registry entries are sponsor-maintained and can be out of date.","summary":"List the sites of a clinical trial with their own recruitment status, public contacts and distance from a location — because a site status is not the trial status and the nearest site may be closed.","inputSchema":{"type":"object","required":["nct_id"],"additionalProperties":false,"properties":{"nct_id":{"type":"string","minLength":5,"maxLength":20},"lat":{"type":"number","minimum":-90,"maximum":90,"description":"Reference point for distances."},"lon":{"type":"number","minimum":-180,"maximum":180},"recruiting_only":{"type":"boolean","default":false},"country":{"type":"string","maxLength":60}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"5000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://med.halowerk.com/v1/trial-status-monitor","method":"POST","name":"trial_status_monitor","description":"A monitor with memory over registered trials. The first call stores a snapshot and returns the baseline explicitly marked as such rather than reporting everything as new. Each later call with the returned token compares the current registry state and reports the differences: recruitment status, enrolment target, primary and overall completion dates, the number of sites, and whether results have been posted. Changes to the primary outcome measures are reported in their own field rather than mixed into a list of field changes, because a primary endpoint altered after a trial is underway is the classic route to presenting a failed study as a success, and the registry history is where that becomes visible. Enrolment cuts and completion dates pushed back are called out as such, since both are ordinary and both are also what a struggling trial looks like. Up to twenty-five trials per call. The registry is sponsor-maintained: an absent change means nothing was updated, not that nothing happened.","summary":"Watch clinical trials and report what changed since your last check — recruitment, enrolment, dates, sites and results — with changes to the primary outcome reported separately because that is the one that matters.","inputSchema":{"type":"object","required":["nct_ids"],"additionalProperties":false,"properties":{"nct_ids":{"type":"array","minItems":1,"maxItems":25,"items":{"type":"string","minLength":5,"maxLength":20}},"snapshot_token":{"type":"string","maxLength":80}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"6000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://med.halowerk.com/v1/molecule-identity","method":"POST","name":"molecule_identity","description":"Takes any common identifier for a chemical and returns the canonical PubChem compound: the CID, molecular formula, molecular weight, canonical and isomeric SMILES, InChI and InChI key, the IUPAC name, and the computed properties that decide most downstream work — logP, exact mass, polar surface area, hydrogen bond donors and acceptors, rotatable bonds and formal charge. Ambiguity is checked and reported first rather than resolved silently: common names frequently match several compounds because they do not distinguish stereoisomers, and glucose is the standard example where one form is a nutrient and the mirror image is not metabolised. When a name maps to more than one CID the alternatives are listed with their formulas so the difference is visible. Isomeric SMILES is returned alongside canonical SMILES for the same reason — canonical SMILES discards stereochemistry, and a workflow that keeps only that has silently merged two different substances. Synonyms are returned on request, capped and counted.","summary":"Resolve a chemical name, formula, SMILES or InChI to a canonical PubChem compound with its identifiers and computed properties — flagging ambiguity when a name matches more than one compound.","inputSchema":{"type":"object","required":["query"],"additionalProperties":false,"properties":{"query":{"type":"string","minLength":1,"maxLength":500,"description":"Name, CID, SMILES, InChI key or molecular formula."},"input_type":{"type":"string","enum":["auto","name","cid","smiles","inchikey","formula"],"default":"auto"},"include_synonyms":{"type":"boolean","default":false}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"5000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://med.halowerk.com/v1/chemical-hazard","method":"POST","name":"chemical_hazard","description":"Returns the hazard profile of a chemical: GHS pictograms, signal word, hazard statements and precautionary statements where they are recorded, together with the physical properties that govern handling — melting and boiling point, flash point, density, vapour pressure, solubility and autoignition temperature. Every statement carries the organisation that contributed it, and that attribution is the substance of the service rather than a citation courtesy. PubChem aggregates, so the same GHS classification may come from a manufacturer, a regulator or a database project, and those are not equally authoritative; a hazard answer without per-statement provenance leaves the reader unable to tell whom they are disagreeing with when they disagree. Where contributors disagree the response reports both rather than choosing. The safety data sheet of the actual supplier governs handling and this does not replace it, which is stated in the response rather than assumed to be understood.","summary":"Bundle physical properties, GHS hazard classification and safety information for a substance with the contributing source named for every individual statement.","inputSchema":{"type":"object","required":["query"],"additionalProperties":false,"properties":{"query":{"type":"string","minLength":1,"maxLength":300,"description":"Name, CID or CAS number."},"include_properties":{"type":"boolean","default":true}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"6000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://med.halowerk.com/v1/gene-crosswalk","method":"POST","name":"gene_crosswalk","description":"Resolves a gene symbol or identifier and returns the corresponding identifiers across NCBI and Ensembl: the gene with its Entrez and Ensembl identifiers, the genomic location with assembly, the biotype, the description, and the transcripts with their protein products. Organism and Ensembl release are returned with every result and are not optional detail: the same gene symbol exists in many species, so an identifier without an organism is an error that only shows up in the results, and transcript versions change between releases, so two identifiers differing only in their version suffix are not the same transcript. Where a symbol maps to more than one gene in the requested organism the alternatives are listed rather than the first being taken. Cross-references are reported as the sources state them; the two databases do not agree on every mapping and a disagreement is reported rather than resolved, because which one is right depends on the annotation version being worked against.","summary":"Translate gene, transcript and protein identifiers between NCBI and Ensembl with the organism and the Ensembl release always stated — because both are needed for an identifier to mean anything.","inputSchema":{"type":"object","required":["query"],"additionalProperties":false,"properties":{"query":{"type":"string","minLength":2,"maxLength":100,"description":"Gene symbol like TP53, an Ensembl id like ENSG00000141510, or an Entrez gene id."},"species":{"type":"string","maxLength":60,"default":"homo_sapiens","description":"Ensembl species name. Required in practice — the same symbol exists in many species."},"include_transcripts":{"type":"boolean","default":true}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"6000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]}]}