{"openapi":"3.1.0","info":{"title":"DNA Melting Temperature API","version":"1.0.0","description":"DNA-oligo and PCR-primer maths as an API, computed locally and deterministically. The tm endpoint computes the melting temperature of a primer sequence three ways: the Wallace rule 2·(A+T) + 4·(G+C) for short oligos up to 13 nt, the Marmur–Wallace GC formula 64.9 + 41·(nGC − 16.4)/N for longer ones, and the salt-adjusted 81.5 + 0.41·%GC − 675/N + 16.6·log10[Na+] for a given sodium concentration, and recommends the right method for the length — an eight-base ATGCATGC melts at 24 °C by Wallace, a 20-base 50 %-GC primer at about 51.8 °C by Marmur. The gc-content endpoint reports the GC and AT percentages, the per-base counts and the single-stranded molecular weight. The reverse-complement endpoint returns the complement, the reverse and the reverse complement of a strand. Sequences use A/C/G/T (case-insensitive, whitespace ignored) and [Na+] is in mol/L. Everything is computed locally and deterministically, so it is instant and private. Ideal for molecular-biology, biotech, PCR, primer-design, bioinformatics and lab-automation app developers, oligo and primer calculators, and LIMS software. Estimation formulas for primer design, not a substitute for nearest-neighbour thermodynamics. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is oligo melting temperature; for population-genetics allele frequencies use a genetics API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/dnamelt-api","description":"oanor gateway"}],"tags":[{"name":"DNA"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/gc-content":{"get":{"operationId":"get_v1_gc_content","tags":["DNA"],"summary":"GC content & molecular weight","description":"","parameters":[{"name":"sequence","in":"query","required":true,"description":"DNA sequence (A/C/G/T)","schema":{"type":"string"},"example":"ATGCATGCATGCATGCATGC"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"GC content = (G+C)/length. Molecular weight is for single-stranded DNA in g/mol. Higher GC means a more stable, higher-Tm duplex.","inputs":{"length":20,"sequence":"ATGCATGCATGCATGCATGC"},"at_count":10,"gc_count":10,"base_counts":{"A":5,"C":5,"G":5,"T":5},"molecular_weight":6117.04,"at_content_percent":50,"gc_content_percent":50},"meta":{"timestamp":"2026-06-05T19:50:16.895Z","request_id":"c058676e-ad2d-4fa1-bd07-2511b27ecfa8"},"status":"ok","message":"GC content","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/reverse-complement":{"get":{"operationId":"get_v1_reverse_complement","tags":["DNA"],"summary":"Reverse complement","description":"","parameters":[{"name":"sequence","in":"query","required":true,"description":"DNA sequence (A/C/G/T)","schema":{"type":"string"},"example":"ATGC"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Complement swaps A↔T and C↔G; the reverse complement is the antiparallel strand read 5'→3'.","inputs":{"sequence":"ATGC"},"reverse":"CGTA","complement":"TACG","reverse_complement":"GCAT"},"meta":{"timestamp":"2026-06-05T19:50:17.002Z","request_id":"5ea9843c-50d0-456b-9e5d-8576dbbea5fd"},"status":"ok","message":"Reverse complement","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/tm":{"get":{"operationId":"get_v1_tm","tags":["DNA"],"summary":"Primer melting temperature","description":"","parameters":[{"name":"sequence","in":"query","required":true,"description":"DNA sequence (A/C/G/T)","schema":{"type":"string"},"example":"ATGCATGCATGCATGCATGC"},{"name":"na_conc","in":"query","required":false,"description":"[Na+] in mol/L (default 0.05)","schema":{"type":"string"},"example":"0.05"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Tm formulas: Wallace 2(A+T)+4(G+C) for ≤13 nt; Marmur–Wallace 64.9+41·(nGC−16.4)/N for longer; salt-adjusted adds 16.6·log10[Na+]. Annealing temperature is typically Tm − 5 °C.","inputs":{"length":20,"na_conc":0.05,"sequence":"ATGCATGCATGCATGCATGC"},"method":"Marmur–Wallace (GC)","tm_marmur":51.78,"tm_wallace":60,"recommended_tm":51.78,"tm_salt_adjusted":46.6529},"meta":{"timestamp":"2026-06-05T19:50:17.102Z","request_id":"ef375235-b620-4a49-8b97-37ba17ce11aa"},"status":"ok","message":"Melting temperature","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"notes":"Sequence uses A/C/G/T (case-insensitive, whitespace ignored). na_conc is [Na+] in mol/L (default 0.05). Estimation formulas for primer design; for exact thermodynamics use nearest-neighbour software.","service":"dnamelt-api","endpoints":{"GET /v1/tm":"Melting temperature by Wallace, Marmur and salt-adjusted methods.","GET /v1/meta":"This document.","GET /v1/gc-content":"GC/AT content, base counts and molecular weight.","GET /v1/reverse-complement":"Complement, reverse and reverse complement of a sequence."},"description":"DNA oligo / PCR primer maths: melting temperature, GC content, molecular weight and reverse complement."},"meta":{"timestamp":"2026-06-05T19:50:17.210Z","request_id":"7a60a73f-627d-4942-ad3a-cd112d754063"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":3850,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":640,"monthly_call_quota":36500,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1850,"monthly_call_quota":174000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5700,"monthly_call_quota":1045000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/dnamelt-api"}