Posttar API

Field language

Paths, request fields, response fields and almost every value are English.

Paths and field names are English on both sides: what you send (projectId, scheduledFor, when) and what you receive (projects, name, createdAt).

This was not always true. Until 13/09/2026 the response fields came out in Portuguese, and until 14/09/2026 so did the error envelope, because the internal layer that builds them was written before the API existed. They were renamed at the source, not translated at the boundary: a translation layer means two tables to keep in step, and the one nobody updates is where the bug hides. A test now refuses any Portuguese field in a response example.

Checked against the 14 endpoints that carry a response example: none of them returns a Portuguese field name.

Values too

Values are English as well: format says caption_reel, status says generating, alignment says center, dayName says monday, an audiogram scene's type says bar_chart, and the error code says not_found.

This page claimed on the morning of 14/09/2026 that nothing was Portuguese, and it was wrong: the six format values were still carrossel, leia_a_legenda, audio_animado, carrossel_profissional and infografico — the most-typed values in the whole API, in the table two pages over. The test that was supposed to catch it compares field NAMES in response examples, so it stayed green with audio_animado in plain sight. Measuring the wrong thing feels exactly like being done.

The two places that are still Portuguese, and why

WhereWhat you will seeWhy it stays
message in an errorPost nao encontradoHuman text, meant to be shown or logged. The stable contract is code, which is English.
content.slides[].fields[].valueblocos, peso, textoThe slide's own content, shaped by its layout template. You send the object back unchanged; the API never reads inside it.

Slide content passes through untouched

In GET /posts/:id/slides every field comes as { name, value }. The value is the content of that slide's layout, its shape comes from the template, and you send the whole object back unchanged in PATCH /slides/:id. The API guarantees the language of the envelope it builds, not of the content passing through it.

Error messages

The envelope is { "error": { "code", "message" } }. code is the stable contract, in English. message is human text, written in Portuguese, and it can change wording without notice: safe to show a person, unsafe to match on. See Errors.