{"id":22161,"date":"2025-10-15T14:08:18","date_gmt":"2025-10-15T11:08:18","guid":{"rendered":"https:\/\/mapsly.com?page_id=22161"},"modified":"2025-10-15T14:09:03","modified_gmt":"2025-10-15T11:09:03","slug":"tp-sync-api","status":"publish","type":"page","link":"https:\/\/mapsly.com\/pt\/tp-sync-api\/","title":{"rendered":"tp-sync-api"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"22161\" class=\"elementor elementor-22161\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-da1eb59 e-flex e-con-boxed e-con e-parent\" data-id=\"da1eb59\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-614ea51 elementor-widget elementor-widget-html\" data-id=\"614ea51\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"ru\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <title>Documenta\u00e7\u00e3o da API para integra\u00e7\u00e3o de tradu\u00e7\u00f5es TranslatePress (TP Sync API)<\/title>\r\n    <style>\r\n        body { \r\n       \r\n        table { \r\n            border-collapse: collapse; \r\n            width: 100%; \r\n            margin: 15px 0; \r\n        }\r\n        th, td { \r\n            border: 1px solid #ddd; \r\n            padding: 10px; \r\n            text-align: left; \r\n        }\r\n        th { \r\n            background-color: #f2f2f2; \r\n            font-weight: bold; \r\n        }\r\n        pre { \r\n            background: #f4f4f4; \r\n            padding: 15px; \r\n            border-radius: 5px; \r\n            overflow-x: auto; \r\n            border: 1px solid #ddd; \r\n        }\r\n        code { \r\n            font-family: 'Courier New', monospace; \r\n            font-size: 14px; \r\n        }\r\n        ul { \r\n            margin: 10px 0; \r\n            padding-left: 25px; \r\n        }\r\n        .card {\r\n            background: #fff;\r\n            padding: 20px;\r\n            margin: 20px 0;\r\n            border-radius: 8px;\r\n            box-shadow: 0 2px 4px rgba(0,0,0,0.1);\r\n        }\r\n    <\/style>\r\n<\/head>\r\n<body>\r\n\r\n<div class=\"card\">\r\n    <h1>Documenta\u00e7\u00e3o da API para integra\u00e7\u00e3o de tradu\u00e7\u00f5es TranslatePress (TP Sync API)<\/h1>\r\n\r\n    <p>Esta API fornece dois endpoints para trabalhar com strings de tradu\u00e7\u00e3o no plugin TranslatePress. O idioma base \u00e9 o ingl\u00eas (<code>en_us<\/code>). Todas as solicita\u00e7\u00f5es exigem autoriza\u00e7\u00e3o via token Bearer (obtido no admin do WordPress no menu \"TP Sync\").<\/p>\r\n\r\n    <p><strong>URL base:<\/strong> <code>https:\/\/your-site.com\/wp-json\/tp-sync\/v1\/<\/code><\/p>\r\n<\/div>\r\n\r\n<div class=\"card\">\r\n    <h2>1. Obten\u00e7\u00e3o das linhas para tradu\u00e7\u00e3o (GET \/keys)<\/h2>\r\n\r\n    <p>Este endpoint retorna uma lista de strings do dicion\u00e1rio TranslatePress para o idioma especificado. Cada string inclui um ID (no formato <code>dicion\u00e1rio: {id}<\/code>), texto original em ingl\u00eas, tradu\u00e7\u00e3o atual, status e metadados de pagina\u00e7\u00e3o. Ordena\u00e7\u00e3o por ID DESC (os mais novos no topo). Datas, <code>criado em<\/code> e <code>atualizado em<\/code> sempre <code>null<\/code> (n\u00e3o s\u00e3o solicitados no SQL).<\/p>\r\n\r\n    <h3>Par\u00e2metros da solicita\u00e7\u00e3o<\/h3>\r\n    <table>\r\n        <thead>\r\n            <tr>\r\n                <th>Par\u00e2metro<\/th>\r\n                <th>Tipo<\/th>\r\n                <th>Obrigat\u00f3rio<\/th>\r\n                <th>Descri\u00e7\u00e3o<\/th>\r\n                <th>Valor padr\u00e3o<\/th>\r\n            <\/tr>\r\n        <\/thead>\r\n        <tbody>\r\n            <tr>\r\n                <td><code>lang<\/code><\/td>\r\n                <td>string<\/td>\r\n                <td>Sim<\/td>\r\n                <td>C\u00f3digo do idioma (por exemplo, <code>de<\/code> para o alem\u00e3o <code>fr<\/code> para o franc\u00eas). C\u00f3digos curtos s\u00e3o normalizados (de \u2192 de_de).<\/td>\r\n                <td>\u2014<\/td>\r\n            <\/tr>\r\n            <tr>\r\n                <td><code>p\u00e1gina<\/code><\/td>\r\n                <td>inteiro<\/td>\r\n                <td>N\u00e3o<\/td>\r\n                <td>N\u00famero da p\u00e1gina para pagina\u00e7\u00e3o.<\/td>\r\n                <td>1<\/td>\r\n            <\/tr>\r\n            <tr>\r\n                <td><code>limite<\/code><\/td>\r\n                <td>inteiro<\/td>\r\n                <td>N\u00e3o<\/td>\r\n                <td>N\u00famero de linhas por p\u00e1gina (m\u00ednimo 1, m\u00e1ximo 500).<\/td>\r\n                <td>100<\/td>\r\n            <\/tr>\r\n            <tr>\r\n                <td><code>atualizado desde<\/code><\/td>\r\n                <td>string<\/td>\r\n                <td>N\u00e3o<\/td>\r\n                <td>Filtro por data de atualiza\u00e7\u00e3o (ISO8601, por exemplo,) <code>2025-10-01T00:00:00Z<\/code>). Retorna apenas as linhas atualizadas ap\u00f3s esta data.<\/td>\r\n                <td>\u2014<\/td>\r\n            <\/tr>\r\n        <\/tbody>\r\n    <\/table>\r\n\r\n    <h3>T\u00edtulos<\/h3>\r\n    <ul>\r\n        <li><code>Autoriza\u00e7\u00e3o: Bearer {\u0442\u043e\u043a\u0435\u043d}<\/code> (obrigat\u00f3rio)<\/li>\r\n    <\/ul>\r\n\r\n    <h3>Exemplo de solicita\u00e7\u00e3o (cURL)<\/h3>\r\n    <pre><code>curl -X GET \"https:\/\/your-site.com\/wp-json\/tp-sync\/v1\/keys?lang=de&amp;page=1&amp;limit=50&amp;updated_since=2025-10-01T00:00:00Z\" \\\n  -H \"Authorization: Bearer your-api-token-here\"<\/code><\/pre>\r\n\r\n    <h3>Exemplo de resposta (JSON)<\/h3>\r\n    <pre><code>{\n  \"keys\": [\n    {\n      \"key_id\": \"dictionary:123\",\n      \"original\": \"Hello World\",\n      \"translated\": \"Ol\u00e1 Mundo\",\n      \"status\": 2,\n      \"created_at\": null,\n      \"updated_at\": null\n    },\n    {\n      \"key_id\": \"dictionary:124\",\n      \"original\": \"Welcome\",\n      \"translated\": \"Bem-vindo\",\n      \"status\": 0,\n      \"created_at\": null,\n      \"updated_at\": null\n    }\n  ],\n  \"meta\": {\n    \"total_count\": 150,\n    \"page\": 1,\n    \"limit\": 50,\n    \"page_count\": 3,\n    \"next_page\": \"https:\/\/your-site.com\/wp-json\/tp-sync\/v1\/keys?lang=de&amp;page=2&amp;limit=50&amp;updated_since=2025-10-01T00:00:00Z\"\n  }\n}<\/code><\/pre>\r\n\r\n    <h3>Descri\u00e7\u00e3o dos campos na resposta<\/h3>\r\n    <table>\r\n        <thead>\r\n            <tr>\r\n                <th>Campo<\/th>\r\n                <th>Tipo<\/th>\r\n                <th>Descri\u00e7\u00e3o<\/th>\r\n            <\/tr>\r\n        <\/thead>\r\n        <tbody>\r\n            <tr>\r\n                <td><code>chave_id<\/code><\/td>\r\n                <td>string<\/td>\r\n                <td>ID \u00fanico da linha: <code>dicion\u00e1rio: {id}<\/code> (id \u2014 n\u00famero do registro na tabela <code>wp_trp_dictionary_en_us_{lang}<\/code>).<\/td>\r\n            <\/tr>\r\n            <tr>\r\n                <td><code>original<\/code><\/td>\r\n                <td>string<\/td>\r\n                <td>Texto original em ingl\u00eas.<\/td>\r\n            <\/tr>\r\n            <tr>\r\n                <td><code>traduzido<\/code><\/td>\r\n                <td>string<\/td>\r\n                <td>Tradu\u00e7\u00e3o atual para o idioma especificado (pode estar vazia).<\/td>\r\n            <\/tr>\r\n            <tr>\r\n                <td><code>status<\/code><\/td>\r\n                <td>inteiro<\/td>\r\n                <td>Status: 0 \u2014 n\u00e3o traduzido, 1 \u2014 em andamento, 2 \u2014 traduzido.<\/td>\r\n            <\/tr>\r\n            <tr>\r\n                <td><code>criado em<\/code><\/td>\r\n                <td>string<\/td>\r\n                <td>Data de cria\u00e7\u00e3o (ISO8601 <code>null<\/code> \u2014 n\u00e3o solicitado).<\/td>\r\n            <\/tr>\r\n            <tr>\r\n                <td><code>atualizado em<\/code><\/td>\r\n                <td>string<\/td>\r\n                <td>Data da \u00faltima atualiza\u00e7\u00e3o (ISO8601 <code>null<\/code> \u2014 n\u00e3o solicitado).<\/td>\r\n            <\/tr>\r\n        <\/tbody>\r\n    <\/table>\r\n\r\n    <h3>Metadados<code>meta<\/code>)<\/h3>\r\n    <ul>\r\n        <li><code>total_count<\/code>N\u00famero total de linhas (incluindo filtros).<\/li>\r\n        <li><code>p\u00e1gina<\/code>P\u00e1gina atual.<\/li>\r\n        <li><code>limite<\/code>Limite por p\u00e1gina.<\/li>\r\n        <li><code>n\u00famero de p\u00e1ginas<\/code>N\u00famero total de p\u00e1ginas.<\/li>\r\n        <li><code>pr\u00f3xima p\u00e1gina<\/code>: URL da pr\u00f3xima p\u00e1gina<code>null<\/code>, se for a \u00faltima).<\/li>\r\n    <\/ul>\r\n\r\n    <h3>Erros<\/h3>\r\n    <ul>\r\n        <li>401: Cabe\u00e7alho Authorization ausente ou incorreto.<\/li>\r\n        <li>403: Token inv\u00e1lido.<\/li>\r\n        <li>404: Idioma n\u00e3o encontrado no TranslatePress (tabela ausente).<\/li>\r\n    <\/ul>\r\n<\/div>\r\n\r\n<div class=\"card\">\r\n    <h2>2. Atualiza\u00e7\u00e3o de tradu\u00e7\u00f5es (POST \/translations)<\/h2>\r\n\r\n    <p>Este endpoint atualiza tradu\u00e7\u00f5es para v\u00e1rias linhas de uma vez (lote). \u00c9 passado um array de objetos com o ID da linha, idioma e nova tradu\u00e7\u00e3o. Atualiza o status para \"traduzido\" (2) e o campo <code>atualizado em<\/code>.<\/p>\r\n\r\n    <h3>Corpo da solicita\u00e7\u00e3o (JSON)<\/h3>\r\n    <p>Array <code>tradu\u00e7\u00f5es<\/code> com objetos:<\/p>\r\n    <pre><code>{\n  \"translations\": [\n    {\n      \"key_id\": \"dictionary:123\",\n      \"language_iso\": \"de\",\n      \"translation\": \"Ol\u00e1 Mundo\"\n    },\n    {\n      \"key_id\": \"dictionary:124\",\n      \"language_iso\": \"de\",\n      \"translation\": \"Bem-vindo\"\n    }\n  ]\n}<\/code><\/pre>\r\n\r\n    <h3>Par\u00e2metros<\/h3>\r\n    <table>\r\n        <thead>\r\n            <tr>\r\n                <th>Campo no objeto<\/th>\r\n                <th>Tipo<\/th>\r\n                <th>Obrigat\u00f3rio<\/th>\r\n                <th>Descri\u00e7\u00e3o<\/th>\r\n            <\/tr>\r\n        <\/thead>\r\n        <tbody>\r\n            <tr>\r\n                <td><code>chave_id<\/code><\/td>\r\n                <td>string<\/td>\r\n                <td>Sim<\/td>\r\n                <td>ID da linha: <code>dicion\u00e1rio: {id}<\/code> (do GET \/keys).<\/td>\r\n            <\/tr>\r\n            <tr>\r\n                <td><code>c\u00f3digo_iso_idioma<\/code><\/td>\r\n                <td>string<\/td>\r\n                <td>Sim<\/td>\r\n                <td>C\u00f3digo do idioma (de \u2192 de_de, normalizado automaticamente).<\/td>\r\n            <\/tr>\r\n            <tr>\r\n                <td><code>tradu\u00e7\u00e3o<\/code><\/td>\r\n                <td>string<\/td>\r\n                <td>Sim<\/td>\r\n                <td>Novo texto de tradu\u00e7\u00e3o (mantido como est\u00e1).<\/td>\r\n            <\/tr>\r\n        <\/tbody>\r\n    <\/table>\r\n\r\n    <h3>T\u00edtulos<\/h3>\r\n    <ul>\r\n        <li><code>Autoriza\u00e7\u00e3o: Bearer {\u0442\u043e\u043a\u0435\u043d}<\/code> (obrigat\u00f3rio)<\/li>\r\n        <li><code>Content-Type: application\/json<\/code> (obrigat\u00f3rio)<\/li>\r\n    <\/ul>\r\n\r\n    <h3>Exemplo de solicita\u00e7\u00e3o (cURL)<\/h3>\r\n    <pre><code>curl -X POST \"https:\/\/your-site.com\/wp-json\/tp-sync\/v1\/translations\" \\\n  -H \"Authorization: Bearer your-api-token-here\" \\\n  -H \"Content-Type: application\/json\" \\\n  -d '{\n    \"translations\": [\n      {\n        \"key_id\": \"dictionary:123\",\n        \"language_iso\": \"de\",\n        \"translation\": \"Ol\u00e1 Mundo\"\n      }\n    ]\n  }'<\/code><\/pre>\r\n\r\n    <h3>Exemplo de resposta (JSON)<\/h3>\r\n    <pre><code>{\n  \"translations\": [\n    {\n      \"key_id\": \"dictionary:123\",\n      \"language_iso\": \"de\",\n      \"translation\": \"Hallo Welt\",\n      \"modified_at\": \"2025-10-15T12:00:00Z\"\n    }\n  ],\n  \"errors\": [\n    {\n      \"index\": 1,\n      \"key_id\": \"dictionary:999\",\n      \"error\": \"Chave n\u00e3o encontrada no banco de dados\"\n    }\n  ]\n}<\/code><\/pre>\r\n\r\n    <h3>Descri\u00e7\u00e3o dos campos na resposta<\/h3>\r\n    <ul>\r\n        <li><code>tradu\u00e7\u00f5es<\/code>Array de tradu\u00e7\u00f5es atualizadas com sucesso (retorna os dados de entrada + <code>modificado em<\/code> em ISO8601).<\/li>\r\n        <li><code>erros<\/code> (opcional, se houver falhas): Matriz de erros.\r\n            <ul>\r\n                <li><code>\u00edndice<\/code>\u00cdndice do elemento no array original.<\/li>\r\n                <li><code>chave_id<\/code>: ID da linha problem\u00e1tica (se aplic\u00e1vel).<\/li>\r\n                <li><code>erro<\/code>Texto de erro (exemplos: \"Campos obrigat\u00f3rios ausentes\", \"Formato de key_id inv\u00e1lido. Esperado: dictionary:{id}\", \"Idioma n\u00e3o encontrado\", \"Chave n\u00e3o encontrada no banco de dados\", \"Falha na atualiza\u00e7\u00e3o do banco de dados\").<\/li>\r\n            <\/ul>\r\n        <\/li>\r\n    <\/ul>\r\n\r\n    <h3>Erros<\/h3>\r\n    <ul>\r\n        <li>400: Dados inv\u00e1lidos (vazio\/n\u00e3o \u00e9 um array) <code>tradu\u00e7\u00f5es<\/code>, aus\u00eancia de campos).<\/li>\r\n        <li>401\/403: Problemas de autoriza\u00e7\u00e3o.<\/li>\r\n        <li>404: Idioma ou chave n\u00e3o encontrada (tabela\/registro ausente).<\/li>\r\n    <\/ul>\r\n<\/div>\r\n\r\n<div class=\"card\">\r\n    <h2>Idiomas suportados<\/h2>\r\n    <p>C\u00f3digos curtos s\u00e3o automaticamente normalizados (com base no mapeamento no c\u00f3digo). Para os desconhecidos: <code>{code}_{code}<\/code> (por exemplo, pl \u2192 pl_pl).<\/p>\r\n    <ul>\r\n        <li>en \u2192 en_us<\/li>\r\n        <li>para<\/li>\r\n        <li>id \u2192 id_id<\/li>\r\n        <li>ko \u2192 ko_kr<\/li>\r\n        <li>tr \u2192 tr_tr<\/li>\r\n        <li>vi \u2192 vi<\/li>\r\n        <li>ru \u2192 ru_ru<\/li>\r\n        <li>fr \u2192 fr_fr<\/li>\r\n        <li>de \u2192 de_de<\/li>\r\n        <li>isso<\/li>\r\n        <li>para<\/li>\r\n        <li>pt \u2192 pt_pt<\/li>\r\n        <li>zh \u2192 zh_cn<\/li>\r\n        <li>es \u2192 es_es<\/li>\r\n    <\/ul>\r\n<\/div>\r\n\r\n<div class=\"card\">\r\n    <h2>Obten\u00e7\u00e3o do token<\/h2>\r\n    <ul>\r\n        <li>No painel administrativo do WordPress: Menu <strong>Sincroniza\u00e7\u00e3o TP<\/strong> \u2192 Bot\u00e3o \"Generate New Token\" (token de 32 caracteres, gerado automaticamente na primeira execu\u00e7\u00e3o).<\/li>\r\n        <li>O token \u00e9 armazenado na op\u00e7\u00e3o <code>token_api_de_sync_tp<\/code>.<\/li>\r\n    <\/ul>\r\n\r\n<\/div>\r\n\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Documenta\u00e7\u00e3o da API para integra\u00e7\u00e3o de tradu\u00e7\u00f5es TranslatePress (TP Sync API) Documenta\u00e7\u00e3o da API para integra\u00e7\u00e3o de tradu\u00e7\u00f5es TranslatePress (TP Sync API) Esta API fornece dois endpoints para trabalhar com as strings de tradu\u00e7\u00e3o no plugin TranslatePress. O idioma base \u00e9 o ingl\u00eas (en_us). Todas as solicita\u00e7\u00f5es exigem autoriza\u00e7\u00e3o via token Bearer (obtido no painel administrativo do WordPress no menu \u201cTP Sync\u201d). URL base: https:\/\/your-site.com\/wp-json\/tp-sync\/v1\/ 1. Obten\u00e7\u00e3o [&hellip;]<\/p>","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-22161","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>tp-sync-api - Mapsly<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mapsly.com\/pt\/tp-sync-api\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"tp-sync-api - Mapsly\" \/>\n<meta property=\"og:description\" content=\"\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f API \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 TranslatePress (TP Sync API) \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f API \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 TranslatePress (TP Sync API) \u042d\u0442\u043e\u0442 API \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0432\u0430 \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u0432 \u043f\u043b\u0430\u0433\u0438\u043d\u0435 TranslatePress. \u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u044f\u0437\u044b\u043a \u2014 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439 (en_us). \u0412\u0441\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0447\u0435\u0440\u0435\u0437 Bearer-\u0442\u043e\u043a\u0435\u043d (\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435 WordPress \u043f\u043e\u0434 \u043c\u0435\u043d\u044e &#8220;TP Sync&#8221;). \u0411\u0430\u0437\u043e\u0432\u044b\u0439 URL: https:\/\/your-site.com\/wp-json\/tp-sync\/v1\/ 1. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mapsly.com\/pt\/tp-sync-api\/\" \/>\n<meta property=\"og:site_name\" content=\"Mapsly\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-15T11:09:03+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/mapsly.com\/tp-sync-api\/\",\"url\":\"https:\/\/mapsly.com\/tp-sync-api\/\",\"name\":\"tp-sync-api - Mapsly\",\"isPartOf\":{\"@id\":\"https:\/\/mapsly.com\/#website\"},\"datePublished\":\"2025-10-15T11:08:18+00:00\",\"dateModified\":\"2025-10-15T11:09:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/mapsly.com\/tp-sync-api\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/mapsly.com\/tp-sync-api\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/mapsly.com\/tp-sync-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/mapsly.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"tp-sync-api\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/mapsly.com\/#website\",\"url\":\"https:\/\/mapsly.com\/\",\"name\":\"Mapsly\",\"description\":\"The Ultimate CRM Map\",\"publisher\":{\"@id\":\"https:\/\/mapsly.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/mapsly.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/mapsly.com\/#organization\",\"name\":\"Mapsly\",\"url\":\"https:\/\/mapsly.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/mapsly.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/mapsly.com\/wp-content\/uploads\/2025\/06\/Mapsly-Logo-2x-BIG.png\",\"contentUrl\":\"https:\/\/mapsly.com\/wp-content\/uploads\/2025\/06\/Mapsly-Logo-2x-BIG.png\",\"width\":280,\"height\":85,\"caption\":\"Mapsly\"},\"image\":{\"@id\":\"https:\/\/mapsly.com\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"tp-sync-api - Mapsly","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mapsly.com\/pt\/tp-sync-api\/","og_locale":"pt_PT","og_type":"article","og_title":"tp-sync-api - Mapsly","og_description":"\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f API \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 TranslatePress (TP Sync API) \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f API \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 TranslatePress (TP Sync API) \u042d\u0442\u043e\u0442 API \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0432\u0430 \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u0432 \u043f\u043b\u0430\u0433\u0438\u043d\u0435 TranslatePress. \u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u044f\u0437\u044b\u043a \u2014 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439 (en_us). \u0412\u0441\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0447\u0435\u0440\u0435\u0437 Bearer-\u0442\u043e\u043a\u0435\u043d (\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435 WordPress \u043f\u043e\u0434 \u043c\u0435\u043d\u044e &#8220;TP Sync&#8221;). \u0411\u0430\u0437\u043e\u0432\u044b\u0439 URL: https:\/\/your-site.com\/wp-json\/tp-sync\/v1\/ 1. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 [&hellip;]","og_url":"https:\/\/mapsly.com\/pt\/tp-sync-api\/","og_site_name":"Mapsly","article_modified_time":"2025-10-15T11:09:03+00:00","twitter_card":"summary_large_image","twitter_misc":{"Tempo estimado de leitura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/mapsly.com\/tp-sync-api\/","url":"https:\/\/mapsly.com\/tp-sync-api\/","name":"tp-sync-api - Mapsly","isPartOf":{"@id":"https:\/\/mapsly.com\/#website"},"datePublished":"2025-10-15T11:08:18+00:00","dateModified":"2025-10-15T11:09:03+00:00","breadcrumb":{"@id":"https:\/\/mapsly.com\/tp-sync-api\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mapsly.com\/tp-sync-api\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/mapsly.com\/tp-sync-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mapsly.com\/"},{"@type":"ListItem","position":2,"name":"tp-sync-api"}]},{"@type":"WebSite","@id":"https:\/\/mapsly.com\/#website","url":"https:\/\/mapsly.com\/","name":"Mapsly","description":"O mapa CRM definitivo","publisher":{"@id":"https:\/\/mapsly.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mapsly.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/mapsly.com\/#organization","name":"Mapsly","url":"https:\/\/mapsly.com\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/mapsly.com\/#\/schema\/logo\/image\/","url":"https:\/\/mapsly.com\/wp-content\/uploads\/2025\/06\/Mapsly-Logo-2x-BIG.png","contentUrl":"https:\/\/mapsly.com\/wp-content\/uploads\/2025\/06\/Mapsly-Logo-2x-BIG.png","width":280,"height":85,"caption":"Mapsly"},"image":{"@id":"https:\/\/mapsly.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/mapsly.com\/pt\/wp-json\/wp\/v2\/pages\/22161","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mapsly.com\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mapsly.com\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mapsly.com\/pt\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mapsly.com\/pt\/wp-json\/wp\/v2\/comments?post=22161"}],"version-history":[{"count":7,"href":"https:\/\/mapsly.com\/pt\/wp-json\/wp\/v2\/pages\/22161\/revisions"}],"predecessor-version":[{"id":22168,"href":"https:\/\/mapsly.com\/pt\/wp-json\/wp\/v2\/pages\/22161\/revisions\/22168"}],"wp:attachment":[{"href":"https:\/\/mapsly.com\/pt\/wp-json\/wp\/v2\/media?parent=22161"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}