Typeface Projects API

The Projects API from Typeface — 4 operation(s) for projects.

Operations 7

GET /workspace-service/accounts/{accountId}/projects List Projects #
POST /workspace-service/accounts/{accountId}/projects Create a Project #
GET /workspace-service/accounts/{accountId}/projects/{projectId} Get a Project #
PUT /workspace-service/accounts/{accountId}/projects/{projectId} Update Project #
DELETE /workspace-service/accounts/{accountId}/projects/{projectId} Delete Project #
GET /content-service/workspace/{projectId}/layout-manifests Project - List Layouts #
GET /content-service/workspace/{projectId}/layout-manifests/{layoutId} Project - Get Layout #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/typeface-projects-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

typeface-projects-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Typeface Audiences Projects API
  version: v0
servers:
- url: https://api-us.typeface.ai
  description: Generated server url
security:
- BearerAuth: []
tags:
- name: Projects
paths:
  /workspace-service/accounts/{accountId}/projects:
    get:
      tags:
      - Projects
      operationId: queryProjectsInAccount_1
      parameters:
      - name: accountId
        in: path
        required: true
        description: Unique identifier for the specific team
        schema:
          type: string
      - name: workspaceSubType
        in: query
        required: false
        schema:
          type: string
          default: DEFAULT
          enum:
          - ALCHEMIST
          - WEAVER
          - BATCH_OUTPUT
          - DEFAULT
          - BRAND_KIT_LIBRARY
          - DECORATION_LIBRARY
          - AUDIENCE_LIBRARY
          - LOGO_LIBRARY
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/QueryProjectsResponseBody'
                - $ref: '#/components/schemas/QueryProjectResponseBody'
      summary: List Projects
    post:
      tags:
      - Projects
      operationId: createProjectInAccount
      parameters:
      - name: accountId
        in: path
        required: true
        description: Unique identifier for the specific team
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProjectRequestBody'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityModelProject'
      summary: Create a Project
  /workspace-service/accounts/{accountId}/projects/{projectId}:
    get:
      tags:
      - Projects
      operationId: getProjectInAccount
      parameters:
      - name: accountId
        in: path
        required: true
        description: Unique identifier for the specific team
        schema:
          type: string
      - name: projectId
        in: path
        required: true
        description: Unique identifier for the specific project
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityModelProject'
      summary: Get a Project
    put:
      tags:
      - Projects
      operationId: updateProjectInAccount
      parameters:
      - name: accountId
        in: path
        required: true
        description: Unique identifier for the specific team
        schema:
          type: string
      - name: projectId
        in: path
        required: true
        description: Unique identifier for the specific project
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProjectRequestBody'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityModelProject'
      summary: Update Project
    delete:
      tags:
      - Projects
      operationId: deleteProjectInAccount
      parameters:
      - name: accountId
        in: path
        required: true
        description: Unique identifier for the specific team
        schema:
          type: string
      - name: projectId
        in: path
        required: true
        description: Unique identifier for the specific project
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
      summary: Delete Project
  /content-service/workspace/{projectId}/layout-manifests:
    get:
      tags:
      - Projects
      operationId: queryLayoutManifestsInProject
      parameters:
      - name: projectId
        in: path
        required: true
        description: Unique identifier for the specific project
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/QueryLayoutManifestResponseBody'
      summary: Project - List Layouts
  /content-service/workspace/{projectId}/layout-manifests/{layoutId}:
    get:
      tags:
      - Projects
      operationId: getLayoutManifestsInProject
      parameters:
      - name: projectId
        in: path
        required: true
        description: Unique identifier for the specific project
        schema:
          type: integer
          format: int64
      - name: layoutId
        in: path
        required: true
        description: Unique identifier for the specific layout manifest
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/GetLayoutManifestResponseBody'
      summary: Project - Get Layout
components:
  schemas:
    QueryProjectsResponseBody:
      type: object
      properties:
        projects:
          type: array
          items:
            $ref: '#/components/schemas/ProjectDetails'
    EntityId:
      type: object
      properties:
        id:
          type: integer
          format: int64
    WorkspaceId:
      type: object
      properties:
        id:
          type: integer
          format: int64
    Link:
      type: object
      properties:
        rel:
          type: string
        href:
          type: string
        hreflang:
          type: string
        media:
          type: string
        title:
          type: string
        type:
          type: string
        deprecation:
          type: string
        profile:
          type: string
        name:
          type: string
    BlobId:
      type: object
      properties:
        id:
          type: integer
          format: int64
    CreateProjectRequestBody:
      type: object
      properties:
        name:
          type: string
    UpdateProjectRequestBody:
      type: object
      properties:
        name:
          type: string
    LayoutManifestProperties:
      type: object
      properties:
        layoutData:
          type: object
          additionalProperties:
            type: object
        blobId:
          $ref: '#/components/schemas/BlobId'
    GetLayoutManifestResponseBody:
      type: object
      properties:
        layoutManifest:
          $ref: '#/components/schemas/LayoutManifest'
    ProjectDetails:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/WorkspaceId'
        ownerId:
          type: string
        name:
          type: string
        image:
          $ref: '#/components/schemas/Image'
        createdAt:
          type: string
          format: date-time
        modifiedAt:
          type: string
          format: date-time
        discarded:
          type: boolean
        properties:
          $ref: '#/components/schemas/JsonNode'
        workspaceSubType:
          type: string
          enum:
          - ALCHEMIST
          - WEAVER
          - BATCH_OUTPUT
          - DEFAULT
          - BRAND_KIT_LIBRARY
          - DECORATION_LIBRARY
          - AUDIENCE_LIBRARY
          - LOGO_LIBRARY
    Image:
      type: object
      properties:
        workspaceId:
          $ref: '#/components/schemas/WorkspaceId'
        id:
          $ref: '#/components/schemas/EntityId'
        name:
          type: string
        sourcePath:
          type: string
        ingestionSource:
          type: string
        properties:
          $ref: '#/components/schemas/ImageProperties'
        createdAt:
          type: string
          format: date-time
        modifiedAt:
          type: string
          format: date-time
        renditionId:
          $ref: '#/components/schemas/EntityId'
        createdBy:
          type: string
        modifiedBy:
          type: string
    LayoutManifest:
      required:
      - id
      - workspaceId
      type: object
      properties:
        workspaceId:
          $ref: '#/components/schemas/WorkspaceId'
        id:
          $ref: '#/components/schemas/EntityId'
        name:
          type: string
        sourcePath:
          type: string
        ref:
          type: string
        ingestionSource:
          type: string
        properties:
          $ref: '#/components/schemas/LayoutManifestProperties'
        createdAt:
          type: string
          format: date-time
        modifiedAt:
          type: string
          format: date-time
        renditionId:
          $ref: '#/components/schemas/EntityId'
        createdBy:
          type: string
        modifiedBy:
          type: string
        indexed:
          type: boolean
        entitySubType:
          type: string
          enum:
          - DEFAULT
          - GENERATED_IMAGE_PARENT
          - DOCUMENT_INTERMEDIATE
          - DOCUMENT_LAYOUT_HTML
    QueryProjectResponseBody:
      type: object
      properties:
        projects:
          type: array
          items:
            $ref: '#/components/schemas/EntityModelProject'
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
    JsonNode:
      type: object
    ImageProperties:
      type: object
      properties:
        blobId:
          $ref: '#/components/schemas/BlobId'
    QueryLayoutManifestResponseBody:
      type: object
      properties:
        layoutManifests:
          type: array
          properties:
            empty:
              type: boolean
          items:
            $ref: '#/components/schemas/LayoutManifest'
    EntityModelProject:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
        createdAt:
          type: string
          format: date-time
        modifiedAt:
          type: string
          format: date-time
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
x-readme:
  explorer-enabled: true
  proxy-enabled: true