Skip to content

Create a Project

Creates a new scanning project. A project ties one creative — either a tag URL or an inline HTML payload — to a schedule, a location, and optional alert wiring. Once created, Pinokio scans the creative on the configured cadence and stores results against the returned project_id.

POST /v1/project/create

Bearer token, obtained from /login.

Authorization: Bearer <access_token>

JSON object with the following fields:

FieldTypeRequiredDescription
namestringYesHuman-readable project name. Shown in the dashboard and on returned objects.
demand_idstringYesYour identifier for the demand source — useful for grouping projects by partner or DSP.
tagstringYesWhat to scan. Either a URL pointing at the creative (https://…) or a raw HTML string. See Tag formats below.
scan_nownumberNo1 to run a scan immediately on create; 0 to wait for the schedule.
times_per_daynumberNoHow many times per day the project is scanned. 1, 2, etc.
alert_pixelstringNoURL Pinokio hits when a scan finds something. See Alert Pixel.
locationsstringNoTwo-letter ISO country code to scan from (e.g. US, GB, JP).
creative_idstringNoYour creative identifier — UUID or any string. Echoed back in results so you can join Pinokio data against your own.

tag accepts two shapes:

  • URL — a fully qualified URL that returns the creative when loaded. Pinokio’s scanner navigates to it and analyzes what renders.
  • HTML — a raw HTML string. Pinokio wraps it in a sandboxed browser and analyzes the rendered output. Useful when the creative is delivered through a tag macro and you don’t have a public URL.
Create project with a URL tag
curl -X POST "https://{pinokio-api-url}/v1/project/create" \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Test project",
"demand_id": "124123132",
"tag": "https://example.com/ad_path.html",
"scan_now": 0,
"times_per_day": 2,
"alert_pixel": "https://example.com/some_endpoint_for_pixel",
"locations": "US",
"creative_id": "38400000-8cf0-11bd-b23e-10b96e40000d"
}'

200 OK

Successful response
{
"status": "success",
"message": "Project created successfuly!",
"project_id": "b23e-8cf0-b23e-8cf0-12fa"
}

Store the project_id — you will need it to read scan results, fetch session detail, or delete the project later.

400 Bad Request

DetailCause
Invalid session! Please try again.Access token is expired or invalid. Refresh and retry.
Missing or invalid [{param}] parameter.A required field is missing or malformed. The detail message names the offending field.