Søk lastes bare når du bruker det. Bla gjennom alle kategoriene nedenfor.

Prosjekter og innhold

Hent prosjektprofil

Les prosjektets merkevareprofil (slagord, stemme, målgruppe, mål, palett og mer); profile er null når ingen finnes.

POST /studio-api/projects/profile/get

Kontrakt gjennomgått: · sha256:563d2d581da0ad29

Oversikt

Les prosjektets merkevareprofil (slagord, stemme, målgruppe, mål, palett og mer); profile er null når ingen finnes.

Et vellykket HTTP-svar kan bety at en forespørsel er akseptert fremfor fullført. For bakgrunnsarbeid, lagre returnert ID og kontroller samme operasjon til den er ferdig. Et planlagt eller akseptert innlegg er først publisert når plattformen bekrefter det; et klienttidsavbrudd fastslår ikke resultatet.

Autentisering og tillatelser

Godtatte legitimasjonsklasser
user_session, delegated_oauth, personal_access_token
Delegert funksjon
agent:operate
Minste arbeidsområderolle
viewer
Tilgangsomfang
Ressurser denne brukeren er autorisert til å bruke
Samtykke for alle arbeidsområder kreves
Nei
Endrer tilstand
Nei
Når operasjonen er fullført
synchronous_http_response

Et token kan bare bruke rettighetene eieren har. Hver forespørsel kontrollerer arbeidsområdemedlemskap, ressurseierskap, valgte arbeidsområder og gitte funksjoner. Profilene core og full endrer hvilke verktøy som vises; de gir ikke tilgang.

Forespørselsfelter

Påkrevd betyr påkrevd i foreldreobjektet og valgt gren. Et påkrevd underfelt gjør ikke en valgfri forelder påkrevd. Reglene og feltnavnene nedenfor er kopiert fra kontrakten.

Forespørselsfelter
Felt / grenType / påkrevdBegrensninger
$objectPåkrevd i forelder
  • additionalProperties: false
project_idstringPåkrevd i forelder
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
Fullstendig JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "project_id"
  ],
  "additionalProperties": false
}

Svar og fullføring

HTTP-statuser ved suksess: 200. Når operasjonen er fullført: synchronous_http_response.

Et vellykket HTTP-svar kan bety at en forespørsel er akseptert fremfor fullført. For bakgrunnsarbeid, lagre returnert ID og kontroller samme operasjon til den er ferdig. Et planlagt eller akseptert innlegg er først publisert når plattformen bekrefter det; et klienttidsavbrudd fastslår ikke resultatet.

Påkrevd betyr påkrevd i foreldreobjektet og valgt gren. Et påkrevd underfelt gjør ikke en valgfri forelder påkrevd. Reglene og feltnavnene nedenfor er kopiert fra kontrakten.

Svar og fullføring
Felt / grenType / påkrevdBegrensninger
$objectPåkrevd i forelder—
contract_versionstringPåkrevd i forelder
  • const: "project/v1"
profileobject | nullPåkrevd i forelder—
profileanyOf 1objectPåkrevd i forelder—
profile.project_idanyOf 1stringPåkrevd i forelder
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
profile.workspace_idanyOf 1stringPåkrevd i forelder
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
profile.taglineanyOf 1string | nullPåkrevd i forelder—
profile.taglineanyOf 1 / anyOf 1stringPåkrevd i forelder—
profile.taglineanyOf 1 / anyOf 2nullPåkrevd i forelder—
profile.descriptionanyOf 1string | nullPåkrevd i forelder—
profile.descriptionanyOf 1 / anyOf 1stringPåkrevd i forelder—
profile.descriptionanyOf 1 / anyOf 2nullPåkrevd i forelder—
profile.voiceanyOf 1string | nullPåkrevd i forelder—
profile.voiceanyOf 1 / anyOf 1stringPåkrevd i forelder—
profile.voiceanyOf 1 / anyOf 2nullPåkrevd i forelder—
profile.target_audienceanyOf 1string | nullPåkrevd i forelder—
profile.target_audienceanyOf 1 / anyOf 1stringPåkrevd i forelder—
profile.target_audienceanyOf 1 / anyOf 2nullPåkrevd i forelder—
profile.color_paletteanyOf 1arrayPåkrevd i forelder—
profile.color_palette[]anyOf 1stringValgfritt / element—
profile.goalsanyOf 1arrayPåkrevd i forelder—
profile.goals[]anyOf 1stringValgfritt / element—
profile.no_go_topicsanyOf 1arrayPåkrevd i forelder—
profile.no_go_topics[]anyOf 1stringValgfritt / element—
profile.language_primaryanyOf 1stringPåkrevd i forelder—
profile.positioninganyOf 1string | nullPåkrevd i forelder—
profile.positioninganyOf 1 / anyOf 1stringPåkrevd i forelder—
profile.positioninganyOf 1 / anyOf 2nullPåkrevd i forelder—
profile.uspanyOf 1string | nullPåkrevd i forelder—
profile.uspanyOf 1 / anyOf 1stringPåkrevd i forelder—
profile.uspanyOf 1 / anyOf 2nullPåkrevd i forelder—
profile.visual_identityanyOf 1object | nullPåkrevd i forelder—
profile.visual_identityanyOf 1 / anyOf 1objectPåkrevd i forelder
  • additionalProperties: {}
profile.visual_identity.*anyOf 1 / anyOf 1any JSON valueValgfritt / element—
profile.visual_identityanyOf 1 / anyOf 2nullPåkrevd i forelder—
profile.forbidden_claimsanyOf 1arrayPåkrevd i forelder—
profile.forbidden_claims[]anyOf 1stringValgfritt / element—
profile.north_star_metricanyOf 1string | nullPåkrevd i forelder—
profile.north_star_metricanyOf 1 / anyOf 1stringPåkrevd i forelder—
profile.north_star_metricanyOf 1 / anyOf 2nullPåkrevd i forelder—
profile.posting_cadenceanyOf 1object | nullPåkrevd i forelder—
profile.posting_cadenceanyOf 1 / anyOf 1objectPåkrevd i forelder
  • additionalProperties: {}
profile.posting_cadence.*anyOf 1 / anyOf 1any JSON valueValgfritt / element—
profile.posting_cadenceanyOf 1 / anyOf 2nullPåkrevd i forelder—
profile.app_store_url_iosanyOf 1string | nullPåkrevd i forelder—
profile.app_store_url_iosanyOf 1 / anyOf 1stringPåkrevd i forelder—
profile.app_store_url_iosanyOf 1 / anyOf 2nullPåkrevd i forelder—
profile.app_store_url_androidanyOf 1string | nullPåkrevd i forelder—
profile.app_store_url_androidanyOf 1 / anyOf 1stringPåkrevd i forelder—
profile.app_store_url_androidanyOf 1 / anyOf 2nullPåkrevd i forelder—
profile.app_metadataanyOf 1objectPåkrevd i forelder
  • additionalProperties: {}
profile.app_metadata.*anyOf 1any JSON valueValgfritt / element—
profile.profile_versionanyOf 1integerPåkrevd i forelder
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
profile.updated_byanyOf 1string | nullPåkrevd i forelder—
profile.updated_byanyOf 1 / anyOf 1stringPåkrevd i forelder
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
profile.updated_byanyOf 1 / anyOf 2nullPåkrevd i forelder—
profile.updated_by_kindanyOf 1stringPåkrevd i forelder
  • enum: ["jwt","api_key","delegated_ai","migration"]
profile.updated_by_api_key_idanyOf 1string | nullPåkrevd i forelder—
profile.updated_by_api_key_idanyOf 1 / anyOf 1stringPåkrevd i forelder
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
profile.updated_by_api_key_idanyOf 1 / anyOf 2nullPåkrevd i forelder—
profile.updated_by_delegated_grant_idanyOf 1string | nullPåkrevd i forelder—
profile.updated_by_delegated_grant_idanyOf 1 / anyOf 1stringPåkrevd i forelder
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
profile.updated_by_delegated_grant_idanyOf 1 / anyOf 2nullPåkrevd i forelder—
profile.created_atanyOf 1stringPåkrevd i forelder
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
profile.updated_atanyOf 1stringPåkrevd i forelder
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
profileanyOf 2nullPåkrevd i forelder—
Fullstendig JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "contract_version": {
      "type": "string",
      "const": "project/v1"
    },
    "profile": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "project_id": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            "workspace_id": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            "tagline": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "description": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "voice": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "target_audience": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "color_palette": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "goals": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "no_go_topics": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "language_primary": {
              "type": "string"
            },
            "positioning": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "usp": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "visual_identity": {
              "anyOf": [
                {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {}
                },
                {
                  "type": "null"
                }
              ]
            },
            "forbidden_claims": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "north_star_metric": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "posting_cadence": {
              "anyOf": [
                {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {}
                },
                {
                  "type": "null"
                }
              ]
            },
            "app_store_url_ios": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "app_store_url_android": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "app_metadata": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {}
            },
            "profile_version": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "updated_by": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "updated_by_kind": {
              "type": "string",
              "enum": [
                "jwt",
                "api_key",
                "delegated_ai",
                "migration"
              ]
            },
            "updated_by_api_key_id": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "updated_by_delegated_grant_id": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "created_at": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
            },
            "updated_at": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
            }
          },
          "required": [
            "project_id",
            "workspace_id",
            "tagline",
            "description",
            "voice",
            "target_audience",
            "color_palette",
            "goals",
            "no_go_topics",
            "language_primary",
            "positioning",
            "usp",
            "visual_identity",
            "forbidden_claims",
            "north_star_metric",
            "posting_cadence",
            "app_store_url_ios",
            "app_store_url_android",
            "app_metadata",
            "profile_version",
            "updated_by",
            "updated_by_kind",
            "updated_by_api_key_id",
            "updated_by_delegated_grant_id",
            "created_at",
            "updated_at"
          ]
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "contract_version",
    "profile"
  ]
}

Feil og trygge nye forsøk

Kontroller HTTP-status og svarinnhold. En 400-valideringsfeil kan inneholde en ZodError; håndteringsfeil bruker feltene error, message og code. Behold request_id eller x-request-id for feilsøking, uten påloggingsopplysninger. Rett 401/403-tilgangsfeil før nye forsøk, og følg Retry-After ved 429. Hvis en skriveoperasjon er usikker eller returnerer 5xx, les det eksisterende resultatet først. Gjenbruk bare en idempotensnøkkel der det støttes; virkemåten ved nye forsøk varierer mellom operasjoner og garanterer ikke levering nøyaktig én gang.

Feilsøkingsveiledning

Eksempler

Disse eksemplene bruker fiktive verdier kontrollert mot skjemaene. Erstatt ID-ene med noen du har lov til å bruke, mediene med klare ressurser og datoene med bekreftet publiseringstidspunkt. Kontroller kontoens kvalifikasjon før en skriveoperasjon sendes inn. Siden sender ingen API-forespørsler.

Angi SOSOAPI_ACCESS_TOKEN på serveren din til legitimasjon som operasjonen godtar, og hold den unna nettleserkode. For en agent, bruk sosoapi auth login for innlogging gjennom nettleseren, og la CLI-et fornye legitimasjonen.

request.json

{
  "project_id": "11111111-1111-4111-8111-111111111111"
}

cURL

curl --request POST \
  "https://gqeshlawtcexsapabaui.supabase.co/functions/v1/studio-api/projects/profile/get" \
  -H "Authorization: Bearer $SOSOAPI_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  --data-binary @request.json

JavaScript

// Server-side JavaScript. Do not print tokens or credential-bearing responses.
const token = process.env.SOSOAPI_ACCESS_TOKEN;
if (!token) throw new Error("Set an accepted credential for this operation");
const response = await fetch("https://gqeshlawtcexsapabaui.supabase.co/functions/v1/studio-api/projects/profile/get", {
  method: "POST",
  headers: { "Content-Type": "application/json", Authorization: "Bearer " + token },
  body: JSON.stringify({
  "project_id": "11111111-1111-4111-8111-111111111111"
})
});
const result = await response.json();
// Check response.ok, the operation-specific body and completion state before continuing.

CLI

npx sosoapi api post /studio-api/projects/profile/get < request.json

Syntetisk svareksempel

{
  "contract_version": "project/v1",
  "profile": null
}

MCP: sosoapi_get_project_profile