{"openapi":"3.1.0","info":{"title":"DNA Sequence API","version":"1.0.0","description":"DNA/RNA sequence-analysis maths as an API, computed locally and deterministically. The analyze endpoint reports the length and base composition of a sequence, the GC and AT content, the complement, the reverse and the reverse complement (the opposite strand read 5'→3'), and the approximate single-stranded molecular weight. The translate endpoint transcribes DNA to mRNA (T→U) and translates it to protein with the standard genetic code in reading frame 1, 2 or 3, giving the one-letter amino-acid sequence, the protein length and the number of stop codons. The melting endpoint estimates a primer's melting temperature with the Wallace rule, 4·(G+C) + 2·(A+T), for short oligos and a salt-adjusted basic formula for longer ones. Sequences are case- and whitespace-insensitive and accept A, C, G, T for DNA or U for RNA. Everything is computed locally and deterministically, so it is instant and private. Ideal for bioinformatics, molecular-biology, genomics and lab app developers, primer-design and sequence-inspection tools, and biology education. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is sequence analysis; for genome assembly data use a genomes API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/dna-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/analyze":{"get":{"operationId":"get_v1_analyze","tags":["DNA"],"summary":"Sequence analysis","description":"","parameters":[{"name":"sequence","in":"query","required":true,"description":"DNA/RNA sequence","schema":{"type":"string"},"example":"ATGCATGC"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"GC content = (G+C)/length. Reverse complement reads the opposite strand 5'→3'. Molecular weight is the approximate single-stranded value.","inputs":{"type":"DNA","length":8},"length":8,"reverse":"CGTACGTA","complement":"TACGTACG","base_counts":{"A":2,"C":2,"G":2,"T":2,"U":0},"at_content_percent":50,"gc_content_percent":50,"reverse_complement":"GCATGCAT","molecular_weight_g_mol":2409.64},"meta":{"timestamp":"2026-06-05T03:09:02.860Z","request_id":"cbde2b1c-019b-4cd9-9053-f45b712e2402"},"status":"ok","message":"Sequence analysis","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/melting":{"get":{"operationId":"get_v1_melting","tags":["DNA"],"summary":"Melting temperature","description":"","parameters":[{"name":"sequence","in":"query","required":true,"description":"Primer sequence","schema":{"type":"string"},"example":"ATGCATGCATGCATGCATGC"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Wallace rule Tm = 4·(G+C) + 2·(A+T) suits primers under ~14 bases; for longer oligos the salt-adjusted basic formula 64.9 + 41·(GC−16.4)/length is better.","inputs":{"length":20},"tm_basic_c":51.78,"recommended":"tm_basic_c","tm_wallace_c":60,"gc_content_percent":50},"meta":{"timestamp":"2026-06-05T03:09:02.930Z","request_id":"93f3859d-b1f0-4eb7-8a42-b9130769f468"},"status":"ok","message":"Melting temp","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/translate":{"get":{"operationId":"get_v1_translate","tags":["DNA"],"summary":"Transcribe & translate","description":"","parameters":[{"name":"sequence","in":"query","required":true,"description":"DNA/RNA sequence","schema":{"type":"string"},"example":"ATGGCCTAA"},{"name":"frame","in":"query","required":false,"description":"Reading frame 1, 2 or 3","schema":{"type":"string"},"example":"1"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"mrna":"AUGGCCUAA","note":"Standard genetic code. mRNA is the DNA with T→U; the protein uses one-letter amino acids, * marks a stop codon.","inputs":{"type":"DNA","frame":1,"length":9},"protein":"MA*","stop_codons":1,"protein_length":2,"codons_translated":3},"meta":{"timestamp":"2026-06-05T03:09:03.000Z","request_id":"7700532c-f894-43dc-9b65-290f39dd0bda"},"status":"ok","message":"Translate","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 (DNA) or U (RNA); case- and whitespace-insensitive. Translation uses the standard genetic code; * marks a stop codon.","service":"dna-api","formulae":{"tm_basic":"64.9 + 41·(GC − 16.4) / length","gc_content":"(G+C) / length","tm_wallace":"4·(G+C) + 2·(A+T)"},"endpoints":{"GET /v1/meta":"This document.","GET /v1/analyze":"Length, base counts, GC content, complement, reverse complement and molecular weight.","GET /v1/melting":"Primer melting temperature (Wallace rule and salt-adjusted basic formula).","GET /v1/translate":"Transcribe DNA→mRNA and translate to protein in frame 1, 2 or 3."},"description":"DNA/RNA sequence analysis: base composition, GC content and reverse complement; transcription and translation to protein in any reading frame; and primer melting temperature."},"meta":{"timestamp":"2026-06-05T03:09:03.063Z","request_id":"e81535bf-df4c-4a7b-811e-316764607220"},"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":2000,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":500,"monthly_call_quota":25000,"rps_limit":5,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1500,"monthly_call_quota":150000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":4500,"monthly_call_quota":750000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/dna-api"}