Instagram token
PUT /v1/connections/instagram/token scope admin
Stores the Meta API token for Instagram (encrypted). The token is verified with Meta before it is saved.
Headers
Authorization: Bearer praeko_… and X-Praeko-Contract: en. Always send both.Legacy Portuguese alias (still answered, marked as deprecated): /v1/conexoes/instagram/token.
Request body
JSON. Required fields must be sent; the others can be left out. The token in the example is only a placeholder: use your own. The server verifies the token with Meta before storing it.
| Field | Type | Description |
|---|---|---|
token required |
string | Meta API access token (Instagram). 20 to 4000 characters. |
userId required |
string | Numeric id of the Instagram account. Up to 40 characters. |
host (optional) |
string | Meta server. Values: https://graph.facebook.com, https://graph.instagram.com; default: https://graph.facebook.com. |
username (optional) |
string | Username, used only if Meta does not return the name. |
type (optional) |
string | Account type. Default: BUSINESS. |
{
"token": "IGAAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"userId": "17841400000000000",
"host": "https://graph.instagram.com"
}Example
curl -X PUT "https://praeko.app/v1/connections/instagram/token" \
-H "Authorization: Bearer $PRAEKO_KEY" \
-H "X-Praeko-Contract: en" \
-H "Content-Type: application/json" \
-d '{
"token": "IGAAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"userId": "17841400000000000",
"host": "https://graph.instagram.com"
}'const res = await fetch("https://praeko.app/v1/connections/instagram/token", {
method: "PUT",
headers: {
"Authorization": `Bearer ${process.env.PRAEKO_KEY}`,
"X-Praeko-Contract": "en",
"Content-Type": "application/json",
},
body: JSON.stringify({
"token": "IGAAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"userId": "17841400000000000",
"host": "https://graph.instagram.com"
}),
});
console.log(res.status, await res.json());import { Praeko } from "@praeko/sdk";
const praeko = new Praeko({ url: "https://praeko.app", key: process.env.PRAEKO_KEY });
const resultado = await praeko.channels.sendInstagramToken({
"token": "IGAAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"userId": "17841400000000000",
"host": "https://graph.instagram.com"
});
console.log(resultado);import os
import requests
resp = requests.put(
"https://praeko.app/v1/connections/instagram/token",
headers={
"Authorization": f"Bearer {os.environ['PRAEKO_KEY']}",
"X-Praeko-Contract": "en",
},
json={
"token": "IGAAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"userId": "17841400000000000",
"host": "https://graph.instagram.com",
},
)
print(resp.status_code, resp.json())<?php
$corpo = <<<'JSON'
{
"token": "IGAAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"userId": "17841400000000000",
"host": "https://graph.instagram.com"
}
JSON;
$ch = curl_init('https://praeko.app/v1/connections/instagram/token');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer " . getenv("PRAEKO_KEY"),
'X-Praeko-Contract: en',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => $corpo,
]);
$resposta = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), " ", $resposta, PHP_EOL;
curl_close($ch);package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
body := strings.NewReader(`{
"token": "IGAAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"userId": "17841400000000000",
"host": "https://graph.instagram.com"
}`)
req, err := http.NewRequest("PUT", "https://praeko.app/v1/connections/instagram/token", body)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("PRAEKO_KEY"))
req.Header.Set("X-Praeko-Contract", "en")
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
out, _ := io.ReadAll(resp.Body)
fmt.Println(resp.Status, string(out))
}require "net/http"
require "uri"
uri = URI("https://praeko.app/v1/connections/instagram/token")
request = Net::HTTP::Put.new(uri)
request["Authorization"] = "Bearer #{ENV['PRAEKO_KEY']}"
request["X-Praeko-Contract"] = "en"
request["Content-Type"] = "application/json"
request.body = <<~'JSON'
{
"token": "IGAAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"userId": "17841400000000000",
"host": "https://graph.instagram.com"
}
JSON
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(request) }
puts response.code, response.bodyusing System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
using var request = new HttpRequestMessage(HttpMethod.Put, "https://praeko.app/v1/connections/instagram/token");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("PRAEKO_KEY"));
request.Headers.Add("X-Praeko-Contract", "en");
request.Content = new StringContent("""
{
"token": "IGAAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"userId": "17841400000000000",
"host": "https://graph.instagram.com"
}
""", Encoding.UTF8, "application/json");
using var response = await client.SendAsync(request);
Console.WriteLine($"{(int)response.StatusCode} {await response.Content.ReadAsStringAsync()}");import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
String body = """
{
"token": "IGAAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"userId": "17841400000000000",
"host": "https://graph.instagram.com"
}
""";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://praeko.app/v1/connections/instagram/token"))
.header("Authorization", "Bearer " + System.getenv("PRAEKO_KEY"))
.header("X-Praeko-Contract", "en")
.header("Content-Type", "application/json")
.method("PUT", HttpRequest.BodyPublishers.ofString(body))
.build();
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode() + " " + response.body());
}
}http PUT "https://praeko.app/v1/connections/instagram/token" \
"Authorization: Bearer $PRAEKO_KEY" \
"X-Praeko-Contract: en" \
"Content-Type: application/json" \
--raw='{
"token": "IGAAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"userId": "17841400000000000",
"host": "https://graph.instagram.com"
}'Official SDK for NodeInstall it with
npm install @praeko/sdk (see SDK and CLI).No official SDKExample with the language's standard library (or HTTP client). Only the JavaScript SDK exists.
No official SDKExample with the language's standard library (or HTTP client). Only the JavaScript SDK exists.
No official SDKExample with the language's standard library (or HTTP client). Only the JavaScript SDK exists.
No official SDKExample with the language's standard library (or HTTP client). Only the JavaScript SDK exists.
No official SDKExample with the language's standard library (or HTTP client). Only the JavaScript SDK exists.
No official SDKExample with the language's standard library (or HTTP client). Only the JavaScript SDK exists.
Response
| Success status | When |
|---|---|
200 |
Success. |
{
"connected": true,
"username": "dev.ocioso",
"followers": 1842,
"mediaItems": 37,
"host": "https://graph.instagram.com"
}Errors
| Status | code | When |
|---|---|---|
| 400 | empty_body |
The request body is empty. |
| 400 | invalid_json |
The request body is not a JSON object. |
| 413 | body_too_large |
The request body is larger than 1 MB. |
| 422 | invalid_field |
Invalid token, userId or host. |
| 502 | instagram_error |
Meta rejected the token. |
Errors on any route
| Status | code | When |
|---|---|---|
| 401 | unauthorized |
The Authorization: Bearer … header is missing. |
| 401 | invalid_api_key |
The key does not exist. |
| 401 | revoked_api_key |
The key has been revoked. |
| 401 | expired_api_key |
The key has expired. |
| 403 | forbidden |
The key's scope is not enough for this route (see the scope badge). |
| 429 | rate_limited |
The per-minute request limit was exceeded. |
The body of every error is { "error": { "code", "message", "details"? } }. See all error codes.
Try it
Try it
Sign in to try itThe live test uses your key and your account. It stays off when you are not signed in.
Question or mistake on this page? contato@praeko.appView .md