import { ModerationApi } from "@moderation-api/sdk";
const moderationApi = new ModerationApi({
secretKey: process.env["MODAPI_SECRET_KEY"] ?? "",
});
async function run() {
const result = await moderationApi.projects.update("<id>", {});
console.log(result);
}
run();
import os
from moderation_api import ModerationAPI
with ModerationAPI(
secret_key=os.environ["MODAPI_SECRET_KEY"],
) as moderation_api:
res = moderation_api.projects.update(id="<id>")
# Handle response
print(res)
declare(strict_types=1);
require 'vendor/autoload.php';
use ModerationApi;
use ModerationApi\Models\Operations;
$sdk = ModerationApi\ModerationApi::builder()
->setSecurity(
getenv('MODAPI_SECRET_KEY')
)
->build();
$body = new Operations\UpdateProjectRequestBody();
$response = $sdk->projects->update(
id: '<id>',
body: $body
);
if ($response->project !== null) {
// handle response
}
require 'moderation_api'
Models = ::ModerationApi::Models
s = ::ModerationApi::ModerationApi.new(
secret_key: ENV.fetch('MODAPI_SECRET_KEY')
)
res = s.projects.update(id: '<id>', body: Models::Operations::UpdateProjectRequestBody.new)
unless res.project.nil?
# handle response
end
modapi projects update --secret-key "$MODAPI_SECRET_KEY" --id '<id>'
{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"domain": "<string>",
"context": "<string>",
"globalFlaggingMode": "DRY_RUN",
"enableRequestLogging": true,
"casebookEnabled": true,
"createdAt": "<string>",
"updatedAt": "<string>"
}{
"type": "invalid_request_error",
"code": "invalid_request",
"message": "Invalid input data",
"request_id": "h8fkz6kkzoa446ffve37atys",
"doc_url": "<string>",
"issues": [
{
"message": "<string>",
"path": [
"<string>"
],
"code": "<string>"
}
]
}{
"type": "authentication_error",
"code": "unauthorized",
"message": "Authorization not provided",
"request_id": "h8fkz6kkzoa446ffve37atys",
"doc_url": "<string>",
"issues": [
{
"message": "<string>",
"path": [
"<string>"
],
"code": "<string>"
}
]
}{
"type": "permission_error",
"code": "permission_denied",
"message": "Insufficient access",
"request_id": "h8fkz6kkzoa446ffve37atys",
"doc_url": "<string>",
"issues": [
{
"message": "<string>",
"path": [
"<string>"
],
"code": "<string>"
}
]
}{
"type": "not_found_error",
"code": "resource_not_found",
"message": "Not found",
"request_id": "h8fkz6kkzoa446ffve37atys",
"doc_url": "<string>",
"issues": [
{
"message": "<string>",
"path": [
"<string>"
],
"code": "<string>"
}
]
}{
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded",
"request_id": "h8fkz6kkzoa446ffve37atys",
"doc_url": "<string>",
"issues": [
{
"message": "<string>",
"path": [
"<string>"
],
"code": "<string>"
}
]
}Update a project
Update a project. Fields you leave out keep their value. Needs the projects:write permission.
import { ModerationApi } from "@moderation-api/sdk";
const moderationApi = new ModerationApi({
secretKey: process.env["MODAPI_SECRET_KEY"] ?? "",
});
async function run() {
const result = await moderationApi.projects.update("<id>", {});
console.log(result);
}
run();
import os
from moderation_api import ModerationAPI
with ModerationAPI(
secret_key=os.environ["MODAPI_SECRET_KEY"],
) as moderation_api:
res = moderation_api.projects.update(id="<id>")
# Handle response
print(res)
declare(strict_types=1);
require 'vendor/autoload.php';
use ModerationApi;
use ModerationApi\Models\Operations;
$sdk = ModerationApi\ModerationApi::builder()
->setSecurity(
getenv('MODAPI_SECRET_KEY')
)
->build();
$body = new Operations\UpdateProjectRequestBody();
$response = $sdk->projects->update(
id: '<id>',
body: $body
);
if ($response->project !== null) {
// handle response
}
require 'moderation_api'
Models = ::ModerationApi::Models
s = ::ModerationApi::ModerationApi.new(
secret_key: ENV.fetch('MODAPI_SECRET_KEY')
)
res = s.projects.update(id: '<id>', body: Models::Operations::UpdateProjectRequestBody.new)
unless res.project.nil?
# handle response
end
modapi projects update --secret-key "$MODAPI_SECRET_KEY" --id '<id>'
{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"domain": "<string>",
"context": "<string>",
"globalFlaggingMode": "DRY_RUN",
"enableRequestLogging": true,
"casebookEnabled": true,
"createdAt": "<string>",
"updatedAt": "<string>"
}{
"type": "invalid_request_error",
"code": "invalid_request",
"message": "Invalid input data",
"request_id": "h8fkz6kkzoa446ffve37atys",
"doc_url": "<string>",
"issues": [
{
"message": "<string>",
"path": [
"<string>"
],
"code": "<string>"
}
]
}{
"type": "authentication_error",
"code": "unauthorized",
"message": "Authorization not provided",
"request_id": "h8fkz6kkzoa446ffve37atys",
"doc_url": "<string>",
"issues": [
{
"message": "<string>",
"path": [
"<string>"
],
"code": "<string>"
}
]
}{
"type": "permission_error",
"code": "permission_denied",
"message": "Insufficient access",
"request_id": "h8fkz6kkzoa446ffve37atys",
"doc_url": "<string>",
"issues": [
{
"message": "<string>",
"path": [
"<string>"
],
"code": "<string>"
}
]
}{
"type": "not_found_error",
"code": "resource_not_found",
"message": "Not found",
"request_id": "h8fkz6kkzoa446ffve37atys",
"doc_url": "<string>",
"issues": [
{
"message": "<string>",
"path": [
"<string>"
],
"code": "<string>"
}
]
}{
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded",
"request_id": "h8fkz6kkzoa446ffve37atys",
"doc_url": "<string>",
"issues": [
{
"message": "<string>",
"path": [
"<string>"
],
"code": "<string>"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The ID of the project to update.
Body
The project's name.
1 - 75The project's description.
500The website or app the project moderates content for. Setting it on a project without context writes one.
What the platform is and who uses it.
2000ACTIVE flags content. DRY_RUN evaluates without flagging.
DRY_RUN, ACTIVE Whether moderated content is stored and shown in the dashboard.
Whether review queue decisions are recorded in the casebook.
Response
Project updated successfully
The ID of the project.
The project's name.
The project's description.
The website or app the project moderates content for.
What the platform is and who uses it. AI moderation reads it to judge content in context.
ACTIVE flags content. DRY_RUN evaluates content without flagging it, for testing a setup.
DRY_RUN, ACTIVE Whether moderated content is stored and shown in the dashboard.
Whether decisions made in the review queue are recorded in the project's casebook.
When the project was created.
When the project was last changed.
Was this page helpful?