{"openapi":"3.1.0","info":{"title":"Essentras Agent API","version":"2026-10-02","summary":"Buy paid media placements in 3,800+ vetted outlets.","description":"Read-only catalog plus basket pricing. Search outlets by price, authority, geography, topic and link policy, price a basket, then hand the buyer a checkout URL to authorize payment. No credentials required to search or quote. Each outlet can be bought once per order. Rate limited per IP.","contact":{"name":"Essentras","url":"https://essentras.com/contact"}},"servers":[{"url":"https://essentras.com"}],"paths":{"/api/agent/v1":{"get":{"operationId":"getService","summary":"Service description, endpoints and checkout model","responses":{"200":{"description":"Service description"}}}},"/api/agent/v1/outlets":{"get":{"operationId":"searchOutlets","summary":"Search buyable media outlets","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Match on publication name."},{"name":"country","in":"query","required":false,"schema":{"type":"string"},"description":"Country name or ISO code, e.g. \"US\"."},{"name":"region","in":"query","required":false,"schema":{"type":"string"},"description":"North America, Europe, Middle East, Latin America, Asia Pacific, Africa, Oceania, Global."},{"name":"language","in":"query","required":false,"schema":{"type":"string"},"description":"BCP-47 code, e.g. \"en\"."},{"name":"topic","in":"query","required":false,"schema":{"type":"string"},"description":"Topic or genre, e.g. \"fintech\", \"crypto\", \"lifestyle\"."},{"name":"min_price","in":"query","required":false,"schema":{"type":"integer"},"description":"Minimum price in USD."},{"name":"max_price","in":"query","required":false,"schema":{"type":"integer"},"description":"Maximum price in USD. The single most useful filter for a budget."},{"name":"min_da","in":"query","required":false,"schema":{"type":"integer"},"description":"Minimum Domain Authority."},{"name":"min_dr","in":"query","required":false,"schema":{"type":"number"},"description":"Minimum Domain Rating."},{"name":"dofollow","in":"query","required":false,"schema":{"type":"boolean"},"description":"Only outlets giving dofollow links."},{"name":"indexed","in":"query","required":false,"schema":{"type":"boolean"},"description":"Only outlets whose placements are confirmed indexed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["popularity","price_asc","price_desc","authority_desc","traffic_desc"]},"description":"Default: popularity."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"maximum":100},"description":"Page size."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0},"description":"Page offset."}],"responses":{"200":{"description":"Matching offers","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"},"has_more":{"type":"boolean"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Stable outlet id (the publisher slug). Use this in /quote."},"type":{"type":"string","enum":["media_placement"]},"name":{"type":"string"},"outlet":{"type":"object","properties":{"name":{"type":"string"},"website":{"type":["string","null"]},"country":{"type":["string","null"]},"region":{"type":["string","null"]},"languages":{"type":"array","items":{"type":"string"}},"topics":{"type":"array","items":{"type":"string"}},"domain_authority":{"type":["integer","null"]},"domain_rating":{"type":["number","null"]},"monthly_traffic":{"type":["integer","null"]}}},"price":{"type":"object","properties":{"amount":{"type":"integer"},"currency":{"type":"string","enum":["USD"]},"unit":{"type":"string","enum":["per_placement"]}}},"delivery":{"type":"object","properties":{"turnaround":{"type":["string","null"]},"billing_trigger":{"type":"string","enum":["on_order"],"description":"Charged when the order is placed; refunded if not published or if the turnaround is missed."}}},"link":{"type":"object","properties":{"dofollow":{"type":"boolean"},"indexed":{"type":"string","enum":["YES","NO","MAYBE"]},"sponsored_tag":{"type":"string","enum":["YES","NO"]}}},"availability":{"type":"string","enum":["in_stock"]},"url":{"type":"string","format":"uri"},"buy_url":{"type":"string","format":"uri","description":"Hand this to the buyer to approve and pay."}}}}}}}}}}}},"/api/agent/v1/outlets/{id}":{"get":{"operationId":"getOutlet","summary":"Get one outlet by id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The outlet id from a search result."}],"responses":{"200":{"description":"The offer","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Stable outlet id (the publisher slug). Use this in /quote."},"type":{"type":"string","enum":["media_placement"]},"name":{"type":"string"},"outlet":{"type":"object","properties":{"name":{"type":"string"},"website":{"type":["string","null"]},"country":{"type":["string","null"]},"region":{"type":["string","null"]},"languages":{"type":"array","items":{"type":"string"}},"topics":{"type":"array","items":{"type":"string"}},"domain_authority":{"type":["integer","null"]},"domain_rating":{"type":["number","null"]},"monthly_traffic":{"type":["integer","null"]}}},"price":{"type":"object","properties":{"amount":{"type":"integer"},"currency":{"type":"string","enum":["USD"]},"unit":{"type":"string","enum":["per_placement"]}}},"delivery":{"type":"object","properties":{"turnaround":{"type":["string","null"]},"billing_trigger":{"type":"string","enum":["on_order"],"description":"Charged when the order is placed; refunded if not published or if the turnaround is missed."}}},"link":{"type":"object","properties":{"dofollow":{"type":"boolean"},"indexed":{"type":"string","enum":["YES","NO","MAYBE"]},"sponsored_tag":{"type":"string","enum":["YES","NO"]}}},"availability":{"type":"string","enum":["in_stock"]},"url":{"type":"string","format":"uri"},"buy_url":{"type":"string","format":"uri","description":"Hand this to the buyer to approve and pay."}}}}}},"404":{"description":"No active outlet with that id"}}}},"/api/agent/v1/quote":{"post":{"operationId":"quotePlacements","summary":"Price a basket and get a checkout URL","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","maxItems":30,"items":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Outlet id. Each outlet can be bought once per order, so there is no quantity."}}}}}}}}},"responses":{"200":{"description":"A priced basket","content":{"application/json":{"schema":{"type":"object","properties":{"line_items":{"type":"array","items":{"type":"object"}},"unavailable":{"type":"array","items":{"type":"string"},"description":"Requested ids that are not buyable; excluded from the total."},"truncated":{"type":"array","items":{"type":"string"},"description":"Ids dropped because the basket exceeded 30 outlets."},"warnings":{"type":"array","items":{"type":"string"}},"subtotal":{"type":"integer"},"discount":{"type":"object","description":"Volume tier applied: 3+ placements 10% off, 5+ 15% off."},"total":{"type":"number","description":"Final amount the buyer is charged, discounts included."},"currency":{"type":"string"},"billing_trigger":{"type":"string"},"checkout_url":{"type":["string","null"],"description":"Give this to the buyer to approve and pay."}}}}}}}}}}}